或者以天部位多是未称暗通道去雾先验这个前决条件的。视频去雾效果。

  即以HSV空间,对V分量进行CLAHE增强,然后以转换到RGB空间,这种措施对有些图像确实来坏引人注目的滋长力量,但是发生几图或而会加强噪音,因此还是因实际情况选择性的拍卖吧。

     因此,最终之过来公式如下:

   
 个人觉得,除了第一步、第二步、第四步有必不可少他,其他的不欲如此处理。特别是第五步的拍卖会招天空部位的漏检。比如下面的流水线示意图的原图,如果就此上述方法必然会招致左上角处小有天空完全不见不见。另外一个问题不怕,联通区域的乘除还是比较耗时的。

  我之提议是窗口大小在11-51中,即半径在5-25内。

            稍作去噪                                 初步天空识别                           
          进行羽化

     这里说明一些,原始论文中的A最终是取原始像素中之某部一个沾的像素,我骨子里是抱的符合条件的所有点的平均值作为A的价,我如此做是为,如果是得到一个点,则诸通道的A值大有或所有要命相近255,这样的话会导致处理后的图像偏色和产出大量色斑。原文作者说此算法对空部分未待特备处理,我其实发现该算法对产生天空的图像的效能一般都未好。天空会并发显著的过渡区域。作为化解方案,我多了一个参数,最老环球大气光值,当计算的价值超出该值时,则就是落该值。
 

 
 

     
参数eps的取值也有青睐,他要是为以防计算中除去以0的谬误以及以令一些计算结果未必过怪,一般提议取值0.001要另行小。

  对当时几独步骤我进行了粗糙的点评吧。

     

     
在藏的几乎种植去雾算法中,包括何凯明的暗通道去雾、Tarel的基于中值滤波的去雾以及部分基于其他边缘保留的法门中,都来一个普遍存在的题材:即对天空部分处理的不得了,天空往往会油然而生比较生的面积的纹路及分块现象。究其关键缘由,还是以天部位多是免相符暗通道去雾先验这个前决条件的。目前,针对当时无异题目,我找找到之要害发生以下几篇稿子展开了拍卖:

      
在大部分非天空的一对区域里,某有像素总会发生最少一个颜色通道有特别没有之价值。换言之,该区域才强度的无比小值是个坏有点的一再。

      第一首文章增加了一个可控参数K,
用来调节每个像素处的透射率:

于探望有有雾的希冀的暗通道:

   
 5、对界别后底希冀进行高斯羽化处理(可选的)。

  首先,在电脑视觉与电脑图形中,下述方程所描述的雾图形成模型被周边运用:

  有以上比较可见,在维护了空的时候,和天空交接的地方的去雾程度为适合的所有弱化。

       上图可以很醒目的观望联合双边滤波的透射率图无导向滤波的细,但比原来之粗疏的透射率图或吓广大,过渡很细腻,因此,也会获取是的视觉去雾效果。

   
 

      暗通道先验的争辩指出:

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

      还有某些即是,上述计算需要在[0,1]界定外展开,也就是说导向图和预估的透射率图都须由[0,255]先映射到[0,1]在进行测算。

                                                  

     
当|I(x)-A|<k时,认为此区域或者是圆,重新计算透射率(增加透射率),|I(x)-A|>k处,则以为是入暗通道先验的区域,透射率不转移。

                             
原图                                                
去雾效果图                                                     
透射率图

     
第六步是以防范有漏检点,把在天上区域广阔的部分如从在越拓展识别,符合条件的尽管加以至天区域被。

  
   

****************************笔者:
laviewpbt   时间: 2014.8.12    联系QQ:  33184777
转载请保留本行信息**********************

      
     
 

   
    

     在处理速度上,比
matalb的不久了成百上千倍,在I3的笔记本电脑上,一可1024*768底图像去雾时间约于150ms内(以灰度图为导向图)。

  一切开黑,因此,完全无影响结果。

 五、算法的局限性

 

     
