Loading

数字图像处理之复原处理

数字图像处理之傅里叶变换

                                                        by方阳

版权声明:本文为博主原创文章,转载请指明转载地址

 http://www.cnblogs.com/fydeblog/p/7070055.html

1. 前言

 

这篇博客主要介绍常见的噪声及其概率密度函数,并用MATLAB复原函数对退化图像进行复原处理。这里复原是指在图像已经有噪声污染的情况下复原,与直接用傅里叶正反变换不一样

 

2. 原理说明

 

(1) 常见噪声:椒盐噪声和高斯噪声

椒盐噪声是指两种噪声,一种是盐噪声,另一种是胡椒噪声。盐=白色,椒=黑色。前者是高灰度噪声,后者属于低灰度噪声。一般两种噪声同时出现,呈现在图像上就是黑白杂点。概率函数两极分化;

高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声;

 

(2)图像复原是用去卷积函数实现的,用原图像卷积点扩散函数(点扩散函数即是一种运动模糊的算子),然后加入高斯噪声。然后用去卷积来恢复图像,有两种,一种不加入噪声估计,一种加入噪声估计,得到不同的恢复效果;

 

3. 实现内容

 

(1)     构造一个矩形方块图像,对其分别加入高斯和椒盐噪声,显示原始图像和噪声图像,及每个图片相对应的直方图。

 

(2)     任意选择一幅图像,对其使用运动模糊处理,再在模糊图像中加入高斯噪声,使用逆滤波和winner滤波对其进行去退化处理,比较效果,显示原始图像和复原图像。

 

4. 程序实现及实验结果

 

(1)噪声对图像直方图的影响

 

f(1000,1000)=0;
f=mat2gray(f);
[Y,X]=meshgrid(1:1000,1:1000);
f(1:500,1:500)=1;
f(500:1000,500:1000)=1;
I=f;
I1=imnoise(I,'salt & pepper',0.02);
I2=imnoise(I,'gaussian',0,0.01);
figure;
subplot(2,3,1);
imshow(I);
title('原图');
subplot(2,3,2);
imshow(I1);
title('椒盐噪声后的图像');
subplot(2,3,3);
imshow(I2);
title('高斯噪声后的图像');
subplot(2,3,4);
imhist(I);
title('原图直方图');
subplot(2,3,5);
imhist(I1);
title('椒盐噪声图像的直方图');
subplot(2,3,6);
imhist(I2);
title('高斯噪声图像的直方图');

 

运行结果:

(2)逆滤波与winner滤波

 

I_1=imread('cameraman.tif');
PSF=fspecial('motion',21,11);
I3=imfilter(I_1,PSF,'conv','circular');
I3=imnoise(I3,'gaussian',0,0.0001);
I4=deconvwnr(I3,PSF);
I_1=im2double(I_1);
estimated_nsr=0.0001/var(I_1(:));
I5=deconvwnr(I3,PSF,estimated_nsr);
figure;
subplot(2,2,1);
imshow(I_1);
title('原图');
subplot(2,2,2);
imshow(I3);
title('模糊+噪声');
subplot(2,2,3);
imshow(I4);
title('逆滤波');
subplot(2,2,4);
imshow(I5);
title('winner滤波');

 

运行结果:

五. 结果分析

 

(1)从图1可以看出,原图(黑白图)直接是两极分化,加入椒盐噪声后直方图没有变化,因为椒盐噪声也是两极分化,加入高斯噪声可以看出直方图有高斯形状;

 

(2)从图2可以看出,用逆滤波出来的图像很不理想,用winner滤波出来的图像还行,看出图像恢复,信噪比是不可忽略的因素啊!

 

 

 

 

 

 

posted @ 2017-06-23 15:19  FANG_YANG  阅读(8175)  评论(0编辑  收藏  举报