图像变换实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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