西安电子科技大学数字图像处理上机实验题李XX2018-12-161数字图像处理上机实验题1.产生右图所示图像f1(m,n),其中图像大小为256×256,中间亮条为128×32,暗处=0,亮处=100。对其进行FFT:(matlab程序附于文末附录)①同屏显示原图f1(m,n)和FFT(f1)的幅度谱图;②若令f2(m,n)=(-1)m+nf1(m,n),重复以上过程,比较二者幅度谱的异同,简述理由;结论:相同点:图像f1,f2的幅度谱的实质没有改变,幅度等都没有发生变化。不同点:f2的频谱是对f1频谱的移位,它是f1的频谱从原点(0,0)移动到中心点(64,64)得到的频谱。原因:f2图像是对f1图像做频谱中心化变换得来的,这一过程不改变图像的幅度等特性。③若将f2(m,n)顺时针旋转90度得到f3(m,n),试显示FFT(f3)的幅度谱,并与FFT(f2)的幅度谱进行比较;结论:由图可知,FFT(f3)的幅度谱是由FFT(f2)的幅度谱顺时针旋转90度得到的。④若将f1(m,n)顺时针旋转90度得到f4(m,n),令f5(m,n)=f1(m,n)+f4(m,n),试显示FFT(f5)的幅度谱,并指出其与FFT(f1)和FFT(f4)的关系;结论:FFT(f5)的幅度谱是FFT(f1)和FFT(f4)幅度谱2叠加的结果。⑤若令f6(m,n)=f2(m,n)+f3(m,n),试显示FFT(f6)的幅度谱,并指出其与FFT(f2)和FFT(f3)的关系,比较FFT(f6)和FFT(f5)的幅度谱。结论:FFT(f6)的幅度谱是FFT(f2)和FFT(f3)幅度谱叠加的结果。FFT(f6)是FFT(f5)频谱中心化的结果。2.产生教材104页题图4.18(右图)所示的二值图像(白为1,黑为0),编程实现习题4.18所要求的处理(3×3的平均滤波和中值滤波)功能(图像四周边界不考虑,处理结果按四舍五入仍取0或1),显示处理前后的图像,比较其异同。(matlab程序附于文末附录)结论:图像fa的平均滤波图像和平均加权图像与原图像相同;fb的平均滤波图像的处理点在白、黑块组成的4块交界处时,由于窗内1值点等于0值点个数,0值点的值变为1,形成如图所示图像,加权平均滤波图像与原图像相同。3.产生教材104页题图4.16所示的灰度图像(白为255,黑为0),分别加入高斯白噪声和椒盐噪声,再分别进行3×3的平均滤波和中值滤波,显示原图像、加噪图像和滤波结果图像,并比较四种滤波结果。(matlab程序附于文末附录)3结论:由图可知,对于加高斯白噪声后的图像,平均滤波后对噪声的滤除总体上效果好,但在局部边缘处存在误将噪声当作图像保留和误将图像细节当作噪声滤除的现象;中值滤波则对图像的边缘信息保留的较好,但总体滤除效果不佳。对于加椒盐噪声后的图像,平均滤波后在图像边缘上的损失较多,相对的,中值滤波后边缘信息损失较少。4.对某一灰度图像,进行如下处理:(matlab程序附于文末附录)(1)分别利用Roberts、Prewitt和Sobel边缘检测算子进行边缘检测;本题选取此图片进行处理。4(2)将Roberts、Prewitt和Sobel边缘检测算子修改为锐化算子,对原图像进行锐化,同屏显示原图像、边缘检测结果和锐化后图像,说明三者之间的关系。结论:Roberts边缘检测算子获得的边缘效果较差,把一些边缘也剔除掉了。Prewitt边缘检测算子获得的边缘要好于Roberts算子,但仍有部分边缘被剔除。Sobel边缘检测算子相较于Prewitt算子主要是对噪声的抑制能力增强,由于此处原图像没有噪声,所以对比不明显。5每种算子的锐化结果是将其检测到的边缘相应加强的结果。5、编程实现教材214页所给图像门限化分割的迭代阈值算法,实现对某一灰度图像的二值化。(matlab程序附于文末附录)所有题目的matlab程序皆附于文末附录。附录题目1matlab程序:closeall;clear;f1=zeros(256,256);f2=zeros(256,256);form=64:1:192forn=112:1:144f1(m,n)=100/255;f2(m,n)=(-1)^(m+n)*100/255;endend%figure%imshow(f1)f3=imrotate(f2,-90,'nearest');f4=imrotate(f1,-90,'nearest');f5=f1+f4;f6=f2+f3;%FFT变换fft_f1=log(1+abs(fft2(f1)));fft_f2=log(1+abs(fft2(f2)));fft_f3=log(1+abs(fft2(f3)));fft_f5=log(1+abs(fft2(f5)));fft_f6=log(1+abs(fft2(f6)));%显示图像figuresubplot(1,2,1);imshow(f1);title('f1的图像');subplot(1,2,2);imshow(fft_f1,[]);title('FFT(f1)的幅度频谱');1figuresubplot(1,2,1);imshow(f2);title('f2的图像');subplot(1,2,2);imshow(fft_f2,[]);title('FFT(f2)的幅度频谱');figuresubplot(1,2,1);imshow(fft_f2,[]);title('FFT(f2)的幅度频谱');subplot(1,2,2);imshow(fft_f3,[]);title('FFT(f3)的幅度频谱');figureimshow(fft_f5,[]);title('FFT(f5)的图像');figureimshow(fft_f6,[]);title('FFT(f6)的图像');题目2matlab程序:clear;closeall;fb=zeros(64,64);fa=[ones(64,32),zeros(64,32)];form=1:8:64forn=1:8:64fb(m:m+7,n:n+7)=1/2*(1+(-1)^(floor(m/8)+floor(n/8)))*ones(8,8);end2end%3×3平均模板W1=1/8*[111;101;111];%平均滤波模板fa_avefilter=fa;fb_avefilter=fb;form=2:1:63forn=2:1:63fa_avefilter(m,n)=round(W1(1,1)*fa(m-1,n-1)+W1(1,2)*fa(m-1,n)+W1(1,3)*fa(m-1,n+1)...+W1(2,1)*fa(m,n-1)+W1(2,2)*fa(m,n)+W1(2,3)*fa(m,n+1)...+W1(3,1)*fa(m+1,n-1)+W1(3,2)*fa(m+1,n)+W1(3,3)*fa(m+1,n+1));fb_avefilter(m,n)=round(W1(1,1)*fb(m-1,n-1)+W1(1,2)*fb(m-1,n)+W1(1,3)*fb(m-1,n+1)...+W1(2,1)*fb(m,n-1)+W1(2,2)*fb(m,n)+W1(2,3)*fb(m,n+1)...+W1(3,1)*fb(m+1,n-1)+W1(3,2)*fb(m+1,n)+W1(3,3)*fb(m+1,n+1));endendW2=1/9*[111;111;111];%加权平均滤波模板fa_whtavefilter=fa;fb_whtavefilter=fb;form=2:1:63forn=2:1:63fa_whtavefilter(m,n)=round(W2(1,1)*fa(m-1,n-1)+W2(1,2)*fa(m-1,n)+W2(1,3)*fa(m-1,n+1)...+W2(2,1)*fa(m,n-1)+W2(2,2)*fa(m,n)+W2(2,3)*fa(m,n+1)...+W2(3,1)*fa(m+1,n-1)+W2(3,2)*fa(m+1,n)+W2(3,3)*fa(m+1,n+1));fb_whtavefilter(m,n)=round(W2(1,1)*fb(m-1,n-1)+W2(1,2)*fb(m-1,n)+W2(1,3)*fb(m-1,n+1)...+W2(2,1)*fb(m,n-1)+W2(2,2)*fb(m,n)+W2(2,3)*fb(m,n+1)...+W2(3,1)*fb(m+1,n-1)+W2(3,2)*fb(m+1,n)+W2(3,3)*fb(m+1,n+1));endend%中值滤波fa_midfilter=fa;fb_midfilter=fb;form=2:1:63forn=2:1:633fa_midfilter(m,n)=mid([fa(m-1,n-1),fa(m-1,n),fa(m-1,n+1),fa(m,n-1),fa(m,n),fa(m,n+1),fa(m+1,n-1),fa(m+1,n),fa(m+1,n+1)]);fb_midfilter(m,n)=mid([fb(m-1,n-1),fb(m-1,n),fb(m-1,n+1),fb(m,n-1),fb(m,n),fb(m,n+1),fb(m+1,n-1),fb(m+1,n),fb(m+1,n+1)]);endendfigure(1)subplot(1,2,1);imshow(fa);title('fa的图像');subplot(1,2,2);imshow(fb);title('fb的图像');figure(2)subplot(1,2,1);imshow(fa_avefilter);title('fa的平均滤波图像');subplot(1,2,2);imshow(fb_avefilter);title('fb的平均滤波图像');figure(3)subplot(1,2,1);imshow(fa_whtavefilter);title('fa的加权平均滤波图像');subplot(1,2,2);imshow(fb_whtavefilter);title('fb的加权平均滤波图像');figure(4)subplot(1,2,1);imshow(fa_midfilter);title('fa的中值滤波图像');4subplot(1,2,2);imshow(fb_midfilter);title('fb的中值滤波图像');functionMID=mid(F)N=length(F);%冒泡排序fori=1:1:Nforj=i:1:Nif(F(i)F(j))tmp=F(i);F(i)=F(j);F(j)=tmp;endendendMID=F(round(N/2));end问题3matlab程序:closeall;clear;f=zeros(256,256);form=28:24:220f(23:233,m:m+7)=1;end%高斯白噪声guass_noise=0.2*randn(size(f));f_gn=f+guass_noise;%椒盐噪声f_pep=f;k1=0.1;k2=0.3;a1=rand(size(f))k1;a2=rand(size(f))k2;f_pep(a1&a2)=0;5f_pep(a1&~a2)=1;%3×3平均滤波W1=1/8*[111;101;111];f_gn_avefilter=f_gn;f_pep_avefilter=f_pep;form=2:1:255forn=2:1:255f_gn_avefilter(m,n)=round(W1(1,1)*f_gn(m-1,n-1)+W1(1,2)*f_gn(m-1,n)+W1(1,3)*f_gn(m-1,n+1)...+W1(2,1)*f_gn(m,n-1)+W1(2,2)*f_gn(m,n)+W1(2,3)*f_gn(m,n+1)...+W1(3,1)*f_gn(m+1,n-1)+W1(3,2)*f_gn(m+1,n