ISP-EE(Edge Enhance)

news2024/11/24 1:39:23

ISP-EE(Edge Enhance)

EE模块在某些ISP主控中叫做sharpness或者sharpen,这些名称指代的模块是同一个,不用再纠结。主要就是在YUV域内弥补成像过程中图像的锐度损失,对边缘和细节进行加强,从而恢复场景本应具有的自然锐度。

锐度下降的原因

如上图所示,理想的边缘如左侧所示,是个高反差,对比强的边。而实际成像的效果是右侧的状况,反差变弱,且边缘过渡缓慢,给人的视觉冲击不够,也就看上去没有左侧清晰锐利。造成边缘这种衰减的主要原因一方面是镜头的物理性质的限制,具体的原因不做深入讨论,属于光学范畴,简单理解就是镜头本身就是低通属性,所以图像成像光信号经过镜头后相当于进行了一次低通滤波,会导致边缘衰减。另一方面就是Pipeline中例如去买赛克,NR等算法都是低通特性的,都会导致高频损失从而表现出锐度下降。

锐化的原理

由于图像中的细节和边缘在频域中主要体现为尖锐程度较高的高频段上,因此锐化基本思想就是增强图像分离后产生的高频分量在像素值中的比重。

上图摘自知乎博文《Understanding ISP Pipeline - Sharpen - 知乎 (zhihu.com)》。

我们在实际算法中的的做法就是将边缘反差过渡区域调整得更陡峭更突变,从而到达高反差,高对比实现锐利度的提升。如上图右下角图,白色为未处理的变化曲线,红色为处理后的效果,处理后过渡明显更快,反差更大,左上经过处理到右上后人眼视觉感觉也确实对比更强,更清晰。

算法又需要如何实际实现呢,其实这个和我们学习美术的时候一样,我们会描边,用2B把边缘描绘一遍,那么边缘在政府图像中就会更清楚,其实算法也是这种思路,就是通过边缘算法提取图像边缘,然后将边缘“描绘”到原始图像上,那么边缘也就更加请处理。

上述的描边过程其实可以简化为以下的流程:

从上图中可以看出叠加后的图像确实清晰度有提升,但是感觉效果并不太好,主要因为鸟的主体部分加强了,但是后面的背景本来平坦的区域经过加强后也出现了很多颗粒感,看上去很难受。所以针对这些问题我们需要优化算法,其实从这个框架看,我们唯一能做的其实就是一个优化边缘提取的filter,另外一个就是优化λ,所以实际用的时候往往采取一下框图:

经过filter提取的边缘经过一个边缘判决器,然后λ根据这个判决器的判决动态调整加强力度。关于这个判决器和λ的自适应调整内容有点绕,不做过多赘述,有兴趣的朋友可以参考B站本算法讲解。

代码演示

clc, clear, close all;

preDelta = 2;   % 预滤波强度,值越大,边缘越强
th = 5;         % 边缘检测阈值
gain = 0.8;       % 边缘增强力度控制

img = imread('./images/blurring.png');
figure();
imshow(img);
title('org');

[h, w, c] = size(img);
img_yuv = rgb2ycbcr(img);
y = img_yuv(:, :, 1);

Iblur = imgaussfilt(y, preDelta);
HighFC = y - Iblur;


for i = 1: h
    for j = 1: w
        if HighFC(i, j) > th
            HighFC(i, j) = HighFC(i, j) * gain;
        else
            HighFC(i, j) = 0;
        end
    end
end
figure();
imshow(HighFC);
imwrite(HighFC, './images/edgeDemo.png');
title('edge');

y = y + HighFC;
img_yuv(:, :, 1) = y;
res = ycbcr2rgb(img_yuv);
imwrite(res, './images/ee.png');
figure();
imshow(res);
title('res');

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1310684.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

思福迪运维安全管理系统 test_qrcode_b RCE漏洞复现

0x01 产品简介 思福迪运维安全管理系统是思福迪开发的一款运维安全管理堡垒机。 0x02 漏洞概述 由于思福迪运维安全管理系统 test_qrcode_b路由存在命令执行漏洞,攻击者可通过该漏洞在服务器端任意执行代码,写入后门,获取服务器权限&#…

电子元器件介绍——电阻(一)

电子元器件 文章目录 电子元器件前言1.1电阻基本知识1.2电阻的作用1.3电阻的分类1.4 贴片电阻贴片电阻的规范、尺寸、封装 1.5 技术参数噪声: 1.6 电阻的失效 总结 前言 接下来我们就把常用的电子元器件全部介绍给大家,这一节是电阻,电容电感…

springboot使用EasyExcel导出数据

springboot使用EasyExcel导出数据 简介:本文主要描述使用EasyExcel导出数据的简单流程,事实上企业需求一般都比较简单,就是表单数据输出到Excel即可,如果数据量大的话,为了避免占用内存过高或者OOM,使用多…

网工内推 | IT经理,50k*14薪,NP以上即可,七险一金

01 海天瑞声 招聘岗位:IT经理 职责描述: 1、IT基础架构的方案制定、实施和日常维护,包括机房建设运维、服务器配置及运维、网络规划及运维、上网行为管理、电话、电话、监控、门禁等各类弱电系统搭建及运维 2、负责公司环境及网络安全防御体…

RabbitMQ 如何保证消息可靠性

RabbitMQ 如何保证消息可靠性 1. 保证生产者可靠1.1 生产者确认机制1.2 实现生产者确认1.2.1 开启生产者确认机制1.2.2 定义ReturnCallback1.3.3.定义ConfirmCallback 1.3 注意 2. 保证MQ可靠2.1 数据持久化2.1.1 交换机持久化2.1.2.队列持久化2.1.3 消息持久化2.1.4 注意 3. 保…

