图像处理之Retinex增强算法(SSR、MSR、MSRCR)

   

    视网膜-大脑皮层(Retinex)理论认为世界是无色的,人眼看到的世界是光与物质相互作用的结果,也就是说,映射到人眼中的图像和光的长波(R)、中波(G)、短波(B)以及物体的反射性质有关

    

  其中I是人眼中看到的图像,R是物体的反射分量,L是环境光照射分量,(x, y)是二维图像对应的位置

  基于上面的原理,看下Retinex常见的几种增强算法

  

一、     SSR(Single Scale Retinex)单尺度Retinex算法

它通过估算L来计算R,具体来说,L可以通过高斯模糊和I做卷积运算求得,用公式表示为:

其中F是高斯模糊的滤波器,“ * ”表示卷积运算

其中σ称为高斯周围空间常数(Gaussian Surround Space Constant),也就是算法中所谓的尺度,对图像处理有比较大的影响,对于二维图像对应于图像中位置,即:

因此,这个算法的思路就可以归结为以下几步:

1、输入: 原始图像数据I(x,y),尺度(也就是高斯函数中的σ)

2、①计算原始图像按指定尺度进行模糊后的图像 L(x,y);

②按照log(R)=log(I)-log(L)公式的计算方法计算出 Log[R(x,y)]的值

③将 Log[R(x,y)]量化为0到255范围的像素值,作为最终的输出,量化公式:R(x,y) = ( Value - Min ) / (Max - Min) * (255-0)(注:无需将Log[R(x,y)]进行Exp函数的运算,而是直接利用Log[R(x,y)]进行量化,即上述公式中的value值)

 代码如下:

效果图(左边是原图,右边是SSR效果图):(其中σ=300,即代码中的sigma=300

 

 

 

二、     MSR(Multi-Scale Retinex)多尺度Retinex算法

     多尺度视网膜增强算法(MSR, Multi-Scale Retinex),最为经典的就是3尺度的,大、中、小,既能实现图像动态范围的压缩,又能保持色感的一致性较好。基于单尺度Retinex算法,多尺度Retinex算法描述如下:

1、需要对原始图像进行每个尺度的高斯模糊,得到模糊后的图像Li(x,y),其中小标i表示尺度数。

2、对每个尺度下进行累加计算  Log[R(x,y)] =  Log[R(x,y)] + Weight(i)* ( Log[Ii(x,y)]-Log[Li(x,y)]);  其中Weight(i)表示每个尺度对应的权重,要求各尺度权重之和必须为1,经典的取值为等权重。

如果尺度数为3,则:W1=W2=W3=1/3

代码如下:

效果图(左边是原图,中间是SSR效果图,右边是MSR效果图)

  

 

三、     MSRCR(Multi-Scale Retinex with Color Restoration)具有色彩恢复的多尺度Retinex算法

   在前面的增强过程中,图像可能会因为增加了噪声,而使得图像的局部细节色彩失真,不能显现出物体的真正颜色,整体视觉效果变差。针对这一点不足,MSRCR在MSR的基础上,加入了色彩恢复因子C来调节由于图像局部区域对比度增强而导致颜色失真的缺陷.

先看一组公式:

RMSRCR(x,y)'=G⋅RMSRCR(x,y)+b

RMSRCR (x,y)=C(x,y)RMSR(x,y)

C(x,y)=f[I'(x,y)]=f[I(x,y)/∑I(x,y)]Ci(x,y)=f[Ii′(x,y)]=f[Ii(x,y)∑j=1NIj(x,y)] 

f[I'(x,y)]=βlog[αI'(x,y)]=β{log[αI'(x,y)]−log[∑I(x,y)]}

如果是灰度图像,只需要计算一次即可,如果是彩色图像,如RGB三通道,则每个通道均需要如上进行计算

G表示增益Gain(一般取值:5)

b表示偏差Offset(一般取值:25)

I (x, y)表示某个通道的图像

C表示某个通道的彩色回复因子,用来调节3个通道颜色的比例;

f(·)表示颜色空间的映射函数;

β是增益常数(一般取值:46);

α是受控制的非线性强度(一般取值:125)

MSRCR算法利用彩色恢复因子C,调节原始图像中3个颜色通道之间的比例关系,从而把相对较暗区域的信息凸显出来,达到了消除图像色彩失真的缺陷。 处理后的图像局部对比度提高,亮度与真实场景相似,在人们视觉感知下,图像显得更加逼真;但是MSRCR算法处理图像后,像素值一般会出现负值。所以从对数域r(x, y)转换为实数域R(x, y)后,需要通过改变增益Gain,偏差Offset对图像进行修正。

另外:介绍下什么是颜色的简单白平衡(simplest Color Balance)

白平衡的意思就是:是图片中最亮的部分为白色,最暗的部分为黑色。其余部分进行拉伸

简单的说就是:在RGB三通道上分别统计每个像素值的出现次数。将1%的最大值和最小值设置为255和0。其余值映射到(0,255),这样使得每个值通道的值在RGB中分布较均匀。达到颜色平衡的结果

MSRCR代码如下:

 

效果图(左上:原图,右上:SSR,左下:MSR,右下:MSRCR)

       

 

作为一枚技术小白,写这篇笔记的时候参考了很多博客论文,在这里表示感谢,同时,未经同意,请勿转载....

转载于:https://www.cnblogs.com/wangyong/p/8665434.html

SSRMSRMSRCR都是图像增强算法。其中SSR(Single-Scale Retinex)是一种基于多尺度空间的算法,通过对原始图像的亮度和反射成分进行分离,对反射成分进行增强,以提高图像的对比度和细节。引用中提到,SSR的公式部分为r=s-l=logS-logL,其中原始图像为S(x, y),反射图像为R(x, y),亮度图像为L(x, y)。 MSR(Multi-Scale Retinex)也是一种多尺度空间的图像增强算法,其原理与SSR类似,也是通过分离亮度和反射成分来增强图像。不同之处在于,MSR考虑了多个尺度的信息,以更好地适应不同尺度的细节。 MSRCR(Multi-Scale Retinex with Color Restoration)是在MSR算法的基础上进行了改进,主要用于彩色图像的增强MSRCR算法通过对图像的亮度和颜色进行分离,对颜色进行修复,以提高彩色图像的质量和视觉效果。引用中提到,MSRCR算法在处理图像后,像素值一般会出现负值,因此需要通过改变增益和偏差来对图像进行修正。 总的来说,SSRMSRMSRCR都是通过分离图像的亮度和反射成分,对反射成分进行增强,以提高图像的对比度和细节。其中,MSRCR算法还考虑了颜色的修复。这些算法的具体实现细节,包括增益和偏差的取值,取决于算法的软件实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [【OpenCV】Retinex图像增强SSRMSRMSRCR)](https://blog.csdn.net/Gordon_Wei/article/details/102173309)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Retinex图像增强算法(SSR, MSR, MSRCR)详解](https://blog.csdn.net/Julialove102123/article/details/89312058)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值