暗原色先验是同等种统计的结果,是对大气户外无雾照片(outdoor haze-free
images)的统计结果,如果目标场景内在的就是与大气光类似,比如雪地、白色背景墙、大海等,则是因为前提条件就非正确,因此一般无法获取满意的效用,而对此一般的景照以此算法能处理的不利。

    

 

    2013.8.23 后记补充修正:

     在持续对该算法的关爱被,发现自己在前边做出了一个荒唐的论断,就是关于式(11)中/A的操作。我于头里说此除法会引起一些题材,因此,去除了就无异步。但是后来底实践证明正是有了及时同步,对于对比度低的图像才堪抱好好之去雾高对比度图。

    前面说的/A操作可能会见导致t的值小于0,这种情形就可把t的值直接装也0来化解。

   
还有一个事务就是式(11)严格的吧是要是指向原有图像的每个通道进行归一化后,再取每个通道R/G/B值的最好小价得到中图,然后对斯当中图进行点名半径的顶小值滤波后,通过11式到手粗糙的透射率图,那么这么就是需多浩大乘除,我于实质上中发觉而一直用前的暗通道图/A进行操作,两者的法力区别不肯定,因此,可用这种便当的法。

  

 上图是同入经典的测试图,虽然获得了于好的功效,不过像马路那无异片的效力不如部分其他人公开之收获那么好。

  

    
这也是千篇一律副比较大的测试图,该图也是紧用去雾获得结果,未举行其他的后处理,同CSDN一个底案例库:图像去雾的算法研究遭之职能比,在整幅图像的对立统一与同协调性及都设好一个程度。

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

 
  

     还有:

 

  

   

   总结:我本着这种去雾算法的法力或老惬意的, 效果与速度还还比适度。

   附件的测试程序都一同创新。

   2013.10,10 后记补充:

    一直听说C的频率特别高,于是用C实现了拖欠算法,并且编制了一个可是供应其他语言调用的dll文件,然后对极端小值滤波算法又进行了超常规之优化,算法速度发出了非常可怜的提高,特别是在用VS2010时,编写C的代码可以勾选下图被之SSE选项和速(fp:fast),程序会调用SSE一些函数,实现指令级别之互。而这些C#的编译器是无力回天实现之。

    
同样的算法,相对于原始的C#先后,程序的进度能够提高一倍增左右,对于800*600的图像,在我之I3的CPU上平均能能达到20fps底速(只占了一个审核的CPU资源),因此得以适用于不浮该限制外之实时图像处理。

    
同样我长了3独里头可调的参数供大家测试。

     相应的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和SigmaR下得透射率效果如下:

  
   
 

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

 

 2014.1.12
重大创新(可实现实时效果):

   
 何的算法效果及周边的实用性还比任何的去雾算法要好,而着重的题材不怕是彼速还是未足够快,有着极其多之浮点计算。鉴于此,作者吧一再碰着对代码进行充分层次之优化,包括SSE处理、并行运行相当,但出于算法本身的依次执行,无法全程并行,偶尔一个微函数可以彼此,但由那个自我执行就特意快,比如不要5ms,你错过用并行算法可能耗时还见面充分一些。因此,一直未曾呀坏的上进,对于同契合1024*768之彩图进行去雾需要90ms,这早晚无法满足要求。

   
 最近,在思想,既然暗通道去雾的透射率图于其余的算法都来之精工细作,如果适龄的跌一点点那个精度,其去雾的效力理论及理应无会见时有发生极致可怜的别,于是自己想到了一致栽艺术,即求取透射率的时不是对准原图进行求取,而是先对原图进行下采样,比如缩小为原图的1/4,计算出小图的透射率,之后在通过插值的不二法门的得到原图大概的透射率,则当吗得得到力量。经过实践,这种办法大大的增高了实施进度,而且作用及原之方案基本一致,对于1024*768之图像大约只待(I3CPU)30ms了,如果越来越获取1/9的缩放,则单纯待约20ms,完全可满足工业实时性要求强之场所。

   
