多媒体图像处理第三次实验

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

多媒体与数字图像处理第三次实验图像变换与滤波器设计一、实验目的1.了解傅立叶变换、离散余弦变换及Radon变换在图像处理中的应用2.了解Matlab线性滤波器的设计方法二、实验内容1.傅立叶变换A)傅里叶变换基本操作I=imread('at3_1m4_04.tif');imshow(I);title('源图像');J=fft2(I);figure,imshow(J);title('傅立叶变换');%频移JSh=fftshift(J);figure,imshow(JSh);title('傅立叶变换频移');%直接傅立叶反变换Ji=ifft2(J);figure,imshow(Ji/256);title('直接傅立叶变换');%幅度JA=abs(J);iJA=ifft2(JA);figure,imshow(iJA/256);title('幅度傅立叶反变换');%相位JP=angle(J);iJP=ifft2(JP);figure,imshow(abs(iJP)*100);title('相位傅立叶反变换');B)利用MATLAB软件实现数字图像傅立叶变换的程序I=imread('rice.png');%读入原图像文件imshow(I);%显示原图像fftI=fft2(I);%二维离散傅立叶变换sfftI=fftshift(fftI);%直流分量移到频谱中心RR=real(sfftI);%取傅立叶变换的实部II=imag(sfftI);%取傅立叶变换的虚部A=sqrt(RR.^2+II.^2);%计算频谱幅值A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225;%归一化figure;%设定窗口imshow(A);%显示原图像的频谱C)绘制一个二值图像矩阵,并将其傅立叶函数可视化。f=zeros(30,30);f(5:24,13:17)=1;imshow(f,'notruesize')F=fft2(f);F2=log(abs(F));figure,imshow(F2,[-15],'notruesize');colormap(jet);F=fft2(f,256,256);%零填充为256×256矩阵figure,imshow(log(abs(F)),[-15],'notruesize');colormap(jet);F2=____fftshift(F2)______;%将图像频谱中心由矩阵原点移至矩阵中心figure,imshow(log(abs(F2)),[-15],'notruesize');colormap(jet);D)利用傅立叶变换分析两幅图像的相关性,定位图像特征。读入图像‘eurotext.tif’,抽取其中的字母‘a’。bw=imread('eurotext.tif');a=bw(177:203,424:444);imshow(bw);figure,imshow(a);C=real(ifft2(fft2(bw).*fft2(rot90(a,2),800,1024)));%求相关性figure,imshow(C,[]);thresh=max(C(:));figure,imshow(Cthresh-10)figure,imshow(Cthresh-15)请分析改程序显示图的含义。将有字母的地方擦黑。2.离散余弦变换(DCT)A)使用dct2对图像‘autumn.tif’进行DCT变换。RGB=imread('autumn.tif');imshow(RGB)I=rgb2gray(RGB);%转换为灰度图像figure,imshow(I)J=dct2(I);figure,imshow(log(abs(J)),[]),colormap(jet(64));colorbar;B)将上述DCT变换结果中绝对值小于10的系数舍弃,使用idct2重构图像并与原图像比较。RGB=imread('autumn.tif');I=rgb2gray(RGB);%转换为灰度图像J=dct2(I);figure,imshow(I)K=idct2(J);figure,imshow(K,[0255])J(abs(J)10)=0;%舍弃系数K2=idct2(J);figure,imshow(K2,[0255])C)利用DCT变换进行图像压缩。I=imread('cameraman.tif');I=im2double(I);T=dctmtx(8);B=blkproc(I,[8,8],'P1*x*P2',T,T');mask=[1111000011100000110000001000000000000000000000000000000000000000];B2=blkproc(B,[88],'P1.*x',mask);I2=blkproc(B2,[88],'P1*x*P2',T',T);imshow(I)figure,imshow(I2)3.*Matlab线形滤波器设计采用频率变换方式,通过一维最优波纹FIR滤波器创建二维FIR滤波器)。b=remez(10,[00.40.61],[1100]);%阶次,频率向量,对应的理想幅频响应h=ftrans2(b);[H,w]=freqz(b,1,64,'whole');colormap(jet(64))plot(w/pi-1,fftshift(abs(H)));%使x轴取值0处对应曲线中心figure,freqz2(h,[3232])三、思考题1.傅里叶变换有哪些重要的性质?答:线性性、对称性、相似性、频移性、微分性、积分性、卷积与卷积定理、乘积定理、能量积分。2.简述傅立叶频谱搬移的原理答:傅立叶频谱搬移由傅里叶变化推导出,傅里叶变换简单通俗理解就是把看似杂乱无章的信号考虑成由一定振幅、相位、频率的基本正弦(余弦)信号组合而成,傅里叶变换的目的就是找出这些基本正弦(余弦)信号中振幅较大(能量较高)信号对应的频率,从而找出杂乱无章的信号中的主要振动频率特点。频谱就是时域信号经过傅立叶变换后的复信号。傅立叶变换可以将信号分解成幅值分量和频率分量,进而对时域信号进行频域分析,一个信号的频谱形状不变,只是频谱中的每条谱线从原来频率整体搬移到另一个频率附近。3.简述Fourier系数幅度、相位的物理意义。答:幅度谱,是对信号轮廓和形状的描述;相位谱,是对信号位置的描述。4.图像的二维频谱在显示和处理时应注意什么?答:进行傅里叶变换的图像应该是灰度图形,原rgb彩色图像无法进行相应变换。运用对数形式能增加显示细节,为了便于分析,使用fftshift函数将频谱的零频分量移至频谱的中心。5.简述离散余弦变换(DCT)的原理。答:离散余弦变换相当于一个长度大概是它两倍的离散傅里叶变换,这个离散傅里叶变换是对一个实偶函数进行的,在有些变形里面需要将输入或者输出的位置移动半个单位。DCT变换利用傅立叶变换的性质。采用图像边界褶翻将图像变换为偶函数形式,然后对图像进行二维傅立叶变换,变换后仅包含余弦项,所以称之为离散余弦变换。形态学操作一、实验目的1.了解膨胀和腐蚀的Matlab实现方法2.掌握图像膨胀、腐蚀、开启、闭合等形态学操作函数的使用方法3.了解二进制图像的形态学应用二、实验内容1.图像膨胀A)对包含矩形对象的二进制图像进行膨胀操作。BW=zeros(9,10);BW(4:6,4:7)=1;imshow(BW,'notruesize')se=strel('square',3);%3x3正方形结构元素BW2=imdilate(BW,se);%膨胀操作figure,imshow(BW2,'notruesize')B)改变上述结构元素类型(如:line,diamond,disk等),重新进行膨胀操作。BW=zeros(9,10);BW(4:6,4:7)=1;imshow(BW,'notruesize')se=strel('diamond',3);%3x3diamond形结构元素BW2=imdilate(BW,se);%膨胀操作figure,imshow(BW2,'notruesize')C)对图像‘eurotext.tif’进行上述操作,观察不同结构元素膨胀的效果。BW3=imread('eurotext.tif');imshow(BW3)se2=strel('line',11,90);%11x90线型结构元素BW4=imdilate(BW3,se2);%膨胀操作figure,imshow(BW4)2.图像腐蚀A)对图像‘circbw.tif’进行腐蚀操作。BW1=imread('circbw.tif');se=strel('arbitrary',eye(5));BW2=____imerode(BW1,se)___________;%腐蚀操作imshow(BW1)figure,imshow(BW2)B)对图像‘eurotext.tif’进行腐蚀操作。BW=imread('eurotext.tif');se=______strel('line',8,80)_________;%8x80线型结构元素BW2=________imerode(BW,se)_______;%腐蚀操作imshow(BW)figure,imshow(BW2)3.膨胀与腐蚀的综合使用A)从原始图像‘circbw.tif’中删除电流线,仅保留芯片对象。方法一:先腐蚀(imerode),再膨胀(imdilate);BW1=imread('circbw.tif');imshow(BW1)se=strel('rectangle',[4030]);%选择适当大小的矩形结构元素BW2=____imerode(BW1,se)___________;%先腐蚀,删除较细的直线figure,imshow(BW2)BW3=_____imdilate(BW2,se)__________;%再膨胀,恢复矩形的大小figure,imshow(BW3)方法二:使用形态开启函数(imopen)。BW1=imread('circbw.tif');imshow(BW1)se=strel('rectangle',[4030]);BW2=____imopen(BW1,se);___________;%开启操作figure,imshow(BW2)B)改变结构元素的大小,重新进行开启操作,观察处理结果。se=strel(‘rectangle’,[2010]);se=strel(‘rectangle’,[5040]);C)置结构元素大小为[43],同时观察形态开启(imopen)与闭合(imclose)的效果,总结形态开启与闭合在图像处理中的作用。I=imread('circbw.tif');imshow(I)se=strel('rectangle',[43]);I1=_____imopen(I,se)__________;%开启操作I2=_______imclose(I,se)________;%闭合操作figure,imshow(I1)figure,imshow(I2)D)综合实例I=imread('aeroplane2.jpg');level=graythresh(I);%得到合适的阈值bw=im2bw(I,level);%二值化SE=strel('square',3);%设置膨胀结构元素BW1=imdilate(bw,SE);%膨胀SE1=strel('arbitrary',eye(5));%设置腐蚀结构元素BW2=imerode(bw,SE1);%腐蚀BW3=bwmorph(bw,'open');%开运算BW4=bwmorph(bw,'close');%闭运算imshow(I);figure,imshow(bw);figure,imshow(BW1);figure,imshow(BW2);figure,imshow(BW3);figure,imshow(BW4);三、思考题1.结合实验内容,评价腐蚀运算与膨胀运算的效果。答:腐蚀消除边界点,使边

1 / 30
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功