转载自网站:http://www.cnblogs.com/luo-peng/p/4785922.html

非局部均值去噪(NL-means)

非局部均值(NL-means)是近年来提出的一项新型的去噪技术。该方法充分利用了图像中的冗余信息,在去噪的同时能最大程度地保持图像的细节特征。基本思想是:当前像素的估计值由图像中与它具有相似邻域结构的像素加权平均得到。

理论上,该算法需要在整个图像范围内判断像素间的相似度,也就是说,每处理一个像素点时,都要计算它与图像中所有像素点间的相似度。但是考虑到效率问题,实现的时候,会设定两个固定大小的窗口:搜索窗口和邻域窗口。邻域窗口在搜索窗口中滑动,根据邻域间的相似性确定像素的权值。

下图是NL-means算法执行过程,大窗口是以目标像素为中心的搜索窗口,两个灰色小窗口分别是以为中心的邻域窗口。其中以为中心的邻域窗口在搜索窗口中滑动,通过计算两个邻域窗口间的相似程度为赋以权值 。

NL-means执行过程

设含噪声图像为,去噪后的图像为中像素点处的灰度值通过如下方式得到:

其中权值表示像素点间的相似度,它的值由以为中心的矩形邻域间的距离决定:

其中

为归一化系数,为平滑参数,控制高斯函数的衰减程度。越大高斯函数变化越平缓,去噪水平越高,但同时也会导致图像越模糊。越小,边缘细节成分保持得越多,但会残留过多的噪声点。的具体取值应当以图像中的噪声水平为依据。

程序:

close all;
clear all;
clc
I=double(imread('lena.tif'));
I=I+10*randn(size(I));
tic
O1=NLmeans(I,2,5,10);
toc
imshow([I,O1],[]);

function DenoisedImg=NLmeans(I,ds,Ds,h)
%I:含噪声图像
%ds:邻域窗口半径
%Ds:搜索窗口半径
%h:高斯函数平滑参数
%DenoisedImg:去噪图像
I=double(I);
[m,n]=size(I);
DenoisedImg=zeros(m,n);
PaddedImg = padarray(I,[ds,ds],'symmetric','both');
kernel=ones(2*ds+1,2*ds+1);
kernel=kernel./((2*ds+1)*(2*ds+1));
h2=h*h;
for i=1:mfor j=1:ni1=i+ds;j1=j+ds;W1=PaddedImg(i1-ds:i1+ds,j1-ds:j1+ds);%邻域窗口1wmax=0;average=0;sweight=0;%%搜索窗口rmin = max(i1-Ds,ds+1);rmax = min(i1+Ds,m+ds);smin = max(j1-Ds,ds+1);smax = min(j1+Ds,n+ds);for r=rmin:rmaxfor s=smin:smaxif(r==i1&&s==j1)continue;endW2=PaddedImg(r-ds:r+ds,s-ds:s+ds);%邻域窗口2Dist2=sum(sum(kernel.*(W1-W2).*(W1-W2)));%邻域间距离w=exp(-Dist2/h2);if(w>wmax)wmax=w;endsweight=sweight+w;average=average+w*PaddedImg(r,s);endendaverage=average+wmax*PaddedImg(i1,j1);%自身取最大权值sweight=sweight+wmax;DenoisedImg(i,j)=average/sweight;end
end

结果:

可以看出,NL-means去噪效果的确很好。但是该算法的最大缺陷就是计算复杂度太高,程序非常耗时,导致该算法不够实用。上例中256*256的lena图耗时高达33.913968s!!

针对此问题,积分图像的应用(二):非局部均值去噪(NL-means)一文使用积分图像对该算法进行加速。

转载于:https://www.cnblogs.com/byteHuang/p/6926354.html