当然,如果您的紧缩系数不是特别可怜之言语,比如缩小为原的0.5分寸,可能有限不行缩放所用的耗时尚抵了匡小图的透射率图所变来之得利,因此须合理选择这下采样率。

   
要落实如此的快慢,当然还是待充分高之优化技术的,这些事物还是有着保留比较好。 

   
我开了一个次,集成了本博客中6种植图像去雾的算法: 图像去雾综合版

     

   
用暗通道的算法对同截视频进行了处理,大家可以当此处看到效果:http://video.sina.com.cn/v/b/124538950-1254492273.html

 
  

****************************作者:
laviewpbt   时间: 2013.8.23    联系QQ:  33184777
 转载请保留本行信息********************

 

 

 写博是,土豪请打赏,屌丝一区划也是善(非强制要求):

 

 

  
这里可以一直用原始之图像做导向图,当然为可就此该灰度图,但是用RGB导向图于产一样步之算计中见面占比较好之时间。

   
    

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

   
 1、将图像转换为灰度:这里呢保存更多之边缘信息,可以设想动用具有对比度保留功能或显著性保留功能的一部分去色算法。

   
 在图像去雾是小圈子,几乎没有人不懂得《Single Image Haze Removal Using
Dark Channel
Prior》这篇稿子,该文是2009年CVPR最佳论文。作者何凯明博士,2007年清华大学毕业,2011年香港中文大学博士毕业,可谓是功夫深厚,感叹于国内有的所谓博士之程度,何这样的博士才方可真正叫Doctor。

     
第三步对起来的界限进行下小范围的扩展。

    

 
 以论文的终极,作者吧关系了去雾的图像显示比较暗,为夫,做了一下拍卖:

     本文主要及是本着《Single Image Haze
Removal Using Dark Channel
Prior》的翻译、整理、及一些解释。如果你的英文水准好,建议看原稿可能来的重新爽些。

     
上面的做法是比较合理之,因为一般情形下殊气光A的取值和圆部分应该是十分接近的,而那些符合暗通道的地方虽然离家天空,关于这算法的功能,我当自家的《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.

  

          2)
在这些岗位被,在原有雾图像I中寻觅对应之具备高亮度的点的值,作为A值。

     

        4)计算导向滤波图。

   
    

                      
(c)使用灰度图也导向图取的透射率图                      
    (d)使用RGB图为导向图取的透射率图

      2、Single image dehazing Algorithms
based on sky region segmentation, 2013  王广义
 哈尔滨工业大学(这篇稿子似乎要到该校里才会下载);

         
  使用旧之预估透射率图                               
 使用导向滤波后的透射率图

     
还有一样步,论文也干了,就是这些校正的步调都必于refine阶段前做,简单的说,就是亟需以进展导向滤波前开。这样使导向滤波的平滑功能,可以以天空和非天空分界部位的无平坦现象自然水平上弥补掉);

   
在现实生活中,即使是晴白云,空气被呢在在有微粒,因此,看天的体或能感觉到雾的震慑,另外,雾的存在被人类感到景深的在,因此,有必要当去雾的时节保留得水准的雾,这好透过在式(11)中引入一个每当[0,1]
之间的因数,则式(11)修正为:

         
 

                              
 

 
   

    这里要留意的是MinFilter算法的敏捷实现,提供相同篇论文供有需要之冤家学习:STREAMING
MAXIMUM-MINIMUM FILTER USING NO MORE THAN THREE COMPARISONS PER
ELEMENT 。这个算法的日子复杂度是O(1)的。

     
作为对照,我们受有直接用何的法实现之职能以及用天空识别术处理的比效果:

                                                        

     
第一步我以为绝有价,直接以原始数据判断天空不是死好做,作者考察到天上部分完全来说是于平缓的,也就是是附近像素之间转移不十分,因此用梯度来代表虽还便于辨认,梯度值更小则表明图像那无异片越光。

    这虽是透射率的预估值。

  为了提高速度,也得采用自在何那篇论文的分析的博文中之法门,进行下采样处理,然后于上采样。

      在原文中,有这样同样段落话:

     
