S=S+L;
L1=(abs(G(i,j)))^2; %计算源图像的功率谱 S1=S1+L1; end end
L=S1/S %计算功率谱比 %绘制频谱图(显示为图像) figure(3)
imshow(abs(255.*F./max(max(F)))); title('测试图像的傅里叶谱');
imwrite(abs(255.*F./max(max(F))),'test1的傅里叶谱.bmp'); figure(4); imshow(abs(H));
title('显示为图像的滤波器(D0=75)');
imwrite(abs(H),'高斯低通滤波器(D0=75).bmp'); figure(5)
imshow(abs(255.*G./max(max(G)))); title('滤波后图像的傅里叶谱(D0=75)');
imwrite(abs(255.*G./max(max(G))),'test1高斯低通滤波后的傅里叶谱(D0=75).bmp');
Butterworth_hp.m(题目2布特沃斯高通滤波器)
I=imread('test4 copy.bmp'); figure(1); imshow(I);
title('test4 copy.bmp原始图像'); imwrite(I,'test4原始图像.bmp'); f=double(I); F=fft2(f); F=fftshift(F); [P,Q]=size(F); n_butterworth=2; D0=25; for u=1:P for v=1:Q
D(u,v)=sqrt((u-fix(P/2))^2+(v-fix(Q/2))^2); H(u,v)=1/(1+(D0/D(u,v))^(2*n_butterworth)); G(u,v)=H(u,v)*F(u,v); end end
g=ifftshift(G); g=ifft2(g); g=uint8(real(g)); figure(2);
imshow(g);
title('test4 copy.bmp经butterworth高通滤波后'); imwrite(g,'test4布特沃斯高通滤波后(D0=25).bmp'); S=0; S1=0; for u=1:P for v=1:Q
L1=(abs(G(u,v)))^2; S1=S1+L1;
L=(abs(F(u,v)))^2; S=S+L; end end L=S1/S
%绘制频谱图(显示为图像) figure(3)
imshow(abs(255.*F./max(max(F)))); title('测试图像的傅里叶谱');
imwrite(abs(255.*F./max(max(F))),'test4的傅里叶谱.bmp'); figure(4); imshow(abs(H));
title('显示为图像的滤波器(D0=25)');
imwrite(abs(H),'布特沃斯高通滤波器(D0=25).bmp'); figure(5)
imshow(abs(255.*G./max(max(G)))); title('滤波后图像的傅里叶谱(D0=25)');
imwrite(abs(255.*G./max(max(G))),'test4布特沃斯高通滤波后的傅里叶谱(D0=25).bmp');
Gaussian_hp.m(题目2高斯高通滤波器) I=imread('test4 copy.bmp'); figure(1); imshow(I);
title('test4 copy.bmp原始图像'); imwrite(I,'test4原始图像.bmp'); f=double(I); F=fft2(f); F=fftshift(F); [P,Q]=size(F); D0=50; for u=1:P for v=1:Q
D(u,v)=sqrt((u-fix(P/2))^2+(v-fix(Q/2))^2); H(u,v)=1-exp(-D(u,v)^2/(2*D0^2));
G(u,v)=F(u,v)*H(u,v); end end
g=ifftshift(G); g=ifft2(g); g=uint8(real(g)); figure(2); imshow(g);
title('Gaussian高通滤波后的test4 copy.bmp(D0=50)'); imwrite(g,'test4高斯高通滤波后(D0=50).bmp'); S=0; S1=0; fori=1:P for j=1:Q
L=(abs(F(i,j)))^2; %计算结果图像的功率谱 S=S+L;
L1=(abs(G(i,j)))^2; %计算源图像的功率谱 S1=S1+L1; end end
L=S1/S %计算功率谱比 %绘制频谱图(显示为图像) figure(3)
imshow(abs(255.*F./max(max(F)))); title('测试图像的傅里叶谱');
imwrite(abs(255.*F./max(max(F))),'test4的傅里叶谱.bmp'); figure(4); imshow(abs(H));
title('显示为图像的滤波器(D0=50)');
imwrite(abs(H),'高斯高通滤波器(D0=50).bmp'); figure(5)
imshow(abs(255.*G./max(max(G)))); title('滤波后图像的傅里叶谱(D0=50)');
imwrite(abs(255.*G./max(max(G))),'test4高斯高通滤波后的傅里叶谱(D0=50).bmp');
laplacian_hp.m(题目3拉普拉斯高通滤波器(未进行归一化处理)) I=imread('test4 copy.bmp'); figure(1); imshow(I);
title('test4 copy.bmp原始图像'); imwrite(I,'test4 copy原始图像.bmp'); f=double(I); F=fft2(f);
F=fftshift(F); [P,Q]=size(F); c=1; for u=1:P for v=1:Q
D(u,v)=sqrt((u-fix(P/2))^2+(v-fix(Q/2))^2); H(u,v)=1+c*4*pi^2*D(u,v)^2; G(u,v)=H(u,v)*F(u,v); end end
g=ifftshift(G); g=ifft2(g); g=uint8(real(g)); figure(2); imshow(g);
title('test4 copy.bmp经拉普拉斯滤波后');
imwrite(g,'test4 copy经拉普拉斯滤波后.bmp'); %绘制频谱图(显示为图像) figure(3)
imshow(abs(255.*F./max(max(F)))); title('测试图像的傅里叶谱');
imwrite(abs(255.*F./max(max(F))),'test4的傅里叶谱.bmp'); figure(4);
imshow(abs(255.*H./max(max(H)))); title('显示为图像的拉普拉斯滤波器');
imwrite(abs(255.*H./max(max(H))),'拉普拉斯高通滤波器.bmp'); figure(5)
imshow(abs(255.*G./max(max(G)))); title('滤波后图像的傅里叶谱');
imwrite(abs(255.*G./max(max(G))),'test4拉普拉斯高通滤波后的傅里叶谱.bmp');
laplacian_hp_guiyihua.m(题目3拉普拉斯高通滤波器(进行归一化处理)) I=imread('test4 copy.bmp'); figure(1); imshow(I);
title('test4 copy.bmp原始图像'); imwrite(I,'test4 copy原始图像.bmp'); f=double(I); F=fft2(f); F=fftshift(F); [P,Q]=size(F); c=1; for u=1:P
for v=1:Q
D(u,v)=sqrt((u-fix(P/2))^2+(v-fix(Q/2))^2); H(u,v)=c*4*pi^2*D(u,v)^2; F2(u,v)=H(u,v)*F(u,v); end end
f2=ifftshift(F2); f2=ifft2(f2); f2=uint8(real(f2)); figure(2); imshow(f2);
title('test4 copy.bmp的拉普拉斯图像'); imwrite(f2,'test4 copy的拉普拉斯图像.bmp'); %归一化
maxf2=max(max(real(f2))); for u=1:P for v=1:Q
g(u,v)=f(u,v)+f2(u,v)/maxf2; end end
g=uint8(real(g)); figure(3); imshow(g);
title('test4 copy.bmp经拉普拉斯滤波后的图像'); imwrite(g,'test4 copy经拉普拉斯滤波后的图像.bmp'); %绘制频谱图(显示为图像) figure(4)
imshow(abs(255.*F./max(max(F)))); title('测试图像的傅里叶谱');
imwrite(abs(255.*F./max(max(F))),'test34的傅里叶谱.bmp'); figure(5);
imshow(abs(255.*H./max(max(H)))); title('显示为图像的拉普拉斯滤波器');
imwrite(abs(255.*H./max(max(H))),'拉普拉斯高通滤波器.bmp'); G=fft2(g); G=fftshift(G); figure(6)
imshow(abs(255.*G./max(max(G)))); title('滤波后图像的傅里叶谱');
imwrite(abs(255.*G./max(max(G))),'test4拉普拉斯高通滤波后的傅里叶谱.bmp');
unmask_hp.m(题目3unmask高通滤波器) I=imread('test4 copy.bmp');
figure(1); imshow(I);
title('test4 copy.bmp原始图像'); imwrite(I,'test4 copy原始图像.bmp'); f=double(I); F=fft2(f); F=fftshift(F); [P,Q]=size(F); k1=1;k2=1;D0=100; %unmask中使用高斯高通滤波器 for u=1:P for v=1:Q
D(u,v)=sqrt((u-fix(P/2))^2+(v-fix(Q/2))^2); H(u,v)=1-exp(-D(u,v)^2/(2*D0^2)); G(u,v)=(k1+k2*H(u,v))*F(u,v); end end
g=ifftshift(G); g=ifft2(g); g=uint8(real(g)); figure(2) imshow(g);
title('test4 copy.bmp经unmask滤波后');
imwrite(g,'test4 copy经unmask滤波后.bmp'); %绘制频谱图(显示为图像) figure(3)
imshow(abs(255.*F./max(max(F)))); title('测试图像的傅里叶谱');
imwrite(abs(255.*F./max(max(F))),'test4的傅里叶谱.bmp'); figure(4);
imshow(abs(255.*H./max(max(H)))); title('显示为图像的unmask高通滤波器');
imwrite(abs(255.*H./max(max(H))),'unmask高通滤波器.bmp'); figure(5)
imshow(abs(255.*G./max(max(G)))); title('滤波后图像的傅里叶谱');
imwrite(abs(255.*G./max(max(G))),'test4 unmask高通滤波后的傅里叶谱.bmp');