算法的基本原理是认为人眼观看的图像S是由两部分组成,即入射光图像L与反射图像R相乘得到,因为R与图像轮廓信息相关,所以问题变为从S中提取R。其中的关键便是根据L的特征对L进行合适的建模。
最基础的算法认为光原本照度是均匀的,所以在S图像上进行高斯滤波,从而留下物体反射的信息R,而且认为物体的颜色也是由物体反射能力决定的,处理照度信息不会对颜色信息产生损失。
在这些理论的假设下,感觉这个算法最适合处理的是光照不足下物体的还原,但是要想处理效果好,最好不要有额外的光源,如路灯,建筑物灯,因为这会破坏L的低频特性。
算法采取的多通道MSRCR算法,三通道标准差为经典的30,150,300,对颜色有一定修复。
例子:
处理理较好的几幅图像。
这几幅的共同特点是,观察的物体都在远方,雾对物体的模糊程度较均匀,假如是物体有近有远,雾仅仅对远处的物体模糊,效果就会变差。抑或有灯光破环原本照度的均匀性效果也会变差(照度存在高频信息)。
较差的效果:
我们可以发现在左下光照区域的建筑细节都丢失了,因为算法颜色恢复使用的是对数域线性的恢复128*颜色比重+127,由对数函数的特性,高亮度的区域被压缩了。再就是像路灯附近,亮度变化较大的部分被平滑化了,这还是对亮度L估计方式不当造成的(此情况不应认为照度是缓慢变化的)。
算法也可以解决的光照不足的情况,例如夜晚,清晨,傍晚的图片,解决因为光照不足导致人眼对图像不敏感的问题。
McCann算法
此算法意在对不均匀照度产生一种更好的估计,其对照度信息的提取不再是高斯卷积的加权方式,而是选取在一条螺旋线上的亮度进行加权,相比与高斯加权这样可以获取更大范围内的照度信息,并且根据图像大小进行规定数目的迭代。
算法细节不再赘述,我们看看其与MSRCR处理性能的区别。
(MSRCR)
(McCann)
还是可以看出明显的性能优势的,但是相应的计算量也大大上升(因为有迭代的过程)。