本文主要总结整理msrcr算法相关,包括基本原理,效果和实现代码
为了提高低亮度条件和背光条件下拍摄图像的效果,尝试了各种常规的数字图像处理方法,包括:
线性变换
对数变换
直方图均衡等
对yuv分量进行处理,对亮度分量进行处理,提升亮度对比,提升亮度低得值,提高可见度,uv分量不进行处理,避免色彩出现偏差。
这些方法有一定的效果,缺点也很明显,色度恢复不够,处理后的图像泛白,色彩饱和度降低。然后找到了msrcr算法,下文详细比较了msrcr算法和其他常规数字图像处理方法的异同:
Rahman Z, Woodell G A, Jobson D J. A comparison of the multiscale retinex with other image enhancement techniques[C]//Is and T Annual Conference. THE SOCIETY FOR IMAGING SCIENCE AND TECHNOLOGY, 1997: 426-431.
msrcr算法最早文献如下:
Jobson D J, Rahman Z, Woodell G. A multiscale retinex for bridging the gap between color images and the human observation of scenes[J]. Image Processing, IEEE Transactions on, 1997, 6(7): 965-976.
基本原理请参考:
http://www.cnblogs.com/Imageshop/archive/2013/04/17/3026881.html
http://blog.csdn.net/bluecol/article/details/45675615
http://www.ipol.im/pub/art/2014/107/?utm_source=doi
个人观点:
对RGB三个颜色通道分别进行处理
单通道进行大中小三个强度的高斯滤波,取对数,近似三种不同尺度下光照的变化,滤波强度越大,模糊效应越强,对应于光线背景变化越缓和,大中小三个滤波结果按权重(经典的是每个结果1/3)相加,整体亮度整体背景,原始通道对数值减去上述结果,相当于单通道减去背景光照变化的影响,这一过程就是MSR
MSR的问题在于,三个通道分别处理,而没有考虑rgb三个通道的内在关联,会产生色差问题,
MSRCR在此基础上加上颜色恢复和颜色均衡
具体实现:
1. GIMP 现成的图像处理工具可以使用,是开源软件mac linux下都可安装,可以自行搜索,打开图片,点击colors->retinex可以看到效果
msrcr源码参考:http://gimp.sourcearchive.com/documentation/2.6.1/contrast-retinex_8c-source.html
2. 参考如下论文,这篇论文提出了MSRCP,比较了和MSRCR的区别,给出了源码和详细的计算结果,具体代码自己跑了下有点问题,需要自己手动改一改,文件路径在主函数里面写好
http://www.ipol.im/pub/art/2014/107/?utm_source=doi