暗通道优先的图像去雾算法
源地址:http://blog.csdn.net/baimafujinji/article/details/27206237
11.1 暗通道优先的图像去雾算法
图像增强与图像修复二者之间有一定交叉,尽管它们一个强调客观标准,一个强调主观标准,但毕竟最终的结果都改善了图像的质量。图像去雾就是这两种技术彼此交叉领域中最典型的代表。如果将雾霾看作是一种噪声,那么去除雾霾的标准显然是非常客观的,也就是要将图像恢复至没有雾霾下所获取的情况。但是如果将在雾霾环境下拍摄的照片就看作是一种图像本来的面貌,那么去雾显然就是人们为了改善主观视觉质量而对图像所进行的一种增强。早期图像去雾的研究并没有得到应有的重视,很多人认为它的实际意义不大,甚至觉得所谓的去雾算法多是些华而不实的花拳绣腿,缺乏学术上的价值。然而,斗转星移,时易世变。一方面随着大气污染的日益严重,设法改善自动获取的图像质量其意义不言而喻。另一方面,随着数码设备的普及,消费类电子产品的市场也催生出许多新的需求,其中人们对所拍照片质量的修正和优化就是一个显而易见的需求。说到图像去雾,就不得不提到由何恺明博士等人提出的基于暗通道的图像去雾算法。这个算法因其新颖的思路和理想的效果而广受关注,相关论文也曾于2009年荣获CVPR最佳论文奖,同时也是该奖设立以来,首次由亚洲学者获颁此殊荣。
现在结果已经比较细腻了,但是显然图像有些暗。何博士在论文中也有提及直接暗通道算法的结果会是比较暗的。下一篇文章中,我们将给出在MATLAB中实现的源代码,并对过暗的图像增加曝光和自动色阶,从而得到完美的去雾图像。
未完,待续。。。
欢迎关注我的新书: 数字图像处理:原理与实践(MATLAB版)——电子工业出版社出版
书接上文
http://blog.csdn.net/baimafujinji/article/details/27206237
我们已经了解了暗通道图像去雾算法的基本原理,下面我们来编程实现,然后对结果再做一些讨论。
上述代码中调用了几个函数,限于篇幅这里仅给出其中的暗通道处理函数,其余函数读者可以尝试自己写写看,当然其中最关键的就是暗通道处理函数,这也是算法的核心内容。
另外,代码里我们使用了导向滤波函数,导向滤波代码来自何恺明博士,读者可以访问他的网页获得源码,已经论文的原文,链接如下:
http://research.microsoft.com/en-us/um/people/kahe/
另外,下面这个博客里有一些关于导向滤波的比较通俗的讨论,可以作为阅读论文原文时的辅助材料:
http://blog.csdn.net/aichipmunk/article/details/20704681
最后一个小讨论,我们所采用的方法英文叫 Dark Channel Prior,很多人困惑 Prior该怎么翻译,我标题里采用了优先这个叫法,这个是一个比较常见的叫法,我也随世流俗了,因为Prior在英文里确实有这个意思。但是这个通常的叫法其实欠妥,最好翻成 “先验”。在上一篇文章中,我们讨论过这个算法的原理,其实算法是把 暗通道的有关结论作为一个先验条件来使用的,就像我们以前做 数学证明题,会有一些 结论或者定理 即使题目中没给我们也可以直接用,那些结论或者定理就是 先验的 条件,是不需要直接给出也可以使用的。
===========从来不看博客私信的主页君说:通常我会把我所了解的算法尽可能讲清楚,但除了必要的辅助演示之代码,我不会再额外提供源码下载,无论什么时候人都应该靠自己,只有当你能真正写出代码时,那个代码才是属于你的。===========无冥冥之志者,无昭昭之明,无惛惛之事者,无赫赫之功。===========如果你是图像处理的同道中人,欢迎加入图像处理学习群(529549320)。为避免广告推销等骚扰信息,入群需回答门槛问题(例如:x平方的一阶导数等于多少?有木有感觉so easy,不过不要笑,管理员收到的答案是五花八门的!注意每人仅有一次尝试机会哦)。Cheers~
暗通道算法的详细介绍与实现已经收入我的作品《数字图像处理原理与实践(Matlab版)》,更多有趣有用的图像处理算法也可以参考该书。