1 前言
retinex 是常见的图像增强的方法,retinex 是由两个单词合成的:retina + conrtex ,即视网膜+皮层。
2 建立的基础
Land 的 retinex theory 建立在三个假设之下:
- 真实世界是无色的,我们所谓的颜色是光和物质相互作用的结果。(举例:我们见到的水是无色的,但是水膜—肥皂膜却是显现五彩缤纷,那是薄膜表面光干涉的结果)
- 每一颜色区域由给定波长的红、绿、蓝三原色构成。
- 每个单位区域的颜色由三原色决定。
3 算法理论的发展
- 单尺度 Retinex 算法 SSR (single scale retinex)
- 多尺度加权平均 Retinex 算法 MSR (multi-scale retinex)
- 带彩色恢复的多尺度 Retinex 算法 MSRCR(multi-scale retinex with color restoration)
4 算法理论
- 物体的颜色由物体对长波、中波、短波光线的反射能力决定,与反射光强度的绝对值无关。
- 物体的色彩不受光照非均性影响,具有一致性。即,retinex 以色感一致性(颜色恒常性)为基础。
- 不同于传统的线性、非线性的只能增强图像某一类特征的方法,Retinex可以在动态范围压缩、边缘增强和颜色恒常三个方面达到平衡,因此可以对各种不同类型的图像进行自适应的增强。
Retinex theory 认为图像 I ( x , y ) I(x,y) I(x,y)由两幅不同的图像构成:入射图像(亮度图像) L ( x , y ) L(x,y) L(x,y) + 反射图像 R ( x , y ) R(x,y) R(x,y)。
入射光照射到反射物体上,通过物体的反射,形成反射光进入人眼,最后形成图像。
用公式表示就是: I ( x , y ) = L ( x , y ) ∗ R ( x , y ) I(x,y)=L(x,y)*R(x,y) I(x,y)=L(x,y)∗R(x,y)
其中, L ( x , y ) L(x, y) L(x,y)表示入射光图像,环境光的照射分量,它直接决定了图像中像素所能达到的动态范围,应当尽量去除。 R ( x , y ) R(x,y) R(x,y)表示了物体的反射性质,即图像的内在属性,应尽量的保留。 I ( x , y ) I(x,y) I(x,y)表示人眼所能接收到的反射光图像。
L ( x , y ) L(x,y) L(x,y)的输入是光源的位置、强度、颜色,输出是物体表面上不同位置的照亮值。
R ( x , y ) R(x,y) R(x,y)的输入是物体表面的材质、颜色、法线,输出是表面不同位置的反射率和颜色。
Retinex 理论的基本思想:在原始图像中,通过某种方法去除或者降低入射图像 L ( x , y ) L(x,y) L(x,y)的影响,从而尽量的保留物体本质的反射属性图像 R ( x , y ) R(x,y) R(x,y)。
基于Retinex的图像增强的目的:从原始图像S中估计出光照L,从而分解出R,消除光照不均的影响,以改善图像的视觉效果,正如人类视觉系统那样。
根据亮度图像 L ( x , y ) L(x,y) L(x,y)估计方法的不同,先后涌现出了很多Retinex算法。
Retinex核心
包括两方面:
(1)在颜色感知时,人眼对局部相对光强敏感程度要优于绝对光强。
(2)反射分量R(x,y)储存有无光源物体的真实模样,一幅图像对其光照分量L(x,y)的估计越准确,求得的R(x,y)也就越准确。
对于第一点,人对颜色的认知并不是基于绝对光强,反应在图像上时可以理解成,人眼对一像素点(X0,Y0)的颜色的认知不是基于其RGB三通道绝对值大小,而是与两个因素相关:
1、(X0,Y0)点三通道值的差异,它会致使色偏。
2、(X0,Y0)一个邻域内其余像素的RGB值,它会形成颜色的感觉,RGB三通道绝对值主导亮度感觉。
对于第二点,在给定场景的时候,如果场景内无光源,那么R(x,y)应该是一常量。无论光照L(x,y)如何改变,R(x,y)该不变。也就是说,无论我光照是什么颜色什么强度,我都应该能将其矫正到标准光照情况下。这也是色彩恒常性的体现。
5 处理步骤
原理:
- 利用取对数的方法将照射光的分量与反射光分量分离:
l o g ( I ( x , y ) ) = l o g ( L ( x , y ) ) + l o g ( R ( x , y ) ) log(I(x,y))=log(L(x,y))+log(R(x,y)) log(I(x,y))=log(L(x,y))+log(R(x,y))
(因为对数形式与人类在感受亮度的过程属性最相近) - 用高斯模板对图像 I ( x , y ) I(x,y) I(x,y)做卷积,近似获得入射图像 L ( x , y ) L(x,y) L(x,y),即 L ( x , y ) = F ( x , y ) ∗ I ( x , y ) L(x,y)=F(x,y)*I(x,y)