数字图像处理上机实验题一、产生右图所示图像f1(m,n),其中图像大小为256×256,中间亮条为128×32,暗处=0,亮处=100。
对其进行FFT:1、屏显示原图f1(m,n)和FFT(f1)的幅度谱图;2、令f2(m,n)=(-1)^(m+n)*f1(m,n),重复以上过程,比较二者幅度谱的异同,简述理由;3、若将f2(m,n)顺时针旋转90 度得到f3(m,n),试显示FFT(f3)的幅度谱,并与FFT(f2)的幅度谱进行比较;4、若将f1(m,n) 顺时针旋转90 度得到f4(m,n),令f5(m,n)=f1(m,n)+f4(m,n),试显示FFT(f5) 的幅度谱,并指出其与FFT(f1)和FFT(f4)的关系;5、若令f6(m,n)=f2(m,n)+f3(m,n),试显示FFT(f6)的幅度谱,并指出其与FFT(f 2)和FFT(f3) 的关系,比较FFT(f6)和FFT(f5)的幅度谱。
代码f1=zeros(256,256);for i =64:1:191for j = 112:1:143f1(i,j) = 100;endendf2 = fft2(f1);%f2(m,n) = f3f3 = ((-1)^(i+j))*f1;f4 = fft2(f3);%f3(m,n) = f5f5 = imrotate(f3,90,'bilinear');f6 = fft2(f5);%f4(m,n) = f7f7 = imrotate(f1,90,'bilinear');f8 = fft2(f7);%f5(m,n) = f8f9 = f1 + f7;f10 = fft2 (f9);%f6(m,n) = f2(m,n)+f3(m,n)f11 = f3 + f5;f12 = fft2(f11);figure(1)subplot(1,2,1);imshow(abs(f1));title('原图f1');subplot(1,2,2);imshow(abs(f2));title('幅度谱fft2(f1)');figure(2)subplot(2,2,1)imshow(abs(f1));title('原图f1')subplot(2,2,2)imshow(abs(f2));title('幅度谱fft2(f1)'); subplot(2,2,3);imshow(abs(f3))title('变换谱f2');subplot(2,2,4);imshow(abs(f4));title('幅度谱fft2(f2)'); figure(3)subplot(2,2,1)imshow(abs(f3))title('变换谱f2');subplot(2,2,2);imshow(abs(f4));title('幅度谱fft2(f2)'); subplot(2,2,3);imshow(abs(f5))title('变换谱f3');subplot(2,2,4);imshow(abs(f6));title('幅度谱fft2(f3)'); figure(4)subplot(3,2,1);imshow(f7);title('f1旋转图f4'); subplot(3,2,2);imshow(abs(f8));title('幅度谱fft2(f4)'); subplot(3,2,3);imshow(f9);title('f5(m,n)=f1+f4'); subplot(3,2,4);imshow(abs(f10));title('幅度谱fft2(f5)'); subplot(3,2,5)imshow(abs(f1));title('原图f1');subplot(3,2,6);imshow(abs(f2));title('幅度谱fft2(f1)');figure(5)subplot(3,2,1)imshow(abs(f3))title('变换谱f2');subplot(3,2,2);imshow(abs(f4));title('幅度谱fft2(f2)'); subplot(3,2,3);imshow(abs(f5))title('变换谱f3');subplot(3,2,4);imshow(abs(f6));title('幅度谱fft2(f3)'); subplot(3,2,5)imshow(abs(f11))title('变换谱f6=f2+f3'); subplot(3,2,6);imshow(abs(f12));title('幅度谱fft2(f6)');figure(6)subplot(2,2,1);imshow(f9);title('f5(m,n)=f1+f4'); subplot(2,2,2);imshow(abs(f10));title('幅度谱fft2(f5)'); subplot(2,2,3)imshow(abs(f11))title('变换谱f6(m,n)=f2+f3'); subplot(2,2,4);imshow(abs(f12));title('幅度谱fft2(f6)');结果分析2、F2(m,n)与F1(m,n)幅度值相同,f2(m,n)=(-1)^(m+n)*f1(m,n)中,并未改变幅值。
3、FFT(f2) 比FFT(f3)幅值大。
4、f5=f1+f4,即幅值相加。
5、f6=f2+f3,即幅值相加。
二、产生教材104 页题图 4.18 (右图)所示的二值图像(白为1,黑为0),编程实现习题4.18 所要求的处理(3*3 的平均滤波和中值滤波)功能(图像四周边界不考虑,处理结果按四舍五入仍取(0或1),显示处理前后的图像,比较其异同。
代码I=[ 1,0,1,0,1,0,1,0;0,1,0,1,0,1,0,1;1,0,1,0,1,0,1,0;0,1,0,1,0,1,0,1;1,0,1,0,1,0,1,0;0,1,0,1,0,1,0,1;1,0,1,0,1,0,1,0;0,1,0,1,0,1,0,1;];J=imhist(I,2);K=filter2(fspecial('average',3),I);K1=round(K);J1=imhist(K1,2);K2=medfilt2(I);J2=imhist(K2,2);figure(1)subplot(2,2,1)imshow(I);title('原图像');subplot(2,2,2)imshow(J);title('原图像直方图');subplot(2,2,3)imshow(K1);title('3*3领域平均');subplot(2,2,4)imshow(J1);title('领域平均图像直方图')figure(2)subplot(2,2,1)imshow(I);title('原图像');subplot(2,2,2)imshow(J);title('原图像直方图'); subplot(2,2,3)imshow(K2);title('中值滤波');subplot(2,2,4)imshow(J2);title('中值滤波图像直方图')结果三、产生教材104 页题图4.16 所示的灰度图像(白为255 ,黑为0),分别加入高斯白噪声和椒盐噪声,再分别进行3´3 的平均滤波和中值滤波,显示原图像、加噪图像和滤波结果图像,并比较四种滤波结果。
代码f=zeros(256,256);for i =23:1:233for j=28:1:35f(i,j)=255;endfor j=52:1:59f(i,j)=255;endfor j=76:1:83f(i,j)=255;endfor j=100:1:107f(i,j)=255;endfor j=124:1:131f(i,j)=255;endfor j=148:1:155f(i,j)=255;endfor j=172:1:179f(i,j)=255;endfor j=196:1:203f(i,j)=255;endfor j=220:1:227f(i,j)=255;endendg=imnoise(f,'gaussian',0.2);s=imnoise(f,'salt & pepper',0.2);k1=filter2(fspecial('average',3),g); G1=round(k1);G2=medfilt2(g);k2=filter2(fspecial('average',3),s); S1=round(k2);S2=medfilt2(s);figure(1)imshow(f)title('Ô-ʼͼÏñ');figure(2)subplot(3,2,1)imshow(g)title('¸ß˹ͼÏñ');subplot(3,2,2)imshow(s)title('½·ÑÎͼÏñ');subplot(3,2,3)imshow(G1)title('ƽ¾ùÂ˲¨¸ß˹ͼÏñ');subplot(3,2,5)imshow(G2)title('ÖÐÖµÂ˲¨¸ß˹ͼÏñ');subplot(3,2,4)imshow(S1)title('ƽ¾ùÂ˲¨½·ÑÎͼÏñ');subplot(3,2,6)imshow(S2)title('ÖÐÖµÂ˲¨½·ÑÎͼÏñ');结果四、对某一灰度图像,进行如下处理:(1)分别利用Roberts、Prewitt和Sobel 边缘检测算子进行边缘检测;(2)将Roberts、Prewitt和Sobel 边缘检测算子修改为锐化算子,对原图像进行锐化,同屏显示原图像、边缘检测结果和锐化后图像,说明三者之间的关系。