图像变换实验报告

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

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

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

资源描述

实验三图像变换一、实验目的1、结合实例学习几种常见的图像变换,并通过实验体会图像变换的效果;2、理解和掌握图像旋转、缩放、离散傅里叶变换和离散余弦变换的原理和应用,掌握利用MATLAB编程实现图像变换的方法。二、实验内容1、图像的几何变换,主要实现图像的缩放与旋转,要求变换中用最近邻插值算法实现,或用双线性变换法实现并比较;2、图像的正交变换,主要实现离散傅里叶变换(DFT)与离散余弦变换(DCT)。三、实验要求1、独立完成;2、编写MATLAB程序,并对程序中所调用函数的功能进行必要的说明(可用“help函数名”进行查询);3、调试运行后保存实验结果(注意保存的文件格式);4、完成实验报告。四、实验原理(一)图像的几何运算(变换)1、比例缩放比例缩放是指将给定的图像在x轴方向按比例缩放fx倍,在y轴方向按比例缩放fy倍,从而获得一副新的图像。在MATLAB中,进行图像比例缩放的函数是imresize,它的常见调用方法如下:B=imresize(A,scale)B=imresize(A,[mrowsncols])B=imresize(A,scale,method)其中,A是要进行缩放的图像矩阵,scale是进行缩放的倍数,如果scale小于1,则进行缩小操作,如果scale大于1,则进行放大操作。[mrowsncols]用于指定缩放后图像的行数和列数,method用于指定的图像插值方法,有nearest、bilinear、bicubic等算法。2、图像旋转一般的旋转是以图像的中心为原点,将图像上的所有像素都旋转一个相同的角度。在MATLAB中,进行图像旋转的函数是imrotate,它的常见调用方法如下:B=imrotate(A,angle)B=imrotate(A,angle,method)B=imrotate(A,angle,method,bbox)其中,A是要旋转的图像,angle是旋转的角度;method是插值方法,可以为nearest、bilinear、bicublic等;bbox是指旋转后的显示方式,有两种选择,一种是crop,旋转后的图像效果跟原图像一样大小,一种是loose,旋转后的图像包含原图。(二)图像的正交变换1、离散傅里叶变换(DFT)设f(x,y)是在空间域上等间隔采样得到的M×N的二维离散信号,x和y是离散实变量,u和v为离散频率变量,则二维离散傅里叶变换对一般地定义为:𝐹(𝑢,𝑣)=√1𝑀𝑁∑∑𝑓(𝑥,𝑦)exp𝑁−1𝑦=0𝑀−1𝑥=0[−𝑗2𝜋(𝑥𝑢𝑀+𝑦𝑣𝑁)](u=0,1,…,M-1;v=0,1,…,N-1)𝑓(𝑥,𝑦)=√1𝑀𝑁∑∑𝐹(𝑢,𝑣)exp𝑁−1𝑣=0𝑀−1𝑢=0[𝑗2𝜋(𝑥𝑢𝑀+𝑦𝑣𝑁)](x=0,1,…,M-1;y=0,1,…,N-1)傅里叶变换有快速算法FFT,使用FFT可以快速提高傅里叶变换的速度。MATLAB工具箱中有常见的傅里叶变换函数和反变换函数。𝑌=𝑓𝑓𝑡2(𝑋)𝑌=𝑓𝑓𝑡2(𝑋,𝑚,𝑛)𝑌=𝑖𝑓𝑓𝑡2(𝑋)𝑌=𝑖𝑓𝑓𝑡2(𝑋,𝑚,𝑛)以正变换为例,X是要进行二维傅里叶变换的矩阵,m、n是返回的变换矩阵Y的行数和列数,如果m、n大于X的维数,则在Y相应的位置补0。𝑌=𝑓𝑓𝑡𝑠ℎ𝑖𝑓𝑡(𝑋)把傅里叶变换操作得到的结果中零频率成分移到矩阵的中心,这有利于观察频谱。2、离散余弦变换(DCT)二维正DCT表示形式为:𝐹(0,0)=1𝑁∑∑𝑓(𝑥,𝑦)𝑁−1𝑦=0𝑁−1𝑥=0𝐹(𝑢,0)=√2𝑁∑∑𝑓(𝑥,𝑦)cos[𝜋(2𝑥+1)𝑢2𝑁](𝑢≠0)𝑁−1𝑦=0𝑁−1𝑥=0𝐹(0,𝑣)=√2𝑁∑∑𝑓(𝑥,𝑦)cos[𝜋(2𝑥+1)𝑣2𝑁](𝑣≠0)𝑁−1𝑦=0𝑁−1𝑥=0𝐹(𝑢,𝑣)=2𝑁∑∑𝑓(𝑥,𝑦)cos[𝜋(2𝑥+1)𝑢2𝑁]cos[𝜋(2𝑥+1)𝑣2𝑁]𝑁−1𝑦=0𝑁−1𝑥=0其中,f(x,y)是二维空间向量元素,F(u,v)是变换系数矩阵之元素。在MATLAB中,提供两种进行图像处理的DCT变换函数:B=dct2(A)B=dct2(A,[m,n])B=dct2(A,[mn])其中,A是输入的图像,B是返回的DCT的变换系数,m、n分别是返回的DCT变换系数B的行数和列数。B=idct2(A)idct2用于计算二维离散余弦逆变换,是dct2的逆变换,其调用格式与dct2函数相同。五、实验步骤(一)图像的几何变换1、编写MATLAB文件,读取索引图像文件“rice.png”,分别执行以下操作:(1)放大0.2倍;(2)放大8倍,并用最近邻插值算法进行插值;(3)放大8倍,并用双线性变换法进行插值;(4)在一幅图上显示原图、以及(1)~(3)的结果图像。2、编写MATLAB文件,读取索引图像文件“cameraman.tif”,分别执行以下操作:(1)顺时针旋转45°;(注意角度正负)(2)使用crop方式显示旋转后的图像;(3)使用loose方式显示旋转后的图像;(4)在一幅图上显示原图、以及(1)~(3)的结果图像。(二)图像的正交变换1、编写MATLAB文件,生成一个矩形函数,并对该函数进行正交变换,(1)一般离散FT;(2)补零后的离散FT;(3)频率原点平移后的FT;(4)在一幅图上显示原图、以及(1)~(3)的结果图像。2、编写MATLAB文件,读取图像文件“autumn.tif”,并对该函数进行正交变换,(1)将彩色图像转变为灰度图像;(2)离散DCT;(3)将幅值小于10的DCT系数置为零后进行反DCT;(4)在一幅图上显示原图、以及(1)~(3)的结果图像。并给DCT结果添加颜色条。(三)选做实验:频域滤波1、编写MATLAB文件,读取数字图像“saturn.tif”,用巴特沃斯滤波器去除图像中的椒盐噪声。(1)添加椒盐噪声imnoise(I);(2)傅里叶变换;(3)频率原点平移后的FT;(4)用巴特沃斯滤波器去除椒盐噪声;(5)在一幅图上显示(1)~(4)的结果图像。六、实验结果与分析(一)图像的几何变换1、图像的缩放与插值通过放大0.2倍(缩小)的图像可以看到因为丢点操作在显示时大小不变导致图像模糊,像素分块明显。在使用最近邻插值算法进行插值放大8倍后,因为每个原像素原封不动地复制映射到对应的像素中,虽然在放大图像的同时保留了所有的原图像信息,但是产生了锯齿现象。在使用双线性变换法进行插值放大8倍的图像中,相较于上一张更加平滑,但是图像变得有些模糊,细节方面不明显了。2、图像旋转通过两种方式旋转后的图像可以看到,crop方式是对旋转后的图像进行了裁剪,保持输出图像与输入图像的尺寸一致,loose方式保证了旋转之后得到的图片还是完整。(二)图像的正交变换1、编写MATLAB文件,生成一个矩形函数,并对该函数进行正交变换:傅里叶变换的物理意义是将图像的灰度分布函数变换为频率分布函数,通过二维快速傅里叶变换后的图像的四个角对应低频成分,中央对应的是高频成分,能量沿着垂直和水平分布对应的是图像中的矩形窗;补零变换后的图像克服了栅栏效应和频率泄露带来的频率辨认困难问题;离散傅里叶变换变换结果是关于原点对称的两个半周期,通过中心频移显示完全的周期。2、编写MATLAB文件,读取图像文件并对该函数进行正交变换:通过离散余弦变换可以看到图像的重要可是信息都集中在DCT变换的左上角一小部分系数中,其余大部分接近零,将幅值小于10的DCT系数置为零后进行反DCT得到的压缩的图像,比较变换前后的图像,可以发现视觉效果相差很小,压缩的效果比较理想。(三)选做实验:频域滤波因为Butterworth低通滤波器在带通和带阻之间有平滑的过渡带,高频信号没有完全滤除,在抑噪效果良好的同时,图像变得更加模糊了。

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

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

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

×
保存成功