针对给出的图像(moon.tif)或者自行选择的灰度图像:
1):给图像分别添加高斯噪声和椒盐噪声。
2):对加噪图像的中心区域(100*100)进行空间滤波,尽最大可能消除噪声。
3):对加噪图像的中心区域(100*100)进行频域滤波,尽最大可能消除噪声。
技术描述:
对图像进行加高斯噪声和椒盐噪声处理;对包含高斯噪声和椒盐噪声的图片进行处理,使处理后的图像比原图像清晰。
所需应用到的技术,包括:
a>对图片加噪声
b>选取中心区域
c>对选取的区域进行降噪处理
d>重新生成图像。
e>构造高斯低通滤波器时用到了高斯公式:exp(-(u^2+v^2)/(2*(D0^2)))
结果讨论:
以下是对不同的滤波器针对不同噪点处理的测试结果。
参考下面的试验结果,进行讨论:
A(011)是使用fspecial('gaussian’)平滑空域滤波处理效果,不过效果不是最好,由于最大程度降噪,导致图像模糊;
A(012)是频域滤波处理后的结果,因为使用了高斯低通滤波器,所以会有条黑线,处理一般;
A(021)是使用medfilt2()空域中值滤波器效果,降噪效果很不错,图像也很清晰;
A(022) 是频域滤波处理后的结果,同A(012),因为使用了高斯低通滤波器,所以会有条黑线,效果一般。
试验结果:
高斯加噪和椒盐加噪处理图分别如下:
如图:
图(A00):原图
图(A01):高斯加噪
图(A011):对图(A01)进行中心100*100空域滤波
图(A012):对图(A01)进行中心100*100频域滤波
(A0) (A01)
(A011) (A012)
如图:
图(A00):原图
图(A02):椒盐加噪
图(A021):对图(A02)进行中心100*100空域滤波
图(A022):对图(A02)进行中心100*100频域滤波
(A00) (A02)
(A021) (A022)
附录:
源代码1 :对高斯噪声的处理
f=imread('moon.tif');
J=imnoise(f,'gaussian',0.05,0.05);%添加高斯噪声
%空域滤波
r=[219 319 319 219];
c=[129 129 229 229];
BW=roipoly(J,c,r);
h=fspecial('gaussian',[5 5]);
A011=roifilt2(J,h,BW);
figure,imshow(A011);
%频域滤波
f1=imcrop(fn,[129 219 99 100]);
%截取100*100大小的窗口图片
f2=[255 255];
%建立一个新的图像
f2=uint8(f2);
f2=padarray(f2,[50 49],255);
%将新建图像拓展到100*100的黑色图片
f2=padarray(f2,[218 129],0);
%在新建图片周围添加白色使之大小为moon图片的大小
fn=fn-f2;
%得到中心100*100区域内为黑色的moon图片
PQ=paddedsize(size(f1));
[u,v]=dftuv(PQ(1),PQ(2));
D0=0.2*PQ(2);
hh=exp(-(u.^2+v.^2)/(2*(D0^2)));
%构造高斯低通滤波器
h1=dftfilt(f1,hh);
A012=padarray(h1,[218 129],0);
%将h1拓展到moon图片大小
A012=uint8(A012)+fn;
%得到中心100*100区域处理后的moon图片
figure,imshow(A012);
源代码2 :对椒盐噪声的处理
f=imread('moon.tif');
fn=imnoise(f,'salt & pepper',0.05);
%添加椒盐噪声
%空域滤波
f1=imcrop(fn,[129 219 99 100]);
%截取100*100大小的窗口图片
f2=[255 255];
%建立一个新的图像
f2=uint8(f2);
f2=padarray(f2,[50 49],255);
%将新建图像拓展到100*100的黑色图片
f2=padarray(f2,[218 129],0);
%在新建图片周围添加白色使之大小为moon图片的大小
fn=fn-f2;
%得到中心100*100区域内为黑色的moon图片
h=medfilt2(f1,'symmetric');
%对f1进行中值处理
A021=padarray(h,[218 129],0);
%将h拓展到moon图片大小
A021=A021+fn;
%得到中心100*100区域处理后的moon图片
figure,imshow(A021);
%频域滤波
f1=imcrop(fn,[129 219 99 100]);
%截取100*100大小的窗口图片
f2=[255 255];
%建立一个新的图像
f2=uint8(f2);
f2=padarray(f2,[50 49],255);
%将新建图像拓展到100*100的黑色图片
f2=padarray(f2,[218 129],0);
%在新建图片周围添加白色使之大小为moon图片的大小
fn=fn-f2;
%得到中心100*100区域内为黑色的moon图片
PQ=paddedsize(size(f1));
[u,v]=dftuv(PQ(1),PQ(2));
D0=0.1*PQ(2);
hh=exp(-(u.^2+v.^2)/(2*(D0^2)));%构造高斯低通滤波器
h1=dftfilt(f1,hh);
A022=padarray(h1,[218 129],0);
%将h1拓展到moon图片大小
A022=uint8(A022)+fn;
%得到中心100*100区域处理后的moon图片
figure,imshow(A022);
3):对加噪图像的中心区域(100*100)进行频域滤波,尽最大可能消除噪声。 技术描述: 对图像进行加高斯噪声和椒盐噪声处理;对包含高斯噪声和椒盐噪声的
ocr识别