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

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

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

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

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

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

Buades等人提出的非局部均值滤波器是一种用于图像去噪的方法,它能够有效地去除图像中的噪声,并保持图像的细节和边缘。

该方法的核心思想是利用图像中的非局部相似性来进行去噪。传统的均值滤波器只考虑局部邻域内的像素值,而非局部均值滤波器则考虑了整个图像中与当前像素相似的像素值。

步骤如下:
1. 首先,对于图像中的每个像素,选择一个固定大小的邻域窗口。该窗口的大小决定了滤波器的范围。
2. 然后,计算该窗口内每个像素与当前像素的相似性。相似性可以通过计算像素之间的欧氏距离或其他相似度度量来衡量。
3. 根据相似性计算出的权重,对邻域窗口内的像素进行加权平均。相似性越高的像素将具有更大的权重,从而更大程度上影响当前像素的值。
4. 重复以上步骤,对图像中的每个像素进行处理,得到去噪后的图像。

非局部均值滤波器的优点是能够保持图像的细节和边缘,同时去除噪声。它利用了图像中的全局信息,因此对于复杂的纹理和结构具有较好的去噪效果。此外,该方法还具有较好的计算效率,可以在实时应用中使用。

然而,非局部均值滤波器也存在一些缺点。首先,该方法对于大尺寸的窗口需要较高的计算成本,因此在处理大型图像时可能会变得很慢。其次,该方法对于噪声的强度和类型较为敏感,可能会在某些情况下产生伪影或模糊效果。

总体而言,Buades等人提出的非局部均值滤波器是一种有效的图像去噪方法,可以在实际应用中得到广泛的应用。

📚2 运行结果

 主函数代码:

clear
clc
clf
colormap(gray)

% create example image
ima=100*ones(100);
ima(50:100,:)=50;
ima(:,50:100)=2*ima(:,50:100);
fs=fspecial('average');
ima=imfilter(ima,fs,'symmetric');

% add some noise
sigma=10;
rima=ima+sigma*randn(size(ima));

% show it
imagesc(rima)
drawnow

% denoise it
fima=NLmeansfilter(ima,5,2,sigma);

% show results
clf
subplot(2,2,1),imagesc(ima),title('original');
subplot(2,2,2),imagesc(rima),title('noisy');
subplot(2,2,3),imagesc(fima),title('filtered');
subplot(2,2,4),imagesc(rima-fima),title('residuals');

🎉3 参考文献

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

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

[2]王益艳.图像去噪算法的研究[D].陕西师范大学[2023-08-05].DOI:CNKI:CDMD:2.2009.046234.

[3]孙晓欢,张洁,杨丰.无抽样方向滤波器组用于图像去噪的方法研究[J].计算机工程与应用, 2010, 46(16):5.DOI:10.3778/j.issn.1002-8331.2010.16.049.

[4]张小华,陈佳伟,孟红云,等.基于方向增强邻域窗和非下采样Shearlet描述子的非局部均值图像去噪[J].电子与信息学报, 2011, 33(11):6.DOI:10.3724/SP.J.1146.2011.00221.

🌈4 Matlab代码实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/65735.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言】每日一题(错误的集合)

最近在牛客、力扣上做题,花费海量时间,苦不堪言,有时绞尽脑汁也想不出,痛定思痛,每日记录写的比较困难的题。 错误的集合 题目如上图所示 题主乍看之下觉得很简单,再看例子,不就是一个有序数组…

接口测试之Jmeter+Ant+Jenkins接口自动化测试平台

平台简介 一个完整的接口自动化测试平台需要支持接口的自动执行,自动生成测试报告,以及持续集成。Jmeter支持接口的测试,Ant支持自动构建,而Jenkins支持持续集成,所以三者组合在一起可以构成一个功能完善的接口自动化…

变形金刚在图像识别方面比CNN更好吗?

链接到文 — https://arxiv.org/pdf/2010.11929.pdf 一、说明 如今,在自然语言处理(NLP)任务中,转换器已成为goto架构(例如BERT,GPT-3等)。另一方面,变压器在计算机视觉任务中的使用…

Linux安装JDK

1、到Oracle官网下载JDK https://www.oracle.com/java/technologies/downloads/#java8 Oracle账号可以网上搜或者自己注册一个,JDK安装包根据Linux版本自行选择,我的Linux系统是64位的,所以我这里选择的是x64的JDK安装包 2、下载完后把JDK上…

4.0 Spring Boot入门

1. Spring Boot概述 Spring Boot介绍 Spring Boot是Pivotal团队在2014年推出的全新框架,主要用于简化Spring项目的开发过程,可以使用最少的配置快速创建Spring项目。 Spring Boot版本 2014年4月v1.0.0.RELEASE发布。 ​ 2.Spring Boot特性 约定优于配…

第一百二十五天学习记录:C++提高:STL-deque容器(下)(黑马教学视频)

deque插入和删除 功能描述: 向deque容器中插入和删除数据 函数原型: 两端插入操作: push_back(elem); //在容器尾部添加一个数据 push_front(elem); //在容器头部插入一个数据 pop_back(); //删除容器最后一个数据 pop_front(); //删除容器…

Patch SCN一键解决ORA-600 2662故障---惜分飞

客户强制重启库之后,数据库启动报ORA-600 2037,ORA-745 kcbs_reset_pool/kcbzre1等错误 Wed Aug 09 13:25:38 2023 alter database mount exclusive Successful mount of redo thread 1, with mount id 1672229586 Database mounted in Exclusive Mode Lost write protection d…

0基础学C#笔记10:归并排序法

文章目录 前言一、递归的方式二、代码总结 前言 将一个大的无序数组有序,我们可以把大的数组分成两个,然后对这两个数组分别进行排序,之后在把这两个数组合并成一个有序的数组。由于两个小的数组都是有序的,所以在合并的时候是很…

百日筑基篇——python爬虫学习(一)

百日筑基篇——python爬虫学习(一) 文章目录 前言一、python爬虫介绍二、URL管理器三、所需基础模块的介绍1. requests2. BeautifulSoup1. HTML介绍2. 网页解析器 四、实操1. 代码展示2. 代码解释1. 将大文件划分为小的文件2. 获得结果页面的url3. 获取结…

【LeetCode】买卖股票的最佳时机含冷冻期

买卖股票的最佳时机含冷冻期 题目描述算法分析程序设计 链接: 买卖股票的最佳时机含冷冻期 题目描述 算法分析 程序设计 class Solution { public:int maxProfit(vector<int>& prices) {int n prices.size();//天数vector<vector<int>> dp(n,vector&l…

用ChatGPT和六顶帽思考法帮助自己更好地决策和解决问题

当我们在解决复杂问题时&#xff0c;我们常常陷入单一视角的状态。创造性思维领域的先驱爱德华德博诺&#xff0c;提出了六顶帽思考法[1]&#xff0c;这意味着我们可以从六个不同的视角来思考一个问题&#xff0c;以实现高水平决策和解决问题。 每一顶“帽子”代表不同的视角。…

Pycharm 双击启动失败?

事故 双击 Pycharm 后&#xff0c;出现加载工程&#xff0c;我不想加载这个工程&#xff0c;就点击了弹出的 cancle 取消按钮。然后再到桌面双击 Pycharm 却发现无法启动了。哪怕以管理员权限运行也没用&#xff0c;就是不出界面。 原因未知 CtrlshiftESC 打开后台&#xff…