ThingWorx/Vuforia—工业物联网和AR平台

产品概述 ThingWorx是美国PTC公司旗下的一款物联网和AR平台,它提供了适用于IoT的开发工具和能力,使开发者可以为工业物联网快速构建和部署变革性的智能互联解决方案,使创新者能够快速为当今的智能互联世界提供优异的应用程序、解决方案和用户…

自动机器学习是什么?概念及应用

自动机器学习 (Auto Machine Learning) 的应用和方法 随着众多企业在大量场景中开始采用机器学习,前后期处理和优化的数据量及规模指数级增长。企业很难雇用充足的人手来完成与高级机器学习模型相关的所有工作,因此机器学习自动化工具是未来人工智能 (A…

装机DIY-配件价格比较

计算机配件价格比较 🚀🚀🚀🚀最近无事总刷到DIY装机视频,自己也有兴趣,同时这段时间也在学前端,发现每次比较价格都有重新搜,重新计算,且不同配置也不好比较&#xff0c…

【毕业设计】基于STM32的智能衣柜设计

1、功能说明 功能如下: 1、用stm32控制ds18b20采集温度 2、然后按键可以设置上下限温度, 3、采集的温度低于下限温度时候 打开加热片开始加热, 4、加热到上限温度关闭加热片停止加热, 5、采集的温度可以在oled显示, 6、然后弄个按…

c语言:指针运算

目录 指针类型与整型进行加减 规律 同类型指针减法运算 其他类型的指针运算 一个数据对象的内存位置有两个重要信息: 数据对象的首地址。数据对象占用存储空间大小 指针类型的值存储的是内存地址。内存地址是从0开始,依次加1的整型数据。 指针类…

单元测试二(实验)-云计算2023.12-云南农业大学

1、实践系列课《深入浅出Docker应用》 https://developeraliyun.com/adc/scenarioSeries/713c370e605e4f1fa7be903b80a53556?spma2c6h.27088027.devcloud-scenarioSeriesList.13.5bb75b8aZHOM2w 容器镜像的制作实验要求 创建Dockerfile文件: FROM ubuntu:latest WORKDIR data…

Git应用——代码提交规范 feat ,fix ,style

当前使用 feat 增加新功能fix 修复问题/BUGstyle 代码风格相关无影响运行结果的perf 优化/性能提升refactor 重构revert 撤销修改test 测试相关docs 文档/注释chore 依赖更新/脚手架配置修改等workflow 工作流改进ci 持续集成types 类型定义文件更改wip 开发中 别处看到 fea…

玩转大数据14:分布式计算框架的选择与比较

1. 引言 随着大数据时代的到来,越来越多的企业和组织需要处理海量数据。分布式计算框架提供了一种有效的方式来解决大数据处理的问题。分布式计算框架将计算任务分解成多个子任务,并在多个节点上并行执行,从而提高计算效率。 2. 分布式计算…

【操作系统导论】内存篇——分页

引入 采用 「分段」 的方式,将空间切成 不同长度的分片,会出现 碎片化 问题,随着时间推移,分配内存会越来越困难。 因此,值得考虑「分页」的方法: 将空间分割成 固定长度的分片 ; 将物理内存…

斑马zebra目标检测数据集VOC+YOLO格式2300张

斑马是由四百万年前的原马进化出来的,最早出现的斑马可能是细纹斑马。有关史前马科动物的化石现存于美国爱达荷州克文的克文化石床国家博物馆。斑马的史前马为“克文马”(美洲斑马或者克文斑马),学名为“Equussimplicidens”&…

智能守护,数据安全稳中求胜!上海迅软DSE助力家具家电行业引领潮流!

随着中国经济的蓬勃发展,家具家电企业正迎来“精品制造”的时代,业内竞争日益激烈。为了提升产品竞争力、扩大市场占有率,企业亟需加强对自主品牌的安全建设,确保品牌的自主知识产权、产品生产资料以及销售信息等核心数据不受泄漏…

Docker真的好难用啊,为什么说它移植性好啊?

看起来你对Docker有点困惑和挑战呀。Docker刚开始确实有点难以入门,但是一旦掌握了它的核心概念和操作,你会发现它其实非常强大和便利。 接下来我会根据你提出的问题和场景,详细地解答。 关于你的实际问题: 刚接触时的困难是正。…

如何实现服务注册与发现?

本文主要讲解如何实现服务注册与发现。 在分布式服务中,服务注册和发现是一个特别重要的概念,为什么需要服务注册和发现?常用的服务发现组件有哪些?服务注册和发现对一致性有哪些要求呢?下面我们就来学习服务发现相关的知识。 …

【五】Python 代理模式

文章目录 5.1 代理模式概述5.1.1 代理介绍5.1.2 代理模式的作用 5.2 代理模式的UML类图5.3 了解不同类型的代理5.3.1虚拟代理5.3.2 远程代理5.3.3 保护代理5.3.4 智能代理 5.4 现实世界中的代理模式5.5 代理模式的优点5.6 门面模式和代理模式之间的比较 5.1 代理模式概述 5.1.…

用XAMPP在Windows系统构建一个本地Web服务器

用XAMPP在Windows系统构建一个本地Web服务器 Build a Local Web Server for Windows with XAMPP By JacksonML 本文简要介绍如何获取和安装XAMPP以实现Windows环境下本地Web服务器的过程,希望对广大网友和学生有所帮助。 所谓本地Web服务器,即使用本地…