非局部均值(Nonlocal-Mean)相关推荐

  1. 非局部相似性 matlab,基于引导核聚类的非局部均值图像去噪算法

    非局部均值(nonlocal means, NLM)图像去噪算法是根据图像中存在的大量冗余信息,用非局部自相似性原理抑制噪声的算法.最初的NLM算法由文献[ 在NLM改进算法中,文献[[在相似窗结构张 ...

  2. Python,OpenCV中的非局部均值去噪(Non-Local Means Denoising)

    Python,OpenCV中的非局部均值去噪(Non-Local Means Denoising) 1. 效果图 2. 原理 3. 源码 2.1 单彩色图去噪 2.2 多连续彩色帧去噪 参考 这篇博客 ...

  3. 图像降噪算法——非局部均值降噪算法

    图像降噪算法--非局部均值降噪算法 图像降噪算法--非局部均值降噪算法 1. 基本原理 2. C++代码实现 3. 结论 图像降噪算法--非局部均值降噪算法 1. 基本原理 非局部均值降噪算法(Non ...

  4. 【图像去噪】基于非局部均值(NLM)滤波图像去噪含Matlab源码

    1 简介 图像在获取和传输过程中,不可避免地受到外部和内部的干扰,常常因为各种因素的影响而被加入很多噪声,这十分严重的影响了人们对传输后图像信息的读取.因此通过一定方法将被噪声污染的图像进行去噪处理一 ...

  5. 图像保边滤波算法集锦--非局部均值NLM滤波器

    本文介绍非局部均值滤波,这种滤波器效果非常好,但是算法耗时严重,这里以效果为先,来给大家讲解. 非局部均值滤波(Non-Local Means,NLM)是Buades等人于2005年在论文" ...

  6. 浅谈NLM非局部均值滤波

    参考文献:<A non-local algorithm for image denoising> 非局部均值滤波,顾名思义,与高斯滤波等只利用待滤波点周围像素的局部滤波不同,非局部体现在利 ...

  7. 详解非局部均值滤波原理以及用MATLAB源码实现

    详解非局部均值滤波原理以及用MATLAB源码实现 序言 均值滤波.中值滤波.高斯滤波在滤除噪声的过程中,无可避免的使图像的边缘细节和纹理信息所被滤除.针对此问题,Buades[1]等人提出了非局部均值 ...

  8. 非局部均值滤波算法(NL-means)

    非局部均值滤波算法(NL-means) 今天来学习一下另一类滤波算法:非局部均值滤波算法(NL-means).非局部均值滤波算法最早于2005年由Buades等人发表在CVPR上,论文原文:A non ...

  9. 传统图像去噪方法(三)之非局部均值去噪(NLM)

    前面基于邻域像素的滤波方法,基本上只考虑了有限窗口范围内的像素灰度值信息,没有考虑该窗口范围内像素的统计信息如方差,也没有考虑整个图像的像素分布特性,和噪声的先验知识. NLM算法使用自然图像中普遍存 ...

最新文章

  1. Kafka之Purgatory Redesign Proposal (翻译)
  2. Android属性动画 ViewPropertyAnimator
  3. 索尼笔记本如何进Bios设置U盘启动
  4. 49-今日交易总结.(2015.1.13)
  5. qt 背景和控件布局_Qt编写自定义控件26-平铺背景控件
  6. html点击文字展开图片,DIV CSS鼠标经过悬停在图片上时图片上方显示文字
  7. javascript闭包新认识
  8. 分析匿名页(anonymous_page)映射
  9. Matlab图像分割(U-Net)
  10. 小程序后台PHP版本部署运行 LNMP+WNMP
  11. 服务器硬件配置应如何选择?
  12. 迅捷pdf转换成word转换器 4.1 官方版
  13. chrome插件安装方法教程
  14. 如何升级自己的思维?成为你想成为的自己。
  15. 安徽大学计算机学院保研去向,录取分数线低,推免保研率高,除了低调朴实的安徽大学,还有谁?...
  16. Python数据分析之Pandas库
  17. enable 华为交换机ntdp_华为交换机设置
  18. 色阶、灰度色彩模式、灰度等级
  19. 学习大数据开发培训前景如何
  20. 2020年3月蓝桥杯校内模拟赛题解

热门文章

  1. xamarin android上传图片到服务器,从图片库中选取照片
  2. js符号转码_JS 字符串编码函数(解决URL特殊字符传递问题):escape()、encodeURI()、encodeURIComponent()区别详解...
  3. java compareto方法怎么排序的_很简单却能让你面试头疼得Java容器,这里从源码给你解释清楚
  4. 从命令行参数中得到一个字符串,统计该字符串中字母 a 的出现次数。
  5. 用html做简易计步器,HTML5 运动计步器
  6. hashmap java 便利_java遍历HashMap的高效方法
  7. oracle java javapath_系统找不到C:\ProgramData\Oracle\Java\javapath\java.exe问题及解决方案...
  8. OGNL、EL表达式——Struts
  9. u3d中刚体与碰撞体的理解以及is Trigger属性的意义
  10. 一个好用的PHP验证码类