数字图像处理 MATLAB上机作业(DOC)

更新时间:2023-10-04 17:05:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数字图像处理实验报告

指导老师: 学号 姓名 班级

1. 产生右图所示图像f1(m,n),其中图像大小为256×256,中间亮条为128×32,暗处=0,亮处=100。对其进行FFT:

①同屏显示原图f1(m,n)和FFT(f1)的幅度谱图; ②若令f2(m,n)=(-1)(m+n)f1(m,n),重复以上过程, 比较二者幅度谱的异同,简述理由;

③若将f2(m,n)顺时针旋转90度得到f3(m,n),试显示FFT(f3)的幅度谱, 并与FFT(f2)的幅度谱进行比较;

④若将f1(m,n)顺时针旋转90度得到f4(m,n),令f5(m,n)=f1(m,n)+f4(m,n), 试显示FFT(f5)的幅度谱,并指出其与FFT(f1)和FFT(f4)的关系;

⑤若令f6(m,n)=f2(m,n)+f3(m,n),试显示FFT(f6)的幅度谱,并指出其与FFT(f2)和FFT(f3)的关系,比较FFT(f6)和FFT(f5)的幅度谱。

f1=zeros(256,256); for i=64:1:192 for j=122:1:144 f1(i,j)=100; end end

fft_f1=fft2(f1); fft_f1=abs(fft_f1); tmax=fft_f1(1,1); tmin=fft_f1(1,1); for i=1:256 for j=1:256

if tmax

if tmin>fft_f1(i,j) tmin=fft_f1(i,j); end end end

delta=tmax-tmin;

for i=1:256 for j=1:256

fft_f1(i,j)=255*(fft_f1(i,j)-tmin)/delta; end end

subplot(1,2,1); imshow(f1); title('原图'); subplot(1,2,2); imshow(fft_f1); title('原图的幅度谱');

for i=1:256 for j=1:256

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

fft_f2=fft2(f2); fft_f2=abs(fft_f2); tmax=fft_f2(1,1); tmin=fft_f2(1,1); for i=1:256 for j=1:256

if tmax

if tmin>fft_f2(i,j) tmin=fft_f2(i,j); end end end

delta=tmax-tmin;

for i=1:256 for j=1:256

fft_f2(i,j)=255*(fft_f2(i,j)-tmin)/delta; end end

subplot(2,2,1); imshow(f1); title('原图');

subplot(2,2,2); imshow(fft_f1);

title('原图的幅度谱'); subplot(2,2,3); imshow(f2);

title('原图中心化');

subplot(2,2,4); imshow(fft_f2);

title('原图中心化的幅度谱');

f3=imrotate(f2,-90,'bilinear');

fft_f3=fft2(f3); fft_f3=abs(fft_f3); tmax=fft_f3(1,1); tmin=fft_f3(1,1); for i=1:256 for j=1:256

if tmax

if tmin>fft_f3(i,j) tmin=fft_f3(i,j); end end

end

delta=tmax-tmin;

for i=1:256 for j=1:256

fft_f3(i,j)=255*(fft_f3(i,j)-tmin)/delta; end end

subplot(2,2,1); imshow(f2);

title('原图中心化');

subplot(2,2,2); imshow(fft_f2);

title('原图中心化的幅度谱');

subplot(2,2,3); imshow(f3);

title('旋转后的图像');

subplot(2,2,4); imshow(fft_f3); title('旋转后的幅度谱');

图像旋转90度后,幅度谱也旋转了90度。

本文来源:https://www.bwwdw.com/article/88ad.html

Top