摄像去雾效果,即对天空部分处理的倒霉

公海赌船网址 1 公海赌船网址 2 公海赌船网址 3

         
  使用原来的预估透射率图                               
 使用导向滤波后的透射率图

  公海赌船网址 4   
公海赌船网址 5

 
 公海赌船网址 6  公海赌船网址 7

                                               公海赌船网址 8

              (c)
窗口大小=21                         (d)
窗口大小=101 

     
获得天空区域后,原文笔者将天空区域的透射率图统一的设置成了二个固定值,笔者以为这么倒霉,依然应当根据实际的值做适当的校勘。
在自家上述的操作中,获得的苍穹去区域是一副蒙版图,有个别点并不一定是完全属于天空或完全不属于。因而,笔者就足以依据这些值来+
暗通道求得的值实行一下Alpha混合,如下所示:

   公海赌船网址 9   公海赌船网址 10

              (a)
原图                                                                               
    (b)预估的透射率图

 
 公海赌船网址 11

                (c)   
暗通道图                          (d) 导向图
(原始图像的灰度图)

  在式(12)中,各样通道的数目都急需除以对应的A值,即归一化,那样做,还留存一个标题,由于A的取舍进度,并不可能担保各样像素分量值除以A值后都自愧不如1,从而导致t的值可能小于0,而那是不容许的,原文笔者并从未交代那或多或少是什么样处理的。小编在其实的编码中发觉,借使实在这么做了,其服从也并不是很理想 ,因而,作者末了的方法是在式(12)中,不考虑A的计量。

   
  公海赌船网址 12 公海赌船网址 13 公海赌船网址 14

      能够见到,当r相比小的时候,在透射率图中着力看不到什么细节音信,由此恢复生机处的图像边缘处不醒目。

    
当直接用上述辩护进行还原时,去雾的成效其实也是很强烈的,比如上面一些事例:

     
作为比较,大家提交直接用何的章程贯彻的功力和用天空识别情势处理的对待效果:

      
联合双边滤波器中的算法是参考了OpenCv中相关函数写的。

   公海赌船网址 15   
公海赌船网址 16

1、 改进的基于暗原色先验的图像去雾算法
作者: 蒋建国\侯天峰\齐美彬  
萨拉热窝工业高校 二零一一

       以途达GB图为导向图的计量中,涉及到3*3局地矩阵求逆的历程,如若用非matlab语言写,能够先借助于matlab的符号总括效率,以及个中的符号总括命令simple,把总结结果算出来,然后再再其余高级语言中落到实处。

                     
一些无雾的图片                                                                               
  其暗通道

            稍作去噪                                 起头天空识别                           
          进行羽化

   公海赌船网址 17     公海赌船网址 18

     
大家抛开杂谈中历数的这一个例子,自身从网上找几幅没有雾的风景照,看看结果如下:

   
 伍 、对界别后的图举行高斯羽化处理(可选的)。

    for (Y = 0, DarkPt = DarkChannel; Y < Height; Y++)
    {
        ImgPt = Scan0 + Y * Stride;
        for (X = 0; X < Width; X++)
        {
            Min = *ImgPt;
            if (Min > *(ImgPt + 1)) Min = *(ImgPt + 1);
            if (Min > *(ImgPt + 2)) Min = *(ImgPt + 2);
            *DarkPt = Min;
            ImgPt += 3;
            DarkPt++;
        }
    }

    MinFilter(DarkChannel, Width, Height, Radius);

                             
原图                                                
去雾效果图                                                     
透射率图

****************************小编:
laviewpbt   时间: 二〇一五.8.12    联系QQ:  33184777
转发请保留本行信息**********************

                                                
  公海赌船网址 19

         
  使用原来的预估透射率图                               
 使用导向滤波后的透射率图

     
第一步则设定2个阈值来伊始判断某处是或不是属于天空,那一个阈值小编取的是0.02,量化到unsigned
char范围则基本对应5。

          (a) 
r=最小值滤波半径的2倍
                       (b) r=最小值滤波半径的8倍

      上海体育场所中最后一副图笔者连连做了五回去雾的拍卖。 

     
还有一步,故事集也论及了,正是那一个勘误的步骤都必须在refine阶段从前做,一句话来说,便是索要在开展导向滤波前做。那样利用导向滤波的坦荡功效,能够将天空和非天空分界部位的不平坦现象自然水平上弥补掉);

   公海赌船网址 20 
   公海赌船网址 21

     由此,可推导出:

   
 壹 、将图像转换为灰度:那里为保留越多的边缘新闻,能够设想使用全数相比度保留效率或明显性保留效用的一部分去色算法。

  公海赌船网址 22   公海赌船网址 23

     首先看望暗通道先验是如何:

   
 肆 、依据设定梯度阈值和亮度阈值对梯度音讯实行区分;

                        (c)
导向滤波获得透射率图                                                  
(d)联合双边滤波透射率图(Sigmad=SigmaPRADO=100)

   
作者分别用VB6和C#做了个程序,三个程序都早就通过各自的语言艺术开始展览了优化,算法部分编码是一致的,C#运营速度大概是VB6的1.8倍。

     
借使K取值为0,则也正是原始的透射率公式。

   公海赌船网址 24  
 公海赌船网址 25

  将式(1)稍作处理,变形为下式:

     
上边的做法是较为合理的,因为一般情形下大气光A的取值和天空部分应该是这三个接近的,而那3个符合暗通道的地方则离家天空,关于这一个算法的效能,作者在自作者的《Single
Image Haze Removal Using Dark Channel
Prior》一文中图像去雾算法的法则、达成、效果(速度可实时)
一文的实例工程中曾经提供了测试程序。

               (a)
原图                               
  (b)  去雾结果图

   公海赌船网址 26  
 公海赌船网址 27  
公海赌船网址 28

公海赌船网址 29

    公海赌船网址 30   公海赌船网址 31  
 公海赌船网址 32

   公海赌船网址 33   
 公海赌船网址 34

     
在经典的三种去雾算法中,包涵何凯明的暗通道去雾、Tarel的遵照中值滤波的去雾以及部分依据其余边缘保留的法门中,都有二个普遍存在的题材:即对天空部分处理的不好,天空往往会冒出较大的面积的纹理及分块现象。究其主要原因,依旧因为天空部位基本上是不切合暗通道去雾先验这几个前决条件的。方今,针对这一标题,笔者找找到的第3有以下几篇小说进行了拍卖:

   公海赌船网址 35   公海赌船网址 36

        5)按照《Guided Image
Filtering
》诗歌中的公式(5)、(6)、(8)编码总计获得迷你的透射率图。

  一片黑,由此,完全不影响结果。

     
由上述几幅图像,能够一目明白的阅览暗通道先验理论的普遍性。在小编的随想中,总结了伍仟多副图像的特点,也都基本符合这几个先验,由此,我们能够认为实际一条定律。

     实际生活中程导弹致暗原色中低通道值主要有五个要素:a)小车、建筑物和城市中玻璃窗户的黑影,大概是树叶、树与岩石等自然风光的阴影;b)色彩鲜艳的物体或外部,在翼虎GB的多个通道中稍加通道的值很低(比如血红的草地/树/植物,卡其色或鼠灰的花朵/叶子,或者蓝绿的水面);c)颜色较暗的物体只怕表面,例如灰暗色的树干和石头。综上可得,自然景象中四处都以影子恐怕彩色,那一个风景的图像的暗原色总是很惨淡的。

     
  公海赌船网址 37

    把式(10)带入式(8)中,得到:

 
公海赌船网址 38 
公海赌船网址 39 
公海赌船网址 40

  公海赌船网址 41 公海赌船网址 42  公海赌船网址 43

 
 公海赌船网址 44    公海赌船网址 45   公海赌船网址 46

     使用了导向滤波后的去雾效果:

   
  公海赌船网址 47 公海赌船网址 48 公海赌船网址 49

   
如上所述,上标C表示安德拉/G/B多少个通道的情趣。

  
那里能够直接用原来的图像做导向图,当然也足以用其灰度图,可是用奥迪Q5GB导向图在下一步的测算中会占用对比大的年华。

  为了增强速度,也足以应用笔者在何那篇杂谈的辨析的博文中的格局,进行下采集样品处理,然后在上采集样品。

    网络上有那一个算法的
matlab代码可下载的,那里贴部分代码:

                
有雾图                                           
 去雾图

   
 叁 、对梯度消息进行适宜的去噪和滤波;

  公海赌船网址 50    公海赌船网址 51

    for (Y = 0, DarkPt = DarkChannel; Y < Height; Y++)
    {
        ImgPt = Scan0 + Y * Stride;
        for (X = 0; X < Width; X++)
        {
            Min = *ImgPt;
            if (Min > *(ImgPt + 1)) Min = *(ImgPt + 1);
            if (Min > *(ImgPt + 2)) Min = *(ImgPt + 2);
            *DarkPt = Min;
            ImgPt += 3;
            DarkPt++;
        }
    }

    MinFilter(DarkChannel, Width, Height, Radius);

     
第①步对起来的分界进行下小范围的扩大。

     在处理速度上,比
matalb的快了成百上千倍,在I3的台式机电脑上,一副1024*768的图像去雾时间大约在150ms内(以灰度图为导向图)。

   公海赌船网址 52    
公海赌船网址 53

 对于那多少个基本不设有天空的图,检查和测试的结果如下:

 最新的成效见
http://video.sina.com.cn/v/b/124538950-1254492273.html
 

                                                   
公海赌船网址 54

     
第二步笔者觉得最有价值,直接在原始数据判断天空不是很好做,作者考察到天空部分完全来说是相比坦荡的,也正是附近像素之间转变相当小,由此用梯度来表示则更易于辨别,梯度值越小则申明图像那一块越光滑。

      互连网上有一些相比较好的暗原色先验去雾的matlab代码:比如和本文基本对应的matlab能源:http://files.cnblogs.com/Imageshop/cvpr09defog%28matlab%29.rar

                              (a)
原始图像                            (b)
窗口大小=11

  DarkChannel[Y]= (SkyPresrve *
Sky[Y] + DarkChannel[Y] * (255 – Sky[Y])) / 255 ;    

  公海赌船网址 55    公海赌船网址 56

在看望一些有雾的图的暗通道:

      第1篇文章扩展了八个可控参数K,
用来调节种种像素处的透射率:

  大家给暗通道三个数学概念,对于自由的输入图像J,其暗通道能够用下式表明:

     公海赌船网址 57   
公海赌船网址 58

     笔者的做法是: 

     
有了那么些先验,接着就需求展开一些数学方面包车型客车推理来最后消除难题。

  function q = guidedfilter(I, p, r, eps)
  %   GUIDEDFILTER   O(1) time implementation of guided filter.
  %
  %   - guidance image: I (should be a gray-scale/single channel image)
  %   - filtering input image: p (should be a gray-scale/single channel image)
  %   - local window radius: r
  %   - regularization parameter: eps

  [hei, wid] = size(I);
  N = boxfilter(ones(hei, wid), r); % the size of each local patch; N=(2r+1)^2 except for boundary pixels.

  % imwrite(uint8(N), 'N.jpg');
  % figure,imshow(N,[]),title('N');
  

  mean_I = boxfilter(I, r) ./ N;
  mean_p = boxfilter(p, r) ./ N;
  mean_Ip = boxfilter(I.*p, r) ./ N;
  cov_Ip = mean_Ip - mean_I .* mean_p; % this is the covariance of (I, p) in each local patch.

  mean_II = boxfilter(I.*I, r) ./ N;
  var_I = mean_II - mean_I .* mean_I;

  a = cov_Ip ./ (var_I + eps); % Eqn. (5) in the paper;
  b = mean_p - a .* mean_I; % Eqn. (6) in the paper;

  mean_a = boxfilter(a, r) ./ N;
  mean_b = boxfilter(b, r) ./ N;

  q = mean_a .* I + mean_b; % Eqn. (8) in the paper;
  end

  对那多少个步骤笔者举行了粗糙的点评吧。

      式中Jc表示彩色图像的每一个通道 ,Ω(x)表示以像素X为基本的一个窗口。 

                                                        
公海赌船网址 59

     
第4步是为着防患部分漏检点,把在天上区域周边的一部分像素在越发进展鉴定识别,符合条件的则加到天空区域中。

     首先看望暗通道先验是什么:

   公海赌船网址 60    
公海赌船网址 61

   
 公海赌船网址 62

                                          
    公海赌船网址 63

                                    (a)
原始图像                                  
(b)    ω=0.5         

 

     公海赌船网址 64 
   公海赌船网址 65  
 公海赌船网址 66

   
首先借使在每三个窗口内透射率t(x)为常数,定义他为公海赌船网址 67,并且A值已经给定,然后对式(7)两边求四回最小值运算,得到下式:

      ② 、Single image dehazing Algorithms
based on sky region segmentation, 2011  王广义
 伯明翰中医药大学(那篇小说仿佛要到学校里才能下载);

    
关于何博士的部分资料和散文,我们能够访问那里:http://research.microsoft.com/en-us/um/people/kahe/

   公海赌船网址 68    
公海赌船网址 69

     
 第①篇作品的笔触则是开始展览天空分割。对细分后的两局地透射率做不相同的处理,那么这一个的基本点就在于天空特征的领取。小编原文是经过以下几个步骤来贯彻的。

      上航海用教室中最终一副图小编接二连三做了四次去雾的处理。 

   
公海赌船网址 70    
公海赌船网址 71

   
 公海赌船网址 72

    
到这一步,我们就足以拓展无雾图像的回涨了。由式(1)可见:  J = ( I –
A)/t + A  

        4)总计导向滤波图。

   
 公海赌船网址 73

                (e) 
 预估透射率图                       (f)   使用导向滤波后的透射率图

    
关于何大学生的一些质感和舆论,大家能够访问那里:http://research.microsoft.com/en-us/um/people/kahe/

   
 贰 、求灰度图像的梯度音讯(其实就能够用常用的片段边缘检查和测试算子完成);

  在式(12)中,每一个通道的多少都供给除以对应的A值,即归一化,那样做,还存在三个标题,由于A的精选进程,并不可能担保每种像素分量值除以A值后都低于1,从而导致t的值恐怕小于0,而那是不容许的,原文小编并不曾交代那点是什么处理的。作者在实质上的编码中发觉,即使实在这么做了,其功用也并不是很理想 ,因而,作者最终的法子是在式(12)中,不考虑A的计算。

    
式(12)中的ω具有着明显的意义,其值越小,去雾效果越不精通,举例如下:

    整个流程的示意图如下所示:

      
在多数非天空的片段区域里,某有个别像素总会有至少三个颜料通道具有很低的值。换言之,该区域光强度的最小值是个十分小的数。

               (a)
原图                               
  (b)  去雾结果图

 

    壹 、杂谈思想的简短描述 

     意思正是说直接去雾后的图像会比原来的暗,由此在拍卖完后要求展开一定的暴露增强,但笔者没有评释其是哪些抓好的,
因而,那里的图和他故事集的功效有所不一致时平常的。一般在去雾处理后再用自动色剂之类的算法增强下会得到比较满足的结果,如下图:

   
 公海赌船网址 74  公海赌船网址 75 公海赌船网址 76

     和平凡一样,提供1个可供大家测试效果的次序: 据悉暗原色先验的图像去雾演示程序

   
如上所述,上标C表示纳瓦拉/G/B三个通道的情致。

 
 公海赌船网址 77  公海赌船网址 78

      
由地方的代码,可知,重要的工作量在均值模糊上,而均值模糊是个很高效的算法,关于均值模糊的优化可参看我此前的篇章:彩色图像高速模糊之懒惰算法。

       以途睿欧GB图为导向图的乘除中,涉及到3*3部分矩阵求逆的进度,倘诺用非matlab语言写,能够先借助于matlab的符号计算作用,以及在那之中的符号总计命令simple,把总结结果算出来,然后再再其他高档语言中落到实处。

 
 在舆论的终极,小编也事关了去雾的图像彰显比较昏暗,为此,做了一下处理:

   
在图像去雾那么些世界,差不离一直不人不亮堂《Single Image Haze Removal Using
Dark Channel
Prior
》那篇文章,该文是二零一零年CVPLAND最佳随想。小编何凯明大学生,2006年浙大东军事和政院学结束学业,二〇一二年香岛中大硕士完成学业,可谓是功力深厚,惊讶于国内部分所谓大学生的水平,何那样的大学生才方可真正称之为Doctor。

      还有少数正是,上述总结必要在[0,1]范围内实行,也正是说导向图和预估的透射率图都无法不从[0,255]先映射到[0,1]在展开测算。

 

  公海赌船网址 79  
 公海赌船网址 80

  ② 、各参数对去雾结果的影响

     
第4步对私分后的图的每一种联通区域总计其本来面目图像在对应地点的像素的平均亮度,假设当先阈值T则保留,T那里小编取0.81,对应整数205左右。

     本文中存有的测试结果依赖于: 
ω=0.95。

     和平平一样,提供贰个可供我们测试效果的次第:
据悉暗原色先验的图像去雾演示程序

  有以上相比可知,在维护了天上的时候,和天幕交接的地点的去雾程度也正好的有着削弱。

                       
原图                                                        
未对A值做限定                  最大A值限定为220

                              
 公海赌船网址 81

  即在HSV空间,对V分量进行CLAHE增强,然后在更换来MuranoGB空间,那种措施对有个别图像确实有很明朗的拉长作用,可是某个图恐怕又会增强噪音,因而照旧依据真实意况采用性的处理吧。

     因而,可推导出:

     公海赌船网址 82   
公海赌船网址 83

     
作为对照,大家在付给几幅图的苍穹的辨识效率:

      还有一些便是,上述总括要求在[0,1]限定内开始展览,相当于说导向图和预估的透射率图都必须从[0,255]先映射到[0,1]在进展测算。

   公海赌船网址 84  
 公海赌船网址 85

     
其余关于大气光值A的盘算,故事集建议了以获得的苍天部位的像素的平均值作为A,那也是十分合理的,可是在实际上处理时,针对有个别完全没有天空部分的图像,恐怕检查和测试到的天空区域一点都不大(显明属于误检,不过程序不知底的),那些时候以此为大气光值,也是不客观的。为此,作者的处理格局先计算天空部位总括的A值,然后在检查和测试天空像素占整个图像的比重,假若比例小于5%,则依然以何凯明那种计算A的不二法门展开。

        4)总结导向滤波图。

  上述暗通道图像均选择的窗口大小为15*15,即最小值滤波的半径为7像素。

     
第⑧步是有些被完全包涵在天上中还未被认为是天幕的小区域添加到天空中。

    
当直接用上述申辩举办复原时,去雾的机能实在也是很分明的,比如上面一些例证:

  大家给暗通道八个数学概念,对于自由的输入图像J,其暗通道能够用下式表明:

  当中SkyPresrve就像于随想的定点透射率值,是用户钦定的,在上式中,若Sky[255],即完全属于天空,则改点的透射率即为固定值,若Sky[Y]=0,即完全不属于天空,总计式的值不变,不影响平常去雾。

                
有雾图                                           
 去雾图

         
原图                
去雾后              +自动色阶

     
第肆步取符合第肆步条件的最大的联通区域作为识其余苍穹区域。

         
原图                
去雾后              +自动色阶

           (e)灰度图为导向图对应的去雾效果    
                       
  (f)途胜GB图导向图对应的去雾效果

 
 公海赌船网址 86
  公海赌船网址 87

                                                         
  公海赌船网址 88           

   
式(5)的意义用代码表达也很简单,首先求出每一种像素宝马X5GB分量中的最小值,存入一副和原有图像大小同等的灰度图中,然后再对那幅灰度图举办小小的值滤波,滤波的半径由窗口大小决定,一般有WindowSize
= 2 * Radius + 1;          

               原图                                    何的去雾                             本文结果(SkyPresrve
=100)

   
式(5)的意义用代码表明也很简短,首先求出每一种像素瑞鹰GB分量中的最小值,存入一副和原始图像大小同等的灰度图中,然后再对那幅灰度图举行小小的值滤波,滤波的半径由窗口大小决定,一般有WindowSize
= 2 * Radius + 1;          

 

   
 个人觉得,除了第二步、第三步、第⑤步有须求外,其余的不必要这么处理。特别是第肆步的处理会促成天空部位的漏检。比如上面包车型大巴流程示意图的原图,假若用上述形式必然会导致左上角处小片段天空完全不见掉。其它三个难点不怕,联通区域的持筹握算依然相比较耗费时间的。

    公海赌船网址 89  
  公海赌船网址 90

                (e) 
 预估透射率图                       (f)   使用导向滤波后的透射率图

     
当|I(x)-A|<k时,认为这么些区域只怕是天空,重新总计透射率(增添透射率),|I(x)-A|>k处,则以为是契合暗通道先验的区域,透射率不变。

     现在I,A,t都已经求得了,由此,完全能够举办J的计量。

       3)
按式(12)总结预估的透射率图。

公海赌船网址 91  公海赌船网址 92 公海赌船网址 93

  首先,在处理器视觉和电脑图形中,下述方程所讲述的雾图形成模型被普遍利用:

                (c)   
暗通道图                          (d) 导向图
(原始图像的灰度图)

   
 公海赌船网址 94  公海赌船网址 95 公海赌船网址 96

在探望一些有雾的图的暗通道:

                      
(c)使用灰度图为导向图获得的透射率图                      
    (d)使用安德拉GB图为导向图获得的透射率图

              原图                                    灰度图                                  梯度消息

 5、算法的局限性

 

     
暗原色先验是一种总结的结果,是对大气露天无雾照片(outdoor haze-free
images)的总计结果,假使指标场景内在的就和大气光类似,比如雪地、米黄背景墙、大海等,则是因为前提条件就不正确,因而一般不能取得满足的功用,而对此一般的山山水水照片以此算法能处理的正确性。

    

 

    二〇一一.8.23 后记补充立异:

     在此起彼伏对该算法的体贴中,发现本身在近年来做出了2个错误的判断,就是关于式(11)中/A的操作。我在前面说这些除法会引起部分题材,因而,去除了这一步。然则后来的实践注明正是有了这一步,对于相比较度低的图像才得以获得很好的去雾高比较度图。

    前边说的/A操作或许会导致t的值小于0,那种景色就足以把t的值间接设置为0来化解。

   
还有叁个政工就是式(11)严厉的来说是要对原来图像的每种通道进行归一化后,再取每种通道Kuga/G/B值的小小值获得中间图,然后对这么些其中图举办点名半径的十分的小值滤波后,通过11式得到粗糙的透射率图,那么这么就须要多不少总括,我在事实上中窥见只要直白用前面的暗通道图/A举行操作,两者的效益差异不鲜明,因而,可用那种便当的章程。

公海赌船网址 97   公海赌船网址 98

 上海体育场所是一副经典的测试图,纵然赢得了相比较好的职能,但是如同马路那一块的效率不如部分其余人公开的结晶那么好。

公海赌船网址 99   公海赌船网址 100

     那也是一副比较普遍的测试图,该图也是紧用去雾获得结果,未做其他的后处理,同CSDN多少个的案例库:图像去雾的算法切磋中的效果相比较,在整幅图像的相比较和和协调性上都要好三个品位。

    
再如下图,也比CSDN那些案例库中的效果要好过多。

  公海赌船网址 101   公海赌船网址 102

     还有:

公海赌船网址 103  公海赌船网址 104

公海赌船网址 105  公海赌船网址 106

   

   计算:作者对那种去雾算法的遵守依旧很惬意的, 效果和进程都还相比妥善。

   附属类小部件的测试程序已经联合更新。

   二零一一.10,10 后记补充:

    平素听别人说C的频率很高,于是用C达成了该算法,并且编写制定了二个可供其他语言调用的dll文件,然后对小小值滤波算法又展开了尤其的优化,算法速度有了不小的增高,特别是在用VS贰零零玖时,编写C的代码可以勾选下图中的SSE选项和高效(fp:fast),程序会调用SSE一些函数,达成指令级其余并行。而那个C#的编写翻译器是无能为力落实的。

公海赌船网址 107

     同样的算法,绝对于原始的C#程序,程序的快慢能进步级中学一年级倍左右,对于800*600的图像,在自个儿的I3的CPU上平均能能达到20fps的快慢(只占用了多少个核的CPU财富),因此能够适用于不超过该限制内的实时图像处理。

    
同样作者增添了三个里头可调的参数供大家测试。

公海赌船网址 108

     相应的DLL函数评释如下:

     c风格:

void HazeRemovalUseDarkChannelPrior(unsigned char * Src,unsigned char * Dest,int Width,int Height,int Stride, int Radius ,int GuideRadius, int MaxAtom, float Omega,float Epsilon,float T0 )

    c#调用:

 [DllImport("HazeRemoval.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Unicode, ExactSpelling = true)]
  private static extern void HazeRemovalUseDarkChannelPrior(byte* Src, byte* Dest, int Width, int Height, int Stride, int Radius,int GuideRadius, int MaxAtom, float Omega, float Epsilon, float T0);

    VB6调用:

Private Declare Sub HazeRemovalUseDarkChannelPrior Lib "HazeRemoval.dll" (ByVal Src As Long, ByVal dest As Long, ByVal Width As Long, ByVal Height As Long, ByVal Stride As Long, ByVal Radius As Long, ByVal GuideRadius As Long, ByVal MaxAtom As Long, ByVal Omega As Single, ByVal Epsilon As Single, ByVal T0 As Single)

     

    
调用实例源代码下载:http://files.cnblogs.com/Imageshop/HazeRemovalTest.rar

 2013.11,22修正: 

  通过同步双边滤波求透射率图的成效下面的不正确的,进最新的切磋结果申明,双边滤波确实也能取得迷你的投射图,比如依然那上边的测试图像,差异的SigmaS和Sigma汉兰达下取得透射率效果如下:

   公海赌船网址 109   
 公海赌船网址 110

          SigmaS=50,SigmaR=30                          
SigmaS=100,SigmaR=30

 

 二零一六.1.12
重庆大学立异(可达成实时遵守):

   
 何的算法效果以及常见的实用性都比其余的去雾算法要好,而首要的难点正是其速度照旧不够快,有着太多的浮点总计。鉴于此,小编也数次试着对代码举行深层次的优化,包蕴SSE处理、并行运营等,但由于算法本人的次第执行,无法全程并行,偶尔二个小函数能够互相,但出于其本身执行就专门快,比如不要5ms,你去用并行算法大概源消耗费时间还会大一部分。由此,平昔未曾什么大的进化,对于一副1024*768的彩图举办去雾须求90ms,那必将不能满意急需。

   
 近来,在思维,既然暗通道去雾的透射率图比此外的算法都来的精密,如果适龄的下降一点点其精度,其去雾的意义理论上应该不会有太大的分别,于是自身想开了一种艺术,即求取透射率的时候不是对原图实行求取,而是先对原图实行下采集样品,比如缩短为原图的四分一,计算出小图的透射率,之后在经过插值的法子的收获原图差不离的透射率,则应该也得以博得效益。经超过实际践,那种办法大大的进步了进行进程,而且效用和原来的方案基本一致,对于1024*768的图像大致只供给(I3CPU)30ms了,若是进一步取百分之十一的缩放,则只必要差不多20ms,完全能够满意工业实时性供给高的场所。

   
当然,若是你的紧缩周到不是特地质大学的话,比如减少为原本的0.5大小,只怕三次缩放所用的耗费时间还抵消了总括小图的透射率图所换到的扭亏,因而必须合理合法选用那个下采样率。

   
要促成那样的快慢,当然依旧要求很高的优化技术的,这么些东西依旧具有保存比较好。 

   
小编做了二个主次,集成了本博客中6种图像去雾的算法: 图像去雾综合版本

公海赌船网址 111

用暗通道的算法对一段录像举办了处理,大家能够在那里看看作用:http://video.sina.com.cn/v/b/124538950-1254492273.html



     公海赌船网址 112 
   公海赌船网址 113  
 公海赌船网址 114

         
 公海赌船网址 115

                                                     
   公海赌船网址 116

     
参数eps的取值也富有侧重,他首若是为着防患总结中除以0的错误以及为了使得一些计算结果未必过大,一般建议取值0.001依然更小。

 

    
上述推论中都以倘使全世界达气光A值时已知的,在实质上中,大家能够借助暗通道图来从有雾图像中得到该值。具体步骤如下:

   公海赌船网址 117  
公海赌船网址 118

公海赌船网址,  示例程序:http://files.cnblogs.com/Imageshop/HazeRemovalWithSkyRecognition.rar

                                       (c)   
ω=0.8                                                                  
    (d)    ω=1 

 四 、其他一些去雾效果图

  

       3)
按式(12)总计预估的透射率图。

   公海赌船网址 119  
 公海赌船网址 120  
公海赌船网址 121

                                                 公海赌船网址 122

                                                 公海赌船网址 123

   公海赌船网址 124  
 公海赌船网址 125   公海赌船网址 126

    互连网上有那几个算法的
matlab代码可下载的,那里贴部分代码:

  二 、各参数对去雾结果的震慑

      最新的成效见
http://video.sina.com.cn/v/b/124538950-1254492273.html
 

              (a)
原图                                                                               
    (b)预估的透射率图

     
去雾算法近年来也有所众多任何的不二法门,不过本人所接触的,很多都以以那几个为底蕴,因而,先弄会以此为商讨其他的去雾算法能奠定抓牢的基础。

       上图能够很明朗的看来联合双边滤波的透射率图没有导向滤波的精致,但比原来的粗疏的透射率图依旧好过多,过渡一点也不粗腻,因而,也能博取正确的视觉去雾效果。

                                                           
公海赌船网址 127           

  公海赌船网址 128   公海赌船网址 129 

     本文中存有的测试结果依赖于: 
ω=0.95。

                                   
(a) 原图                                                              
(b)   联合双边滤波去雾图

    
最先导接触何的那篇随想是在2012年,说实在的不行时候,只是随便浏览了下,看到里边的soft
matting进度相比复杂,并且实施进度尤其慢,就一直不什么样大的志趣。近期又奇迹拾起,仔细研读,觉得杂谈的演绎步骤尤其明晰,讲解很成功。恰好适逢浏览到其其余一篇文章《Guided
Image
Filtering
》 ,当中涉嫌了足以用导向滤波来代表soft
matting的经过,且速度急忙,由此,笔者对去雾的趣味算法又大大升高了。
 

  
那里能够平素用原始的图像做导向图,当然也足以用其灰度图,但是用奥迪Q5GB导向图在下一步的盘算中会占用相比较大的时刻。

  1)依照原有图像求暗通道,参考代码如下:

   