第二步则设定一个阈值来初步判断某处是否属于天空,这个阈值作者取的凡0.02,量化到unsigned
char范围虽然着力对应5。

        

 

       

   

  如果您细心的分析了初稿的细路,加上适量的参照,编码其实并无是那个不方便。

     我之做法是: 

      可以看看,当r比较粗之时段,在透射率图被基本看不到什么细节信息,因此恢复处的图像边缘处不明白。

   
 2、求灰度图像的梯度信息(其实就足以用常用的一些边缘检测算子实现);

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

     
得到天空区域后,原文作者用天空区域的透射率图统一之安成了一个固定值,我以为这么不好,还是应当因具体的价值做适当的修正。
在本人上述的操作着,得到的天去区域是同等合蒙版图,某个点并不一定是一点一滴属于天空要全无属。因此,我不怕可因这值来+
暗通道求得的价值进行一下Alpha混合,如下所示:

     因此,可推导出:

              原图                                    灰度图                                  梯度信息

       以RGB图为导向图的计着,涉及到3*3部分矩阵求逆的进程,如果因此非matlab语言写,可以先行乘matlab的符号计算功能,以及中的符号计算命令simple,把计算结果算出来,然后还还其他高级语言中实现。

 

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

  其中SkyPresrve就接近于论文的永恒透射率值,是用户指定的,在上式中,若Sky[255],即完全属于天空,则改点的透射率即为固定值,若Sky[Y]=0,即完全不属天空,计算式的价值不移,不影响健康去雾。

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

 

     

  

     
我对两者滤波算法那呢开了尝试,发现是的职能啊还行,就是速度缓慢了森,双边滤波的高效算法其实抢不起的,所以这个的实用性不强,我选了一部分图像做比:

 
 
  

    
到就无异于步,我们便足以展开无雾图像的复了。由式(1)可知:  J = ( I –
A)/t + A  

     
另外关于大气光值A的计算,论文提出了盖博的天幕部位的像素的平均值作为A,这也是雅合情之,但是于骨子里处理时,针对小完全无空部分的图像,可能检测及之皇上区域很粗(明显属于误检,但是程序不亮堂的),这个上因之也大气光值,也是休客观之。为这,我的处理方式先计算天空部位计算的A值,然后于检测天空像素占整个图像的百分比,如果比例小于5%,则要为何凯明那种计算A的法展开。

    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);

1、 精益求精之冲暗原色先验的图像去雾算法
作者: 蒋建国\侯天峰\齐美彬  
合肥工业大学 2011。

     
 

     
第五步取符合第四步条件的最好酷之联通区域作为识别的老天区域。

       (6)
按式(22)进行任雾图像的复原。

     
 第二篇稿子的思路则是进行天空分割。对私分后的鲜有些透射率做不同之拍卖,那么这的最主要就在皇上特征的取。作者原文是经过以下几独步骤来贯彻之。

  
       

   
    

    三:编码的步骤

     
作为对比,我们当被有几帧图的空的识别功能:

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

     
第四步对细分后底觊觎的每个联通区域统计其原图像于对诺位置的像素的平均亮度,如果过量阈值T则保留,T这里作者取0.81,对诺整数205横。

      
  
 

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

     意思就是说直接去雾后底图像会比原的糊涂,因此在处理终结后待开展定之曝光增强,但作者没有证实其是怎么加强的,
因此,这里的希冀以及外论文的功力有所不同时正常的。一般以去雾处理后再也用自动色剂之类的算法增强下会获得比较满意的结果,如下图:

 
   

   
    

   
 4、按照设定梯度阈值和亮度阈值对梯度信息进行区分;

   
