您的位置:首页 > 其它

retinex整理(其中个人理解部分不保证准确,请多指教)

2014-10-06 13:39 295 查看
retinex模型基于人眼,将图片中因雾霭等原因产生的模糊现象去除,提高图像清晰度。这里介绍最常见的一种retinex模型,采用高斯滤波。

人眼看事物时,周围的光照强度和事物的反射光均会进入人眼 I(x,y)=R(x,y)*L(x,y),但真正决定人眼判定事物颜色的是事物的反射光R(x,y)。

拍摄出的照片显示了R,L两个分量,为了让图像更清楚,就需要加强照片里的R分量。于是retinex模型的根本就是提取图像中的R分量。

首先考虑如何估算L分量,假设光照均匀,既图像中的L分量在各处分布均匀,所以L分量占据图像中的低频成分,可以通过高斯滤波,以计算周围邻域内的加权平均值来提取其中的低频成分,并把提取出的低频成分当做L分量。


, sigma决定高斯滤波尺度,K保证G在x,y的二重积分为1.

为了降低运算复杂度,在提取R的时候用减法替代除法,首先对图像求log,于是logR=logI-logL,而不用R=I/L



Single-Scale Retinex:将原始图像分为RGB三个通道,针对每个颜色,采用单一尺度的高斯滤波。高斯尺度越大,影响最后结果的像素范围越大,色彩保真度越大,动态压缩能力越小;尺度越小,结果受周围像素的影响越大,细节越明显,动态范围压缩能力越大。尺度大小各有利弊,为充分发挥各尺度的优缺点,出现了Multi-Scale Retinex。



Multi-Scale Retinex: 一般采用尺度大小为大,中,小(80~100)的三种高斯滤波处理每个颜色通道。根据不同颜色通道对整体颜色的影响,对每个颜色通道的结果加权重,尽可能保持颜色不失真。



 


动态范围:最亮~最黑,灰度1~255,无论感光器件多高级,感知到的动态范围多大,数字化后只有255.

高斯函数经过傅里叶变换仍未高斯函数,只是原sigma大的,变换之后变为sigma小的。

图像中的高频成分为图像的边缘轮廓等;低频成分为整幅图像强度的综合度量。

sigma大的高斯滤波,平均更多的像素点,频域sigma小,滤掉更多成分,剩下很低频率部分的被当做光照,从原图像中剔除,剩下的便是最后输出,也可以理解为高斯滤掉的各种频率组成了最后输出的反射成分,所以色彩保真度更好,色彩保真了,自然明暗变化不明显,既动态范围压缩能力差

反之,sigma小的高斯滤波,频域sigma大,保留大量频率较低成分,只滤掉少了频率很高成分,这些成分可看做最后的输出反射成分,因为组成的频率种类少,所以色彩较单一,动态范围压缩能力强。高频率成分代表细节,缺少其他成分使得细节更明显。

缺陷:1.颜色分布集中于某一部分时,L分量估算错误。例如一块区域内红色通道均为255,高斯滤波求平均值仍为255,去除L分量,则剩余反射分量为0,显然不合理。

            2.retinex模型基于L分量分布均匀的假设,如果在某亮度有较大变化的边缘处,光照变化不符合原有假设,则会出现过亮或过暗的光晕现象(halo artifact)。例如明暗相差很大的临近区域,明亮侧的 I为50,L为30;暗侧的 I为20,L为10;实际的R分别为20,10;如果按假定的均匀L(30+10)/2=20计算的话,R为30,0。亮侧更加亮,暗侧更加暗,造成临界处颜色的感官差异放大。

            3.RGB各分量增减幅度不一时会产生颜色失真扭曲。20,10,30--->10,40,20

            4.从原图像基础上去除了L分量,使得结果图像产生褪色现象(graying-out)

改进:在之前传统方法的基础上进行改进。其中一种方法如下





EC是enhanced curve, 通过分析周边的直方图和edge分布,决定使用哪种曲线,使得图像可视性更好,轮廓更清晰



添加使用HSV色彩模型尽可能保证颜色的饱和度,鲜明度

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: