图像处理复习整理(4.图像去噪)

Posted 没有生只有的我

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像处理复习整理(4.图像去噪)相关的知识,希望对你有一定的参考价值。

检测图像噪音程度:

计算平方误差:

function d = mse(est,ref)
d =mean( (est(:)-ref(:)).^2 ) ;

 

计算信号噪声比:

function d = snr(est,ref)
mse = mean((ref(:)-est(:)).^2);
dv = var(ref(:),1);
snr = 10*log10(dv/mse);

峰度信号噪声比:

function p = psnr(est,ref)
mse= mean((est(:)-ref(:)).^2 );
m1 = max(abs(est(:)) );
m2 = max(abs(ref(:)) );
m = max(m1,m2);
p = 10*log10(m^2/mse );

对方法进行检测的时候,噪音产生的方法主要有:

增加随机噪声或者增加多种随机噪声。

去噪的病态问题:

  • 有多个解
  • 无解
  • 随着初始值变化的解

去噪:正则化,简单化

电脉冲去噪

中值滤波

白高斯去噪

高斯滤波、双边滤波、nonlocal mean 滤波

中值滤波无法解决白高斯滤波

高斯滤波:

高斯概率分布

由于高斯滤波处理之后不清楚,所以需要再对图像进行锐化处理

 

 

双边滤波:

 

function B = Bilateral(A,w,sigma_d,sigma_r)
[X,Y] = meshgrid(-w:w,-w:w);
G = exp(-(X.^2+Y.^2)/(2*sigma_d^2));
% Apply bilateral filter.
dim = size(A);
B = zeros(dim);
for i = 1:dim(1)
   for j = 1:dim(2)      
         % Extract local region.
         iMin = max(i-w,1); iMax = min(i+w,dim(1));
         jMin = max(j-w,1); jMax = min(j+w,dim(2));
         I = A(iMin:iMax,jMin:jMax);  
         % Compute Gaussian intensity weights.
         H = exp(-(I-A(i,j)).^2/(2*sigma_r^2));    
         F = H.*G((iMin:iMax)-i+w+1,(jMin:jMax)-j+w+1);
         B(i,j) = sum(F(:).*I(:))/sum(F(:));            
   end
end

nonlocal means

不是根据单个点之间相似程度,而是块与块之间的相似程度进行比较

 

w(p,q)表示的是块与块之间的距离,西格玛表示噪音的标准误差,h是和西格玛相关的数据集,论文中max里面的写错了,把0.0改为1.0。

 

以上是关于图像处理复习整理(4.图像去噪)的主要内容,如果未能解决你的问题,请参考以下文章

如何对matlab plot生成的fig曲线图像进行去噪,平滑处理。

图像去噪基于matlab BdCNN图像去噪含Matlab源码 1866期

Matlab系列一维信号/数字图像小波阈值去噪(软阈值,硬阈值,固定阈值)

图像去噪基于matlab自适应中值滤波图像去噪含Matlab 1156期

图像去噪基于matlab自适应中值滤波图像去噪含Matlab 1844期

图像去噪基于matlab多种自适应均值滤波图像去噪含Matlab 1843期