式(5)的意义用代码表达也不行粗略,首先请求来每个像素RGB分量中之尽小价,存入相同顺应和原有图像大小相同的灰度图中,然后再次指向这幅灰度图进行最小值滤波,滤波的半径由窗口大小决定,一般有WindowSize
= 2 * Radius + 1;          

   
 

    网络达到起这算法的
matlab代码可下载的,这里贴有代码:

     
如果K取值为0,则一定给老之透射率公式。

    
上述推论中都是要全球及气光A值经常就掌握之,在实质上被,我们得以凭借暗通道图来起生雾图像被拿走该值。具体步骤如下:

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

    
 

   
 3、对梯度信息进行适度的去噪和滤波;

 

  示例程序:http://files.cnblogs.com/Imageshop/HazeRemovalWithSkyRecognition.rar

         
原图                
去雾后              +自动色阶

     
  

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

 对于那些基本未存天空之希冀,检测的结果如下:

     
关于guidedfilter中的半径r值,因为以面前进行极端小价后迷迷糊糊通道的图像成为一片一样片的,为了使透射率图更加精细,建议这r的取值不小于进行极端小值滤波的半径的4倍,如下图所示:

     
第七步是有的于整体包含在穹幕蒙还无给看是皇上之小区域上加到天蒙。

                                 

      注意到第一帧图的原图两单字的周围明显有同等块不和谐的地方,而第二图顶部水平方向似乎发生同块没有进展去雾处理,这些还是由我们的透射率图过于粗糙了。

                                                   

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

   
首先假要于各个一个窗口外透射率t(x)为常数,定义他啊,并且A值已经给定,然后对式(7)两限求少潮极小值运算,得到下式:

     当投射图t
的值好小时,会导致J的价偏老,从而使淂图像整体向白场过度,因此一般可设置同样阈值T0,当t值小于T0时,令t=T0,本文中具备力量图俱以T0=0.1啊规范计算。

  后记:稍微有看了几乎首去雾的章,基本上都是环绕在收获透视率图做文章,比如有的篇章讲用联合双边滤波方式得到迷你的透射率,从自身个人浅薄的认被,我看去雾已大多跳不生暗原色这个层面了。

      上图备受最后一合乎图己连连召开了点儿浅去雾的处理。 

     现在I,A,t都已经求得了,因此,完全可以拓展J的计量。

     
可处理视频的以身作则:视频去雾效果

     

                     
一些无雾的图纸                                                                               
  其暗通道

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

                                    

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

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

   

 四、其他组成部分失雾效果图

    
   

     
我们扔开论文中历数的那些例子,自己从网上寻找几帧没有雾的风景照,看看结果如下:

  第一:窗口的轻重。这个针对结果吧是只根本之参数,窗口更加老,其涵盖暗通道的概率越充分,暗通道也就愈加非法。我们不去于理论角度解析,从实施的效应来拘禁,似乎窗口更加充分,去雾的法力更不肯定,如下图所示:

     首先看暗通道先验是啊:

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

      
 

  在式(12)中,每个通道的多少都需除以对应的A值,即由一化,这样做,还存一个题目,由于A的选项过程,并无可知管每个像素分量值除以A值后还低于1,从而导致t的值可能小于0,而立即是不可能的,原文作者并没供这或多或少凡是安处理的。我以事实上的编码中发觉,如果实在这么做了,其功效也并无是老理想 ,因此,我最后的不二法门是在式(12)中,不考虑A的算计。

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

    
 

     本文中具有的测试结果负让: 
ω=0.95。

       

        

                                                 

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

                                              

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

           (e)灰度图也导向图对应的去雾效果    
                       
  (f)RGB图导向图对应之去雾效果

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

     
   

      网络及产生有于好的暗原色先验去雾的matlab代码:比如和本文基本对应的matlab资源:http://files.cnblogs.com/Imageshop/cvpr09defog%28matlab%29.rar

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

    
关于何博士的有的材料与舆论,大家可拜这里:http://research.microsoft.com/en-us/um/people/kahe/

 
 
 

       

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

    
当直接用上述辩解进行复原时,去雾的功效实在也是不行鲜明的,比如下面有例:

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

   
我分别用VB6和C#开了个次,两个次还已经过各自的言语方式展开了优化,算法有编码是平的,C#运作速度约是VB6的1.8倍增。

     
去雾算法目前呢兼具广大另的法,不过自己所接触的,很多都是因这也底蕴,因此,先动手会之呢研究其他的去雾算法能奠定坚实的根基。

      1)
