非局域均值去噪

转载 2016年05月30日 17:13:28

http://www.cnblogs.com/luo-peng/p/4785922.html

非局部均值(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:m
    for j=1:n
        i1=i+ds;
        j1=j+ds;
        W1=PaddedImg(i1-ds:i1+ds,j1-ds:j1+ds);%邻域窗口1
        wmax=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:rmax
            for s=smin:smax
                if(r==i1&&s==j1)
                continue;
                end
                W2=PaddedImg(r-ds:r+ds,s-ds:s+ds);%邻域窗口2
                Dist2=sum(sum(kernel.*(W1-W2).*(W1-W2)));%邻域间距离
                w=exp(-Dist2/h2);
                if(w>wmax)
                    wmax=w;
                end
                sweight=sweight+w;
                average=average+w*PaddedImg(r,s);
            end
        end
        average=average+wmax*PaddedImg(i1,j1);%自身取最大权值
        sweight=sweight+wmax;
        DenoisedImg(i,j)=average/sweight;
    end
end
复制代码

结果:

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


相关文章推荐

非平稳信号分析方法-局域波分析

  • 2011年07月03日 16:06
  • 389KB
  • 下载

基于局域对比度增强插值算法

简介   本篇主要是记录:基于局域对比度增强的单帧图像插值算法。 参考论文:1、a_fast_and_adaptive_method_for_image_contrast_enhancement ...

Win10访问局域共享文件

最近因为做项目的原因,需要从同事电脑考一些文件,所以想到的办法就是共享文件夹,这样我们开发组的四个小伙伴就都能够访问了。但是想法很好,问题也就紧随而来,其他的两个小伙伴都连接顺利,井然有序的进行着……...

ARP协议以及获取当前局域下主机MAC地址

一、什么是ARP协议、 ARP被称为地址解析协议,在局域网内通过IP地址查找目标主机的MAC地址。ARP协议是实现IP地址到MAC地址的转化。 二、ARP协议的工作原理 为什么使用ARP协议? ...

Tcl/tk实例-局域发送消息工具

#!/usr/local/bin/wish8.5 # # author: wn0112@gmail.com package require Ttk set top . set sheight [ w...
  • wn0112
  • wn0112
  • 2012年07月24日 09:42
  • 2313

公司内局域网中的redis缓存和sock线程池,不在局域内运行程序怎么处理

/** * 对文件进行压缩,调用方法 * @throws Exception * @author wud * @param path(图片的全路径) * */ public static void c...

非局部均值算法降噪

  • 2014年03月05日 10:59
  • 1KB
  • 下载

积分图像的应用(二):非局部均值去噪(NL-means)

非局部均值去噪(NL-means)一文介绍了NL-means基本算法,同时指出了该算法效率低的问题,本文将使用积分图像技术对该算法进行加速。 假设图像共像个素点,搜索窗口大小,领域窗口大小, 计算两...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:非局域均值去噪
举报原因:
原因补充:

(最多只允许输入30个字)