搜索
 找回密码
 立即注册

简单一步 , 微信登陆

图像调试ISP之Edge enhance

作者:laowai_love | 时间:2017-4-7 17:06:45 | 阅读:8610| 只看该作者

边缘增强Edge enhance和一般所说的sharp是一个近似的概念。我这样区分二者:sharp是对图像所有内容增加锐利度,包括Noise也会被放大;而edge enhance是要让真正的edge变得锐利,Noise则尽量不被放大显现出来。从算法上来说Sharp很好实现,任何课本中都会提到sharp算子,而edge enhance则要有效区分出edge和Noise,并且判断edge方向来做增强,增强的方法也很有难度,既要达到一定的锐利度MTF,又要解决边缘粗糙roughness,overshot和undershot等问题。

边缘增强一般在YCbCr空间进行,并且只对Y分量处理,Cb和Cr保持不变,其原理如下:

                                          

                                                                  edge enhance 原理

浅蓝色为原值,深蓝色为enhance之后的数值。从波形上看,edge enhance就是要让线条的斜率更陡一些,甚至允许出现小幅度的过冲。从数值上来看,就是让数据朝着远离邻近点均值的方向走,而且和邻近点均值的差越大,走过的距离也越大,把当前像素值和邻近点均值的差记为d;另外,edge enhance的幅度还和整个edge的变化范围有关,可以认为上图中最大值和最小值的差,记为g;最后是用户设定的锐利度s,这三者可以得出像素的edge enhance函数H(x)。

H(x) = x + f(d, g, s)

f(d, g, s)是一个和d,g,s三者都正相关的函数,但并非线性关系。这里没有统一的数学模型可以给出答案,只有仔细研究规律,多做实验,可以说的是想要得到较好的视觉效果,这个模型非常复杂,参数众多。通过不断的对参数调试练习,慢慢建立起数学计算模型和实际图像效果之间的映射关系,才能较好的平衡锐利度MTF和roughness,overshort,undershort等因素。


为了避免把Noise enhance出来,edge enhance在实现中还需要判断当前像素处于光滑区域还是物体边缘。当处于光滑区域的时候,则不要做edge enhance运算,或者做的幅度很小;只有在较明显的边缘上才做处理,这样避免不了边缘上的noise的影响,所以在锐利度s设定较大的时候,可以发现边缘上会有Noise闪动跳跃的情况。为了缓解这种Noise的跳跃,通常会对f(d, g, s)做最大值和最小值限制保护,并且沿着edge 方向做低通滤波来缓解Noise。

                                          

                                                           egde enhance 前后效果比对

整个Edge enhance的大致流程为先判断平坦区域还是边缘,对平坦区域可以不做或者少做edge enhance(甚至做smooth处理),对边缘要判断幅度大小,边缘方向,选则相对应的高通滤波器处理,最后对enhance的幅度做一定程度的保护处理。


收藏
收藏0
分享
分享
点赞
点赞3
反对
反对0
该会员没有填写今日想说内容.
回复

使用道具 举报

大神点评1

沙发#
高天凡1993 发表于:2017-4-8 18:25:58
上海衡海投资管理有限公司。楼主万岁,万万岁,哈哈哈哈,谢谢了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
手机版