从最开始的Crimm Imageshop中最简单的去雾功能开始,到前不久为止研究的诸多去雾算法,再到近日和一些朋友的关于去雾经验的交流,感受本身对这个方面的研究已经止步了,现对这些算法作个简单的总结。html
本博客中共给出了6种有去雾功能的算法:算法
(1)基于何凯明博士提出的暗通道去雾算法;ide
(2)基于中值滤波(也可以使用高斯\均值\双边之类的)的去雾;函数
(3)基于均值滤波的实时去雾算法;优化
(4)基于多尺度Retinex图像加强技术;ui
(5)基于自适应直方图均衡化算法;spa
(6)基于自适应对比度及色阶加强的图像算法;视频
其中前三种算法属于基于去雾物理模型的,后三种属于普通图像加强手段。htm
咱们先说说后三种吧。基于Retinex的算法对于总体偏暗的图像有很好的加强做用,用于去雾方面只可用于静态的图像,缘由有:(1) MSRCR是基于屡次高斯模糊的,里面有不少的浮点计算,速度是个瓶颈;(2)对于有雾图,有可能会出现过加强现象,使的图像出现噪点;(3)对于自己比较正常的图,处理后的效果人的视觉看来很不天然。blog
第5和第6种算法i是传统的加强算法,对于图像总体特征比较单一的图去雾的效果仍是至关明显的,可是这两个算法受参数的影响比较大,特别是取样数或者说是Tile的大小,不一样的Tile会形成局部图像的过加强(偏白或偏黑),而且算法的复杂度也比较高,内部的分块处理也不适合于并行处理,严重限制了其在实时去雾方面的应用。
第2种基于中值滤波的方式在一些论文里也时有提到,实际我用高斯或者均值之类的模糊代替高斯,也有必定的去雾能力,若是是用中值,可能还会出现图像周边有明显的分界效果,以下图所示,注意看建筑物顶部的几个角的位置:
还有个问题就是虽然有快速的中值算法,可是考虑到如今的工业应用场合常见的处理大小,实时性仍是难以保证,所以,我认为这个算法也只有停留在纸面上,创造不了使用价值。
第3篇算法提出的实时算法,其核心就是一个boxblur,约占整个过程耗时一半左右,但确实能作到实时的能力。对于单幅图像的去雾效果也是至关的不错的,可是用于连续的视频流去雾彷佛能发现各帧之间的过渡不是特别的天然。
在来讲说何凯明的去雾算法吧,我如今看来,仍是这个算法最稳定、最可靠。一是这个算法的原理性经得起推敲,二是其效果综合来讲要比其余的算法都为好,特别是用于连续的视频流。我认为这主要仍是得益于其透射率图要比其余的都为精细。你若是看看中值或者那个实时的,就能够知道他们对应的透射率图都很粗糙。 不过何的算法有一个致命的弱点,速度很慢,由于不管是用soft matting或者guide filter都有着大量的浮点运算,这严重的限制了其用于工业CCD的实时处理。
鉴于此,做者也试着对代码进行深层次的优化,包括SSE处理、并行运行等,但因为算法自己的顺序执行,没法全程并行,偶尔一个小函数能够并行,但因为其自己执行就特别快,好比不要5ms,你去用并行算法可能耗时还会大一些。所以,一直没有什么大的进步,对于一副1024*768的彩图进行去雾须要90ms,这确定没法知足需求。
最近,在思考,既然暗通道去雾的透射率图比其余的算法都来的精细,若是适当的下降一点点其精度,其去雾的效果理论上应该不会有太大的区别,因而我想到了一种方式,即求取透射率的时候不是对原图进行求取,而是先对原图进行下采样,好比缩小为原图的1/4,计算出小图的透射率,以后在经过插值的方式的获取原图大概的透射率,则应该也能够得到效果。通过实践,这种方式大大的提升了执行速度,并且效果和原始的方案基本一致,对于1024*768的图像大约只须要30ms了,若是进一步取1/9的缩放,则只须要大约20ms,彻底能够知足工业实时性要求高的场合。
固然,若是你的缩小系数不是特别大的话,好比缩小为原来的0.5大小,可能两次缩放所用的耗时还抵消了计算小图的透射率图所换来的盈利,所以必须合理选择这个下采样率。
去雾还有一些其余人作的论文,比较经典好比有fattal论文:Single Image Dehazing
Jean-Philippe Tarel: Fast Visibility Restoration from a Single Color or Gray Level Image
最新的好比2013年的 Gaofeng MENG: Efficient Image Dehazing with Boundary Constraint and Contextual Regularization (国产的)
有兴趣的朋友能够本身去研究研究。
我作了一个程序,集成了上述6种图像去雾的算法: 图像去雾综合版本
*********************************做者: laviewpbt 时间: 2014.1.12 联系QQ: 33184777 转载请保留本行信息************************