【图像去噪】图像去噪的非局部均值 (NLM) 滤波器研究(Matlab代码实现)

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

图像去噪是图像处理中的重要问题之一。NLM(Non-local Means)滤波器是一种经典的图像去噪算法,基于图像中重复的局部结构,通过使用相似像素的加权平均来移除高斯噪声和其它噪声。

NLM滤波器的基本思想是,在图像中寻找与当前像素周围区域的像素值相似的像素块,计算这些像素块与当前像素块之间的相似度。通过这些相似度计算权重,以这些块内的像素值作为两个像素点的相似性度量,对像素点进行加权平均,从而去除噪声。

具体而言,NLM滤波器的计算步骤如下:

1. 对于每个像素点,选择一个邻域窗口,定义为一个大小为 $w \times w$ 的矩形区域。

2. 对于每个邻域窗口,在图像中寻找与该窗口相似的像素块。这些像素块可以从图像中的其他位置选取,也可以从邻域窗口周围的位置选取。

3. 对于找到的每个相似像素块,计算与当前像素块之间的相似度(通常使用均方差或者 PSNR 等度量)。

4. 根据相似度计算像素块的权重,将这些相似像素块的像素值加权平均,作为当前像素点的去噪后值。

5. 对所有像素点重复执行步骤 1 到 4,直到所有像素点均被处理。

需要注意的是,NLM滤波器的计算量较大,特别是在处理大型图像时。因此,在实际应用中,通常会使用一些特定优化方法,如快速 NLM 算法、可加速 NLM 算法等。

总的来说,NLM滤波器是一种基于相似像素的图像去噪算法,可以有效地去除高斯噪声和其它噪声。

📚2 运行结果

部分代码:

tic
denoised = simple_nlm(noisy,t,f,h1,h2,selfsim);
cpuTime=toc

figure(1)
subplot(2,2,1),imshow(image),title('original');
subplot(2,2,2),imshow(noisy),title('noisy');
subplot(2,2,3),imshow(denoised),title('filtered');
subplot(2,2,4),imshow(noisy-denoised),title('residuals');

mse = norm(image-denoised, 'fro')/numel(image);
psnr = 10*log10(1/mse)

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]孙忠贵.非局部均值滤波器研究及应用[D].南京航空航天大学[2023-11-01].

[2]李玲.基于非局部均值的图像去噪方法研究[D].安徽理工大学[2023-11-01].DOI:CNKI:CDMD:2.1018.182807.

[3]钟莹.结构特性匹配的非局部均值图像去噪算法研究[D].合肥工业大学,2014.DOI:10.7666/d.D574768.

🌈4 Matlab代码实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值