python+opencv图像处理(三十八)
Retinex理论
。
Retinex是Edwin.H.Land于1963年提出的建立在科学实验和科学分析基础上的图像增强方法。Retinex是由retina和cortex两个单词合成的,即:视网膜和皮层。
Retinex理论是建立在以下三个假设之上的:
(1)真实世界是无颜色的,我们所感知的颜色是光与物质相互作用的结果。
(2)每一颜色区域由给定波长的红、绿、蓝三原色构成。
(3)三原色决定了每个单位区域的颜色。
1、单尺度SSR(Single Scale Retinex)
一幅给定的图像s(x,y)可以分解为两个不同的图像:反射图像R(x,y)和亮度图像L(x,y)。
即:S(x,y)=R(x,y)·L(x,y) 式1
其中,S(x,y)是原始图像。R(x,y)是反射图像。L(x,y)是亮度图像。
Retinex理论就是在原始图像中,通过某种方法去除或降低入射光图像即亮度图像的影响,从而尽量保留反射光图像。
一般的处理过程如下:
(1)对上式两边取对数,即:logS(x,y)=logR(x,y)+logL(x,y),
故:logR(x,y)=logS(x,y)-logL(x,y) 式2
(2)估算L(x,y),通常用的是高斯函数来估算,即:
logL(x,y)=log[F(x,y)*S(x,y)] 式3
这里的*表示卷积,F(x,y)=
,其中, c表示高斯环绕尺度,是一个尺度,它的取值须满足:
(3)将式3的结果代入式2中即可得到logR(x,y),再对其取反对数,即可得到R(x,y)。
2、实验结果
赞 (0)