✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,
代码获取、论文复现及科研仿真合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab完整代码及仿真定制内容点击👇
🔥 内容介绍
图像去雾是计算机视觉中的一个重要问题。在许多场景下,由于天气等自然因素的影响,图像会带有雾霾,导致图像质量下降,影响视觉效果和后续处理的准确性。因此,图像去雾成为了计算机视觉领域的一个热门研究方向。
在图像去雾的研究中,NBPC和PA模型是两种经典的方法。本文将介绍这两种方法,并结合实例讲解如何使用这些模型实现图像除雾。
一、NBPC模型
NBPC模型是一种基于图像块的去雾方法。该方法首先将图像分成若干个块,然后对每个块进行处理,最终将处理后的块拼接成整张图像。
NBPC模型的具体处理过程如下:
-
对图像进行分块,将图像分成若干个大小相等的块。
-
对每个块进行处理。首先,计算出该块中像素的平均值和方差。然后,根据该块中像素的方差和像素值的分布情况,估计出该块中的雾浓度。
-
根据估计出的雾浓度,对该块进行去雾处理。具体来说,可以使用下面的公式:
��(�,�)=��(�,�)+�×(��(�,�)−��)

-
将处理后的块拼接成整张图像。
二、PA模型
PA模型是一种基于先验知识的去雾方法。该方法利用了雾霾图像中的物体边缘信息,通过先验知识来估计雾浓度,从而实现图像去雾。
PA模型的具体处理过程如下:
-
对图像进行预处理,提取出图像中的边缘信息。可以使用一些经典的边缘检测算法,如Canny算法、Sobel算法等。
-
利用边缘信息,估计出图像中的雾浓度。具体来说,可以使用下面的公式:
�(�,�)=log(�(�,�))−log(�(�,�))log(�(�,�))

📣 部分代码
% Gray level example of visibility restorationim=double(imread('PISTEB00738S.pgm'))/255.0;sv=2*floor(max(size(im))/25)+1;% ICCV'2009 paper result (NBPC)res=nbpc(im,sv,0.95,-1,1,1.0);figure;imshow([im, res],[0,1]);title('原始图像和NBPC模型去雾图像'); %% IV'2010 paper result (NBPC+PA)res2=nbpcpa(im,sv,0.95,-1,1,1.0,70,200);figure;imshow([im, res2],[0,1]);title('原始图像和NBPC+PA模型去雾图像');% Color example of visibility restorationim=double(imread('sweden.jpg'))/255.0;sv=2*floor(max(size(im))/50)+1;% ICCV'2009 paper result (NBPC)res=nbpc(im,sv,0.95,0.5,1,1.3);figure;imshow([im, res],[0,1]);title('原始图像和NBPC模型去雾图像');% IV'2010 paper result (NBPC+PA)res2=nbpcpa(im,sv,0.95,0.5,1,1.3,205,300);figure;imshow([im, res2],[0,1]);title('原始图像和NBPC+PA模型去雾图像');
⛳️ 运行结果




🔗 参考文献
本程序参考以下中文EI期刊,程序注释清晰,干货满满。
[1]王燕妮,杨小宝.基于天空区域识别的图像去雾改进算法[J].探测与控制学报, 2020, 42(2):8.DOI:CNKI:SUN:XDYX.0.2020-02-015.
本文介绍了计算机视觉中的图像去雾问题,着重讨论了NBPC和PA两种经典模型,包括它们的工作原理、Matlab实现示例以及在实际场景中的应用。

被折叠的 条评论
为什么被折叠?