首先若是在每一个窗口内透射率t(x)为常数,定义他为公海赌船网址 130,并且A值已经给定,然后对式(7)两边求两遍最小值运算,获得下式:

      
由地点的代码,可知,首要的工作量在均值模糊上,而均值模糊是个很迅猛的算法,关于均值模糊的优化可参考作者此前的文章:彩色图像高速模糊之懒惰算法。

  
公海赌船网址 131   公海赌船网址 132    

     使用了导向滤波后的去雾效果:

    
到这一步,我们就足以拓展无雾图像的回复了。由式(1)可见:  J = ( I –
A)/t + A  

          一些有雾的图纸                                                                              
   其暗通道

      
在大多数非天空的一部分区域里,某部分像素总会有最少二个颜料通道具有很低的值。换言之,该区域光强度的最小值是个不大的数。

   公海赌船网址 133   
 公海赌船网址 134

    
公海赌船网址 135  
 公海赌船网址 136

   公海赌船网址 137     公海赌船网址 138

     
尽管运用的花花绿绿CR-VGB图做导向图,总结时间上会扩展很多,所的到的透射率图的边缘会比灰度图所拍卖的保存了越多的底细,效果上略微比灰度图好,如下所示:

   
在现实生活中,就算是晴朗白云,空气中也设有着某些微粒,因而,看远处的实体仍是可以感到到雾的影响,其它,雾的存在令人类感到景深的留存,由此,有必不可少在去雾的时候保留一定水平的雾,那可以因而在式(11)中引入叁个在[0,1]
之间的因子,则式(11)创新为:

  倘诺你细心的剖析了初稿的细路,加上适量的参阅,编码其实并不是很不方便。

     那里说美素佳儿(Friso)些,原始散文中的A最后是取原始像素中的某多个点的像素,作者实在是取的符合条件的全部点的平均值作为A的值,笔者如此做是因为,如若是取三个点,则各通道的A值很有恐怕全部很接近255,那样的话会招致处理后的图像偏色和产出大批量色素斑点。原文作者说那么些算法对天空部分不需特备处理,我骨子里发现该算法对有天空的图像的效益一般都倒霉。天空会现出明显的连通区域。作为解决方案,我扩大了一个参数,最大满世界大气光值,当总结的值超过该值时,则就取该值。  

    公海赌船网址 139  
公海赌船网址 140  
 公海赌船网址 141

  作者的提出是窗口大小在11-51之内,即半径在5-25之内。

    
公海赌船网址 142   
公海赌船网址 143

      1)
从暗通道图中依据亮度的轻重取前0.1%的像素。

     公海赌船网址 144   
公海赌船网址 145

   公海赌船网址 146  
 公海赌船网址 147   公海赌船网址 148

     
可处理摄像的以身作则:摄像去雾效果

    那里供给留意的是MinFilter算法的全速达成,提供一篇故事集供有供给的爱人学习:STREAMING
MAXIMUM-MINIMUM FILTER USING NO MORE THAN THREE COMPARISONS PER
ELEMENT
 。那么些算法的时辰复杂度是O(1)的。

   公海赌船网址 149  
公海赌船网址 150

  1)依据原有图像求暗通道,参考代码如下:

      1)
从暗通道图中服从亮度的大小取前0.1%的像素。

     因而,最后的苏醒公式如下:

  
公海赌船网址 151   公海赌船网址 152

     
借使使用的五彩卡宴GB图做导向图,总括时间上会扩张很多,所的到的透射率图的边缘会比灰度图所拍卖的保存了越来越多的底细,效果上略微比灰度图好,如下所示:

                                              
公海赌船网址 153

     
去雾算法方今也负有众多其余的方法,然则小编所接触的,很多都以以那个为根基,由此,先弄会以此为讨论别的的去雾算法能奠定抓好的功底。

     由此,最终的上升公式如下:

    
式(12)中的ω具有着显明的意思,其值越小,去雾效果越不分明,举例如下:

    三:编码的手续

                                   公海赌船网址 154 

                       
原图                                                        
未对A值做限定                  最大A值限定为220

          2)
在那么些岗位中,在原来有雾图像I中查找对应的兼具最高亮度的点的值,作为A值。

    那里必要注意的是MinFilter算法的即刻实现,提供一篇诗歌供有须求的对象学习:STREAMING
MAXIMUM-MINIMUM FILTER USING NO MORE THAN THREE COMPARISONS PER
ELEMENT
 。这一个算法的时日复杂度是O(1)的。

      暗通道先验的说理建议:

       (6)
按式(22)进行无雾图像的死灰复燃。

   公海赌船网址 155   公海赌船网址 156    

    