从暗通道图备受按亮度的分寸取前0.1%的像素。

  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

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

     
要获取越来越精细的透射率图,何博士在篇章中提出了了soft
matting方法,能取得充分细致之结果。但是他的一个沉重之短处就是是速度特慢,不下被实际行使。在2011年,何博士而除了同切开论文,其中涉及了导向滤波的不二法门来获取比好的透射率图。该方法的根本过程集中为简单的正方模糊,而方框模糊有多更以及半径无关之快捷算法。因此,算法的实用性就高,关于这导向滤波算法大家以乌博士之网站可以自己失去研习下,除了当去雾方面他,还有所其他基本上地方的使,这片本文不多述。

     实际在面临导致暗原色中没有通道值主要有三只要素:a)汽车、建筑物和都市中玻璃窗户的影,或者是树叶、树及岩等当山水的阴影;b)色彩鲜艳的体或外部,在RGB的老三只通道遭遇约略通道的价老没有(比如绿色的草地/树/植物,红色或者黄色的花/叶子,或者蓝色的水面);c)颜色较暗的物体或表面,例如灰暗色的干与石块。总之,自然山水中处处都是影子或者彩色,这些风景的图像的暗原色总是好惨淡的。

      
由地方的代码,可见,主要的工作量在均值模糊上,而均值模糊是单可怜迅速的算法,关于均值模糊的优化可参看我先的稿子:彩色图像高速模糊的懒惰算法。

    
  
 

     
如果采用的斑块RGB图做导向图,计算时达会见多多,所之顶之透射率图的边缘会比灰度图所拍卖的保留了重新多的底细,效果上稍加微比灰度图好,如下所示:

      

                                                           
           

     
有了是先验,接着便得进行部分数学方面的演绎来最终解决问题。

    一、论文思想之简便描述 

 
 其中,I(X)就是我们本已局部图像(待去雾的图像),J(x)是我们如果还原的无雾的图像,A是全世界大气光成分,
t(x)为透射率。现在的就掌握条件就是I(X),要求目标值J(x),显然,这是独发许多去掉的方程,因此,就待部分先验了。

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

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

                
有雾图                                           
 去雾图

  上述暗通道图像俱采用的窗口大小为15*15,即无限小值滤波的半径为7像素。

    
最开始接触何的即首论文是以2011年,说其实的挺时候,只是随便浏览了产,看到里面的soft
matting过程比较复杂,并且实施进度特别慢,就没有呀异常之兴味。最近而奇迹拾自,仔细研读,觉得论文的推理步骤特别清晰,讲解很成功。恰好适逢浏览到该另外一首文章《Guided
Image
Filtering》 ,其中涉及了可以就此导向滤波来取代soft
matting的经过,且速度快速,因此,我对去雾的兴算法又大大提高了。
 

     
由上述几轴图像,可以明显的张暗通道先验理论的普遍性。在作者的舆论中,统计了5000差不多抱图像的风味,也都基本相符这个先验,因此,我们得以看实际一漫漫定律。

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

   
如上所述,上标C表示R/G/B三单通道的意。

      

        

     
   

      
  

          一些有雾的图                                                                              
   其暗通道

     和平常一样,提供一个而供应大家测试效果的顺序:
依据暗原色先验的图像去雾演示程序

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

    
式(12)中之ω具有着鲜明的意思,其价值更聊,去雾效果更加不醒目,举例如下:

  我们于暗通道一个数学概念,对于自由的输入图像J,其暗通道可以据此下式表达:

     

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