数字图像处理-实现理想、布特沃斯以及高斯低通滤波器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字图像处理03

作业1.实现理想、布特沃斯以及高斯低通滤波器

【实验结果】

图1

如图1 所示,02、03、04 分别是01 表示的原图在d=15 时经过理想滤波器、2 阶布特沃斯滤波器以及高斯滤波器之后形成的图像,由图可知,理想滤波器有振铃现象发生,平滑效果较为粗糙;2 阶布特沃斯滤波器几乎没有振铃现象,图像较理想滤波器而言平滑效果也比较好;高斯滤波器没有振铃现象,其平滑效果是三者中最好的。

【代码】

clear all

IM0=imread('Fig0441(a)(characters_test_pattern).tif');

subplot(2,2,1)

imshow(IM0)

title('01-原图')

%理想低通滤波器

d=15;

IM1=fftshift(fft2(IM0));

[m,n]=size(IM1);

a1=round(m/2);

b1=round(n/2);

for i=1:m

for j=1:n

distance=sqrt((i-a1)^2+(j-b1)^2);

if distance<=d

h=1;

else

h=0;

end;

IM1(i,j)=h*IM1(i,j);

end;

end;

IM1=uint8(real(ifft2(ifftshift(IM1)))); subplot(2,2,2)

imshow(IM1)

title('02-理想低通滤波器')

%2 阶的布特沃斯低通滤波器

k=2;

IM2=fftshift(fft2(IM0));

[m,n]=size(IM2);

a2=floor(m/2);

b2=floor(n/2);

for i=1:m

for j=1:n

distance=sqrt((i-a2)^2+(j-b2)^2);

h=1/(1+(distance/d)^(2*k));

IM2(i,j)=h*IM2(i,j);

end;

end;

IM2=ifftshift(IM2);

IM2=uint8(real(ifft2(IM2)));

subplot(2,2,3)

imshow(IM2)

title('03-布特沃斯低通滤波器')

%高斯低通滤波器

IMtemp1=im2double(IM0);

[m,n]=size(IM0);

for i=1:m

for j=1:n

IMtemp1(i,j)=(-1)^(i+j)*IMtemp1(i,j); end;

end;

IMtemp2=fft2(IMtemp1);

[m,n]=size(IMtemp2);

for u=1:m

for v=1:n

D(u,v)=[(u-m/2)^2+(v-n/2)^2]^0.5; factc=-D(u,v)^2/(2*d^2);

H(u,v)=exp(factc);

G(u,v)=H(u,v)*IMtemp2(u,v);

end;

end;

IMtemp3=ifft2(G);

for i=1:m

for j=1:n

IM3(i,j)=(-1)^(i+j)*IMtemp3(i,j); end;

end;

IM3=real(IM3);

subplot(2,2,4)

imshow(IM3)

title('04-高斯低通滤波器')

相关文档
最新文档