上述推论中都是一旦环球达气光A值时已知的,在实际中,我们得以依靠暗通道图来从有雾图像中收获该值。具体步骤如下:

     实际生活中程导弹致暗原色中低通道值首要有多少个成分:a)汽车、建筑物和城市中玻璃窗户的阴影,大概是树叶、树与岩石等当然风景的黑影;b)色彩鲜艳的物体或外部,在RubiconGB的三个通道中多少通道的值很低(比如银白的草地/树/植物,墨蓝或淡褐的繁花/叶子,或许蓝绿的水面);c)颜色较暗的实体可能表面,例如灰暗色的树枝和石块。综上说述,自然山水中随地都以影子大概彩色,这个景点的图像的暗原色总是很惨淡的。

   公海赌船网址 157   
公海赌船网址 158  
公海赌船网址 159

                              
 公海赌船网址 160

                                              
公海赌船网址 161

     本文首要上是对《Single Image Haze
Removal Using Dark Channel
Prior》的翻译、整理、及一些解释。倘诺您的英文水准好,建议看原稿大概来的更爽些。

     在处理速度上,比
matalb的快了很多倍,在I3的台式机电脑上,一副1024*768的图像去雾时间大致在150ms内(以灰度图为导向图)。

                             
原图                                                
去雾效果图                                                     
透射率图

  笔者的建议是窗口大小在11-51里面,即半径在5-25里面。

原文:http://blog.csdn.net/laviewpbt/article/details/11555877

    公海赌船网址 162

    那正是透射率公海赌船网址 163的预估值。

   
上式中,J是待求的无雾的图像,依照前述的暗原色先验理论有:

     
作者对相互滤波算法这也做了尝试,发现那么些的效果也还不错,就是速度慢了诸多,双边滤波的全快速总括法其实快不起来的,所以那些的实用性不高,作者选取了有的图像做比较:

  后记:稍微有看了几篇去雾的小说,基本上都以围绕着获得透视率图做小说,比如一些篇章讲用联合双边滤波格局取得迷你的透射率,从自己个人浅薄的认识中,作者以为去雾已大多跳不出暗原色这一个规模了。

  倘使你细心的剖析了初稿的细路,加上适量的参阅,编码其实并不是很费力。

      
联合双边滤波器中的算法是参考了OpenCv中相关函数写的。

    公海赌船网址 164

     
关于guidedfilter中的半径r值,因为在前头进行小小的值后暗通道的图像成一块一块的,为了使透射率图特别精细,建议那些r的取值十分的大于进行小小的值滤波的半径的4倍,如下图所示:

                                                 
  公海赌船网址 165

                                   公海赌船网址 166 

  后记:稍微有看了几篇去雾的文章,基本上都以围绕着获得透视率图做小说,比如一些稿子讲用联合双边滤波格局赢得迷你的透射率,从自个儿个人浅薄的认识中,笔者以为去雾已基本上跳不出暗原色那些范围了。

  公海赌船网址 167  
公海赌船网址 168

 
 
 可处理摄像的以身作则:录像去雾效果

  Since the scene radiance is usually
not as bright as the atmospheric light, the image after haze removal
looks dim. So we increase the exposure of J(x) for
display.

   
上式中,J是待求的无雾的图像,依据前述的暗原色先验理论有:

  第②:窗口的大大小小。这些对结果来说是个重点的参数,窗口越大,其富含暗通道的票房价值越大,暗通道也就越黑。我们不去从理论角度分析,从实行的效率来看,就像窗口越大,去雾的效能越不明显,如下图所示:

 
 个中,I(X)便是大家未来已经局地图像(待去雾的图像),J(x)是大家要还原的无雾的图像,A是环球大气光成分,
t(x)为透射率。未来的已知条件正是I(X),要求目的值J(x),明显,那是个有好多解的方程,由此,就必要部分先验了。

     那里说爱他美些,原始诗歌中的A最终是取原始像素中的某3个点的像素,作者实在是取的符合条件的全体点的平均值作为A的值,小编这么做是因为,假若是取1个点,则各通道的A值很有只怕全体很类似255,那样的话会招致处理后的图像偏色和产出大批量色素斑点。原文作者说那个算法对天空部分不需特备处理,笔者骨子里发现该算法对有天空的图像的效能一般都不佳。天空会出现显然的联网区域。作为化解方案,笔者增添了3个参数,最大整个世界大气光值,当总结的值超过该值时,则就取该值。
 

  上述暗通道图像均选用的窗口大小为15*15,即最小值滤波的半径为7像素。

     当投射图t
的值十分的小时,会导致J的值偏大,从而使淂图像全部向白场过度,由此一般可设置一阈值T0,当t值小于T0时,令t=T0,本文中装有效用图均以T0=0.1为正式计量。

      在原文中,有那般一段话:

     
要博取特别精致的透射率图,何学士在篇章中建议通晓soft
matting方法,能收获那些细致的结果。但是她的一个沉重的老毛病就是速度特慢,不选取于实际运用。在二零一一年,何硕士又除了一片杂文,在这之中提到了导向滤波的方法来取得较好的透射率图。该方法的根本进度集中于不难的四方模糊,而方框模糊有多重和半径无关的长足算法。由此,算法的实用性特强,关于那一个导向滤波算法大家在何大学生的网站能够协调去研习下,除了在去雾方面外,还怀有其他多位置的利用,那有的本文不多述。

  公海赌船网址 169  公海赌船网址 170  公海赌船网址 171

      在原文中,有那般一段话:

 

  首先,在处理器视觉和总结机图形中,下述方程所讲述的雾图形成模型被大规模运用:

   
笔者分别用VB6和C#做了个程序,八个程序都早已经过各自的语言格局展开了优化,算法部分编码是均等的,C#运作速度大概是VB6的1.8倍。

                                                  
公海赌船网址 172

    三:编码的步骤

          (a) 
r=最小值滤波半径的2倍
                       (b) r=最小值滤波半径的8倍

   公海赌船网址 173   公海赌船网址 174

  公海赌船网址 175  
 公海赌船网址 176

                                    (a)
原始图像                                  
(b)    ω=0.5         

      暗通道先验的答辩提议:

     
大家抛开随想中罗列的那2个例子,自身从网上找几幅没有雾的风景照,看看结果如下:

    那就是透射率公海赌船网址 177的预估值。

                      
(c)使用灰度图为导向图获得的透射率图                      
    (d)使用奥迪Q5GB图为导向图获得的透射率图

     
有了这些先验,接着就要求开始展览局地数学方面包车型大巴推理来最终解决难点。

                     
一些无雾的图纸                                                                               
  其暗通道

     
2)按文中所讲述的算法自动获取全世界大气光的值。

     当投射图t
的值很时辰,会招致J的值偏大,从而使淂图像全体向白场过度,由此一般可设置一阈值T0,当t值小于T0时,令t=T0,本文中具备成效图均以T0=0.1为行业内部测算。

     
由上述几幅图像,能够一目理解的来看暗通道先验理论的普遍性。在笔者的舆论中,计算了5000多副图像的特征,也都基本符合这一个先验,由此,大家得以认为实际一条定律。

              (c)
窗口大小=21                         (d)
窗口大小=101 

   
把式(10)带入式(8)中,得到:

        5)按照《Guided Image
Filtering
》散文中的公式(5)、(6)、(8)编码计算获得迷你的透射率图。

    壹 、诗歌思想的简练描述 

  第叁:窗口的尺寸。那些对结果来说是个重点的参数,窗口越大,其含有暗通道的概率越大,暗通道也就越黑。大家不去从理论角度解析,从执行的意义来看,就像窗口越大,去雾的法力越不明朗,如下图所示:

     本文首要上是对《Single Image Haze
