数字图像处理第三次实验 (1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.傅里叶变换
A=imread('picture.jpg');
I=rgb2gray(A);
subplot(1,2,1),imshow(I);
I=im2double(I);
lnI=log(I+0.000001);
FI=fft2(lnI);
P=fftshift(FI);
[M,N]=size(P);
subplot(1,2,2),imshow(uint8(abs(P)),[]),title('频谱图像')
2.低通滤波
2.1理想低通滤波
I=imread('picture01.jpg'); %
I=rgb2gray(I);
subplot(121),imshow(I);
title('原图像');
s=fftshift(fft2(I));
[a,b]=size(s);
a0=round(a/2);
b0=round(b/2);
d=10;
for i=1:a
for j=1:b
distance=sqrt((i-a0)^2+(j-b0)^2); if distance<=d h=1;
else h=0;
end; s(i,j)=h*s(i,j); end; end;
s=uint8(real(ifft2(ifftshift(s))));
subplot(122), imshow(s);
title('低通滤波所得图像
');
频谱图像
2.2butterworth 低通滤波
A1=imread('picture01.jpg');
I1=rgb2gray(A1)
f=double(I1);
g=fft2(f);
g=fftshift(g);
[N1,N2]=size(g);
n1=2;
n2=5;
n3=10;
d0=10;
a=round(N1/2);
b=round(N2/2);
for i=1:N1
for j=1:N2
d=sqrt((i-a)^2+(j-b)^2);
if d==d0 h=0;
else
h1=1/(1+(d/d0)^(2*n1));
h2=1/(1+(d/d0)^(2*n2));
h3=1/(1+(d/d0)^(2*n3));
end
result1(i,j)=h1*g(i,j);
result2(i,j)=h2*g(i,j);
result3(i,j)=h3*g(i,j);
end
end
result1=ifftshift(result1);
result2=ifftshift(result2);
result3=ifftshift(result3);
原图
像低通滤波所得图像
X2=ifft2(result2);
X3=ifft2(result3);
X4=uint8(real(X1));
X5=uint8(real(X2));
X6=uint8(real(X3));
subplot(221),imshow(I1)
subplot(222),imshow(X4)
subplot(223),imshow(X5)
subplot(224),imshow(X6)
2.3高斯低通滤波
I=imread('picture01.jpg');
IA=rgb2gray(I)
[f1,f2]=freqspace(size(IA),'meshgrid'); D=100/size(IA,1);
r=f1.^2+f2.^2;
Hd=ones(size(IA));
for i=1:size(IA,1)
for j=1:size(IA,2)
t=r(i,j)/(D*D);
Hd(i,j)=exp(-t);
end
end
Y=fft2(double(IA));
Y=fftshift(Y);
Ya=Y.*Hd;
Ia=real(ifft2(Ya));
figure
subplot(1,2,1),imshow(uint8(IA));
title('原图像');
subplot(1,2,2),imshow(uint8(Ia));
title('高斯低通滤波处理');
3.高通滤波
3.1理想低通滤波
I=imread('FN.jpg');
I=rgb2gray(I);
subplot(221),imshow(I);
s=fftshift(fft2(I));
[a,b]=size(s);
a0=round(a/2);
b0=round(b/2);
d1=10;
d2=50;
d3=100;
for i=1:a
for j=1:b
distance=sqrt((i-a0)^2+(j-b0)^2);
if distance<=d1 h1=0;
else h1=1;
原图
像
高斯低通滤波处理