暗通道先验算法

简介: 暗通道先验算法

经典暗通道先验模型可以表示为:        


                                       I(x)=J(x)t(x) + A(1-t(x))


       这里I(x)为观察到的有雾图像,也就是我们所得的低质量图像,J(x)为无雾图像,A为大气光成分,为一常数 , t(x)为透射率(0,1)。

       其含义就是图像I(x)为事物反射的光经过雾气衰减后加上雾气反射的大气光的结合所成的像。作者根据对5000多幅无雾图像的暗通道图数据观察发现:约75%的像素值为0,且90%的像素点具有非常低的值,且集中在[0,16]。由此提出暗通道先验理论,即对于一副无雾图像,其暗通道可以表示为:                     eq.png

                           

  eq.png   表示J的任意一个颜色通道,Ω(x)表示在像素点x的窗口。

 根据暗通道先验理论得出:

                             

                                      eq.png

     

       为此我们通过计算去求解透射率 t(x):


       我们对大气散射模型公式(1)进行归一化处理;


                            eq.png


 这里我们假设大气光值A是已知的,并且透射率t(x)为常数,对上面公式的两边同时进行两次取最小值运算,可以得到下面式子:    

                                                            eq.png


 J(x)是代求的去雾图像,根据暗通道先验理论得:



                eq.png


由此可得


                            eq.png


将上述(8)式带入可得透射率t(x)得估计值:


                            eq.png


   在人们的日常生活中,众所周知,就算外面的天气晴朗无云,晴空万里,空气中还是会存在一些微小颗粒物的,当人们欣赏远处的物体时,总是能感受到雾的存在。同时,雾的存在会让人们感受到景深的存在,所以在去雾的同时也有必要保证一点雾的存在,使经去雾处理后得到的无雾图片看起来更加真实自然…。在这个过程中,我们通过引入一个 0 到 1 之间的因子w(传统暗通道先验去雾算法一文中w取值为0.95)对预估透射率t(x)进行修正,如式所示:


                                eq.png


       在图像中,雾浓度越低,其暗通道图越暗,像素点值越小;雾浓度越高,其暗通道图越亮,像素点值越大,因此,暗通道图可以较好的反映雾浓度信息。


       对于大气光值的选取方法有:先在暗通道图中选出图中前0.1%的像素值最大的像素点(这些像素点通常表示的是雾最不透明的点),这些像素点对应到有雾图像中,选取像素值最高的像素点作为大气光A。


       根据大气散射模型,将大气光A和t透射率带入式(1)可得到最终的复原场景:


                                         

                                eq.png

相关文章
|
1月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
146 8
|
机器学习/深度学习 算法 光互联
致敬何凯明的暗通道去雾算法 | NAS-Net: 基于非对齐监督的图像去雾框架
致敬何凯明的暗通道去雾算法 | NAS-Net: 基于非对齐监督的图像去雾框架
595 0
Matlab:单幅图象的暗原色先验去雾改进算法,能够很好地改进天空或明亮部分色彩失真问题
Matlab:单幅图象的暗原色先验去雾改进算法,能够很好地改进天空或明亮部分色彩失真问题
Matlab:单幅图象的暗原色先验去雾改进算法,能够很好地改进天空或明亮部分色彩失真问题
|
1月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
187 0
|
1月前
|
数据采集 分布式计算 并行计算
mRMR算法实现特征选择-MATLAB
mRMR算法实现特征选择-MATLAB
140 2
|
2月前
|
传感器 机器学习/深度学习 编解码
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
193 3
|
2月前
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
125 6
|
1月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
137 8
|
1月前
|
机器学习/深度学习 算法 数据可视化
基于MVO多元宇宙优化的DBSCAN聚类算法matlab仿真
本程序基于MATLAB实现MVO优化的DBSCAN聚类算法,通过多元宇宙优化自动搜索最优参数Eps与MinPts,提升聚类精度。对比传统DBSCAN,MVO-DBSCAN有效克服参数依赖问题,适应复杂数据分布,增强鲁棒性,适用于非均匀密度数据集的高效聚类分析。
|
1月前
|
开发框架 算法 .NET
基于ADMM无穷范数检测算法的MIMO通信系统信号检测MATLAB仿真,对比ML,MMSE,ZF以及LAMA
简介:本文介绍基于ADMM的MIMO信号检测算法,结合无穷范数优化与交替方向乘子法,降低计算复杂度并提升检测性能。涵盖MATLAB 2024b实现效果图、核心代码及详细注释,并对比ML、MMSE、ZF、OCD_MMSE与LAMA等算法。重点分析LAMA基于消息传递的低复杂度优势,适用于大规模MIMO系统,为通信系统检测提供理论支持与实践方案。(238字)

热门文章

最新文章

下一篇
oss云网关配置