Removal Using Dark Channel
Prior》的翻译、整理、及片段解释。假若你的英文水准好,提议看原稿可能来的更爽些。

  Since the scene radiance is usually not
as bright as the atmospheric light, the image after haze removal looks
dim. So we increase the exposure of J(x) for
display.

                                       (c)   
ω=0.8                                                                  
    (d)    ω=1 

   公海赌船网址 178    公海赌船网址 179

       上海体育场地能够很明显的来看联合双边滤波的透射率图没有导向滤波的小巧,但比原来的粗疏的透射率图依旧好广大,过渡相当细腻,由此,也能获取不错的视觉去雾效果。

           (e)灰度图为导向图对应的去雾效果    
                       
  (f)RubiconGB图导向图对应的去雾效果

   
在现实生活中,即使是晴朗白云,空气中也存在着部分微粒,因而,看远处的实体还可以感觉到雾的震慑,别的,雾的存在令人类感到景深的留存,由此,有必不可少在去雾的时候保留一定水准的雾,那能够经过在式(11)中引入二个在[0,1]
之间的因数,则式(11)校勘为:

     
2)按文中所描述的算法自动获得全世界大气光的值。

                                 
公海赌船网址 180

     
要获得越来越精细的透射率图,何博士在小说中提出掌握soft
matting方法,能获取尤其细致的结果。然则她的3个致命的缺点正是速度特慢,不选拔于实际行使。在二〇一一年,何博士又除了一片杂文,个中涉及了导向滤波的点子来赢得较好的透射率图。该措施的严重性进程集中于简单的正方模糊,而方框模糊有多重和半径非亲非故的急忙算法。由此,算法的实用性特强,关于那些导向滤波算法我们在何大学生的网站能够团结去研习下,除了在去雾方面外,还有着别样多地方的选用,那部分本文不多述。

     
作者对互相滤波算法那也做了试验,发现那些的功效也可以接受,就是速度慢了累累,双边滤波的不慢算法其实快不起来的,所以那么些的实用性不高,小编选拔了有的图像做相比较:

       (6)
按式(22)举行无雾图像的东山再起。

          2)
在那几个职责中,在原始有雾图像I中搜寻对应的具有最高亮度的点的值,作为A值。

     公海赌船网址 181    公海赌船网址 182

   
 在图像去雾那么些世界,大约平昔不人不明了《Single Image Haze Removal Using
Dark Channel
Prior
》那篇文章,该文是2010年CVP奥德赛最佳散文。小编何凯明博士,二〇〇五年哈工业余大学学东军事和政院学毕业,二〇一三年香岛中大硕士结束学业,可谓是功力深厚,惊叹于国内有的所谓大学生的水准,何这样的博士才足以真正称之为Doctor。

     
参数eps的取值也具有青睐,他重点是为了预防计算中除以0的荒谬以及为了使得一些总计结果未必过大,一般提出取值0.001要么更小。

  公海赌船网址 183    公海赌船网址 184

     公海赌船网址 185  
 公海赌船网址 186

                                    (a)
原图                                                              
(b)   联合双边滤波去雾图

    
最开始接触何的那篇随想是在二〇一一年,说其实的百般时候,只是随便浏览了下,看到里边的soft
matting进程比较复杂,并且实施进程不快,就从不怎么大的趣味。近年来又奇迹拾起,仔细研读,觉得故事集的推理步骤特别明晰,讲解很到位。恰好适逢浏览到其此外一篇小说《Guided
Image
Filtering
》 ,在那之中涉嫌了能够用导向滤波来取代soft
matting的长河,且速度异常的快,由此,笔者对去雾的兴趣算法又大大提升了。
 

      能够见到,当r相比小的时候,在透射率图中着力看不到什么细节新闻,因而复苏处的图像边缘处不明明。

                               
  公海赌船网址 187

      注意到第1幅图的原图三个字的方圆鲜明有一块不谐和的地点,而第2图顶部水平方向如同有一块没有进展去雾处理,这几个都以出于大家的透射率图过于粗糙了。

     公海赌船网址 188    公海赌船网址 189

     以往I,A,t都已经求得了,由此,完全能够拓展J的猜测。

  
  公海赌船网址 190    公海赌船网址 191

                        (c)
导向滤波获得透射率图                                                  
(d)联合双边滤波透射率图(Sigmad=Sigma普拉多=100)

     
关于guidedfilter中的半径r值,因为在面前进行小小的值后暗通道的图像成一块一块的,为了使透射率图特别精致,提议那几个r的取值不低于进行小小的值滤波的半径的4倍,如下图所示:

 5、算法的局限性

 

     
暗原色先验是一种计算的结果,是对大气露天无雾照片(outdoor haze-free
images)的总结结果,如若目标场景内在的就和大气光类似,比如雪地、碳黑背景墙、大海等,则由于前提条件就不科学,由此一般不只怕取得知足的作用,而对此一般的山水照片以此算法能处理的科学。

    

 

    二〇一一.8.23 后记补充校勘:

     在继承对该算法的关注中,发现本身在头里做出了三个荒唐的论断,就是关于式(11)中/A的操作。笔者在眼下说这些除法会引起局地题目,由此,去除了这一步。可是后来的实践证明正是有了这一步,对于相比度低的图像才可以赢得很好的去雾高相比较度图。

    前边说的/A操作恐怕会导致t的值小于0,那种景况就能够把t的值直接设置为0来化解。

   
还有二个作业就是式(11)严酷的来说是要对原有图像的各样通道进行归一化后,再取每一种通道卡宴/G/B值的蝇头值得到中间图,然后对这么些在那之中图进行点名半径的小不点儿值滤波后,通过11式收获粗糙的透射率图,那么如此就须求多不少总括,笔者在其实中发觉只要直接用后面的暗通道图/A进行操作,两者的功力差异不强烈,因而,可用那种便利的方法。

公海赌船网址 192  
公海赌船网址 193

 上海体育场面是一副经典的测试图,尽管获得了相比好的机能,可是就像是马路那一块的机能不如部分其旁人公开的果实那么好。

公海赌船网址 194  
公海赌船网址 195

    
那也是一副比较广泛的测试图,该图也是紧用去雾获得结果,未做其余的后甩卖,同CSDN3个的案例库:图像去雾的算法钻探中的效果相比较,在整幅图像的比较和和协调性上都要好二个水平。

    
再如下图,也比CSDN那几个案例库中的效果要好过多。

 
公海赌船网址 196  
公海赌船网址 197

     还有:

公海赌船网址 198 
公海赌船网址 199

公海赌船网址 200  公海赌船网址 201

   

   计算:小编对这种去雾算法的成效还是很乐意的, 效果和进程都还相比确切。

   附属类小部件的测试程序已经联合更新。

   二零一二.10,10 后记补充:

    一贯听新闻说C的效能很高,于是用C达成了该算法,并且编写制定了一个可供其余语言调用的dll文件,然后对小小值滤波算法又实行了不相同通常的优化,算法速度有了一点都不小的滋长,特别是在用VS二零零六时,编写C的代码能够勾选下图中的SSE选项和火速(fp:fast),程序会调用SSE一些函数,完成指令级其他交互。而那几个C#的编写翻译器是心有余而力不足落到实处的。

