码迷,mamicode.com
首页 > 其他好文 > 详细

Retinex图像增强和暗通道去雾的关系及其在hdr色调恢复上的应用

时间:2016-12-03 15:39:58      阅读:305      评论:0      收藏:0      [点我收藏+]

标签:软件   style   方便   部分   杀毒软件   场景   图像增强   去雾   病毒   

    很多人都认为retinex和暗通道去雾是八杆子都打不着的增强算法。的确,二者的理论、计算方法都完全迥异,本人直接从二者的公式入手来简单说明一下,有些部分全凭臆想,不对之处大家一起讨论。

    首先,为描述方便,后面所有的图像都是归一化到[0,1]的浮点数图像。

    Retinex的公式就是:

J=I/L                                                                                         (1)

其中,J是所求的图像,I是观测图像,L是估计的光照图像。注意,由于有J、I、L的值都在区间[0,1]内,则有L>=I成立。(这里使用符号J和I,而不是常规的R和S,主要是为了和暗通道公式保持一致,便于比较)

    暗通道去雾的公式为:

J=(I-A)/t+A                                                                                  (2)

其中,A是光照值,t是透射率。如果我们定义遮罩图像V1, 并令t=1-V1/A, 将其带入上面公式,则有:

J = (I-V1)/(1-V1/A)                                                                       (3)

一般有I>=V1, 由于光照A的值一般都偏大,接近于1,那么上面公式再次简化为:

J = (I-V1)/(1-V1)                                                                           (4)

    仔细观察公式(1)和(4),你发现相似之处了吗?

    在公式(1)中,I值介于0和L之间,其作用就是将I线性拉伸到[0,1]之间,公式(4)中,I值介于[V1,1]之间,其作用也是将其值线性拉伸到[0,1]之间。

    所以,二者是类似的。

    如果现在图像I值介于[V1,L]之间,那么自然地恢复公式是:

J = (I-V1)/(L-V1)                                                                           (5)

    如果直接套用上面公式到普通图像,效果很容易增强太过,毕竟难以找到又有较强雾霾有光照不足的场景。什么图像合适呢?标题已经点明了,HDR图像。V1也就是我前几天说的暗边界,L就是亮边界,三个RGB通道可以共用暗边界,但L要各自计算。此外,hdr的预处理也非常关键,比如进行对数操作,最后要采用非线性归一化操作。

 

    话不多说,下面上图。左边是Luminance-HDR软件的结果,右边是我的增强结果。

软件EXE下载地址:http://pan.baidu.com/s/1cxKU0u

程序采用python实现,未经性能优化,exe中打包了python及numpy wxpython opencv等重量级模块,故体积较大,如杀毒软件误报为病毒,请信任运行。

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

Retinex图像增强和暗通道去雾的关系及其在hdr色调恢复上的应用

标签:软件   style   方便   部分   杀毒软件   场景   图像增强   去雾   病毒   

原文地址:http://www.cnblogs.com/zmshy2128/p/6128663.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!