图像噪声水平估计——An Efficient Statistical Method for Image Noise Level Estimation

新人第一次写博文,介绍一篇文章

Chen G, Zhu F, Heng P A. An Efficient Statistical Method for Image Noise Level Estimation[C]. IEEE International Conference on Computer Vision. IEEE, 2015:477-485.

下载地址:http://pdfs.semanticscholar.org/3924/f6b1ab44a35370a8ac8e2e1df5d9cd526414.pdf

该文章对图像的噪声水平进行估计,是很多图像去噪算法的前提。

 

该文章基于两个假设对图像噪声水平进行估计。

1、认为图像的小斑块处于低秩流形中。        其原文为:

Our work is based on the observation that patches taken from the noiseless image often lie in a low-dimensional subspace, instead of being uniformly distributed across the ambient space.

2、假设噪声类型为:加性高斯白噪声。        其原文为:

One important noise model widely used in different computer vision problems, including image denoising, is the additive, independent and homogeneous Gaussian noise model, where “homogeneous” means that the noise variance is a constant for all pixels within an image and does not change over the position or color intensity of a pixel.

第一个假设是对图像的假设,这对大多图像来说是满足的。第二个假设则限定了该算法的使用范围。

经实际检验,该算法具有良好的噪声水平估计效果。

 

下面附上相应的MATLAB程序(本人编写)。

首先需要说明的是,下面的程序只适合灰度图像,不适合彩色图像,虽然它们没有本质上的区别。

%d为斑块大小,默认为8

function [delta]=NoiseLE(Im,d)
if nargin<2
d=8;
end

Im=double(Im);
[m,n]=size(Im);

X=[];
for ii=1:m-d+1
for jj=1:n-d+1
F=Im(ii:ii-1+d,jj:jj-1+d);
F=reshape(F,d^2,1);
X=[X,F];
end
end

[mm,nn]=size(X);
miu=(mean((X')))';
X=X-repmat(miu,1,nn);

F=zeros(mm,mm);
for ii=1:nn
F=F+X(:,ii)*X(:,ii)';
end
F=F/nn;

[~,D]=eig(F);
D=diag(D);

for ii=1:d^2-2
t=sum(D(ii:d^2))/(d^2+1-ii);
F=floor((d^2+ii)/2);
F1=F-1;
F2=min(F+1,d^2);
if (t<=D(F1))&&(t>=D(F2))
delta=sqrt(t);
break;
end
end
end

转载于:https://www.cnblogs.com/feiyujiangjun/p/7816021.html

你可能感兴趣的:(图像噪声水平估计——An Efficient Statistical Method for Image Noise Level Estimation)