公海赌船网址 202

    
同样的算法,绝对于原始的C#次第,程序的快慢能加强一倍左右,对于800*600的图像,在作者的I3的CPU上平均能能落得20fps的速度(只占用了五个核的CPU资源),由此得以适用于不高于该限制内的实时图像处理。

    
同样笔者扩大了三个里面可调的参数供咱们测试。

公海赌船网址 203

     相应的DLL函数申明如下:

     c风格:

void HazeRemovalUseDarkChannelPrior(unsigned char * Src,unsigned char * Dest,int Width,int Height,int Stride, int Radius ,int GuideRadius, int MaxAtom, float Omega,float Epsilon,float T0 )

    c#调用:

 [DllImport("HazeRemoval.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Unicode, ExactSpelling = true)]
  private static extern void HazeRemovalUseDarkChannelPrior(byte* Src, byte* Dest, int Width, int Height, int Stride, int Radius,int GuideRadius, int MaxAtom, float Omega, float Epsilon, float T0);

    VB6调用:

Private Declare Sub HazeRemovalUseDarkChannelPrior Lib "HazeRemoval.dll" (ByVal Src As Long, ByVal dest As Long, ByVal Width As Long, ByVal Height As Long, ByVal Stride As Long, ByVal Radius As Long, ByVal GuideRadius As Long, ByVal MaxAtom As Long, ByVal Omega As Single, ByVal Epsilon As Single, ByVal T0 As Single)

     

    
调用实例源代码下载:http://files.cnblogs.com/Imageshop/HazeRemovalTest.rar

 2013.11,22修正: 

  通过联合双边滤波求透射率图的效能上边的不科学的,进最新的商量结果评释,双边滤波确实也能获得迷你的投射图,比如依旧那方面包车型地铁测试图像,不相同的SigmaS和Sigma景逸SUV下得到透射率效果如下:

  
公海赌船网址 204   
 公海赌船网址 205

          SigmaS=50,SigmaR=30                          
SigmaS=100,SigmaR=30

 

 2015.1.12
重庆大学立异(可达成实时效力):

   
 何的算法效果以及常见的实用性都比其余的去雾算法要好,而重庆大学的难点正是其速度照旧不够快,有着太多的浮点总结。鉴于此,小编也反复试着对代码实行深层次的优化,包罗SSE处理、并行运转等,但由于算法本身的相继执行,无法全程并行,偶尔二个小函数能够相互,但鉴于其自小编执行就专门快,比如不要5ms,你去用并行算法恐怕源消耗时还会大片段。因而,一向尚未什么大的向上,对于一副1024*768的彩图进行去雾必要90ms,这一定不可能满足须要。

   
 近来,在构思,既然暗通道去雾的透射率图比任何的算法都来的精工细作,假如合适的狂跌一点点其精度,其去雾的功力理论上应当不会有太大的界别,于是自身想开了一种方法,即求取透射率的时候不是对原图进行求取,而是先对原图举行下采集样品,比如收缩为原图的四分一,计算出小图的透射率,之后在经过插值的法门的获取原图大致的透射率,则应该也得以赢得效益。经超过实际践,那种措施大大的提升了实行进度,而且效能和原来的方案基本一致,对于1024*768的图像差不多只须求(I3CPU)30ms了,假若进一步取九分之一的缩放,则只须求大致20ms,完全能够满意工业实时性要求高的场所。

   
当然,假如你的紧缩周详不是专门大的话,比如减少为原本的0.四分寸,只怕四回缩放所用的耗费时间还抵消了计算小图的透射率图所换成的致富,由此必须合理合法选拔那几个下采集样品率。

   
要达成那样的快慢,当然照旧必要很高的优化技术的,那些事物还是具备保存比较好。 

   
小编做了2个顺序,集成了本博客中6种图像去雾的算法: 图像去雾综合版本

公海赌船网址 206

     

   
用暗通道的算法对一段摄像展开了处理,大家能够在此地看到效果:http://video.sina.com.cn/v/b/124538950-1254492273.html

 
  公海赌船网址 207

****************************作者:
laviewpbt   时间: 二零一二.8.23    联系QQ:  33184777
 转发请保留本行音讯********************

 

 

 写博不易,土豪请打赏,屌丝一分也是爱(非强制需要):

 

   公海赌船网址 208   公海赌船网址 209

      式中Jc意味着彩色图像的各种通道 ,Ω(x)表示以像素X为主干的2个窗口。 

     意思便是说直接去雾后的图像会比原来的暗,因而在处理完后须要进行自然的揭露增强,但小编没有认证其是什么升高的,
由此,这里的图和她杂文的职能有所差异时符合规律的。一般在去雾处理后再用自动色剂之类的算法增强下会得到比较满足的结果,如下图:

   公海赌船网址 210  
公海赌船网址 211

  将式(1)稍作处理,变形为下式:

  公海赌船网址 212  
公海赌船网址 213 

      注意到第③幅图的原图多少个字的四周分明有一块不和谐的地方,而第叁图顶部水平方向就像是有一块没有进行去雾处理,这么些都以出于咱们的透射率图过于粗糙了。

      网络上有一些比较好的暗原色先验去雾的matlab代码:比如和本文基本对应的matlab财富:http://files.cnblogs.com/Imageshop/cvpr09defog%28matlab%29.rar

     公海赌船网址 214    公海赌船网址 215

 
 个中,I(X)正是大家未来早已有个别图像(待去雾的图像),J(x)是大家要过来的无雾的图像,A是中外大气光成分,
t(x)为透射率。今后的已知条件正是I(X),必要目的值J(x),鲜明,那是个有众多解的方程,由此,就须要有的先验了。

  function q = guidedfilter(I, p, r, eps)
  %   GUIDEDFILTER   O(1) time implementation of guided filter.
  %
  %   - guidance image: I (should be a gray-scale/single channel image)
  %   - filtering input image: p (should be a gray-scale/single channel image)
  %   - local window radius: r
  %   - regularization parameter: eps

  [hei, wid] = size(I);
  N = boxfilter(ones(hei, wid), r); % the size of each local patch; N=(2r+1)^2 except for boundary pixels.

  % imwrite(uint8(N), 'N.jpg');
  % figure,imshow(N,[]),title('N');
  

  mean_I = boxfilter(I, r) ./ N;
  mean_p = boxfilter(p, r) ./ N;
  mean_Ip = boxfilter(I.*p, r) ./ N;
  cov_Ip = mean_Ip - mean_I .* mean_p; % this is the covariance of (I, p) in each local patch.

  mean_II = boxfilter(I.*I, r) ./ N;
  var_I = mean_II - mean_I .* mean_I;

  a = cov_Ip ./ (var_I + eps); % Eqn. (5) in the paper;
  b = mean_p - a .* mean_I; % Eqn. (6) in the paper;

  mean_a = boxfilter(a, r) ./ N;
  mean_b = boxfilter(b, r) ./ N;

  q = mean_a .* I + mean_b; % Eqn. (8) in the paper;
  end

          一些有雾的图片                                                                              
   其暗通道

 四 、其余一些去雾效果图

                              (a)
原始图像                            (b)
窗口大小=11

相关文章