基于雾天退化模型的去雾算法,Opencv图像暗通道调优,(清华版代码)对普通相片也有较好的调优效果,相片更通透。
结合代码实际运行效果、算法理论模型、实际代码。我个人理解,实际效果是对图像的三个颜色通道做了数值调整,通过暗通道优化,实现去雾效果。
一个是2009年优秀博士算法,相关链接:何凯明博士的暗通道去雾算法(CVPR 2009最佳论文)
暗通道先验:首先说在绝大多数非天空的局部区域里,某一些像素总会有至少一个颜色通道具有很低的值,也就是说该区域光强是一个很小的值。
色彩鲜艳的物体或表面,在RGB的三个通道中有些通道的值很低(比如绿色的草地/树/植物,红色或黄色的花朵/叶子,或者蓝色的水面)。
总之,自然景物中到处都是阴影或者彩色,这些景物的图像的暗原色总是很灰暗的。
另一个作者来自清华大学: 相关链接:清华大学《基于单幅图像的快速去雾》
这两个链接里,都有各自的源代码,可以在opencv 4.8.0、QT6.5.2环境直接编译运行。
两家算法是基于相同的理论模型:
在计算机视觉领域,通常使用雾天图像退化模型来描述雾霾等恶劣天气条件对图像造成的影响,该模型是McCartney首先提出。该模型包括衰减模型和环境光模型两部分。
其中, 是图像像素的空间坐标,是观察到的有雾图像, 是待恢复的无雾图像,表示大气散射系数,代表景物深度, 是全局大气光,通常情况下假设为全局常量,与空间坐标 无关。
表示坐标空间处的透射率,使用 来表示。
关键点:
所有基于雾天退化模型的去雾算法就是是根据已知的有雾图像 求解出透射率和全局大气光 。
如何推导,更详细的算法分析,请参考:清华大学《基于单幅图像的快速去雾》
清华版运行效果如下:
去雾效果非常不错,普通相片经过处理后,也显得更通透。
2009年博士版,也有去雾效果,如下图所示:
但不适合普通相片调优。
有很大的改进空间。