第三次实验报告数字图像处理实验 —图像的几何变换
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理实验
—图像得几何变换
姓名:张慧
班级:信息10-1
学号:36号
实验三、图像得几何变换
一、实验目得
1.学习几种常见得图像几何变换,并通过实验体会几何变换得效果;
2.掌握图像平移、剪切、缩放、旋转、镜像、错切等几何变换得算法原理及编程实现
3.掌握matlab编程环境中基本得图像处理函数
4.掌握图像得复合变换
二、实验原理
1初始坐标为(, )得点经过平移(,),坐标变为(,),两点之间得关系为:,以矩阵形式表示为:
2 图像得镜像变换就是以图象垂直中轴线或水平中轴线交换图像得变换,分为垂直镜像变换与水平镜像变换,两者得矩阵形式分别为:
3图像缩小与放大变换矩阵相同:
当时,图像缩小;时,图像放大。
4 图像旋转定义为以图像中某一点为原点以逆时针或顺时针方向旋转一定角度。其变换矩阵为:
该变换矩阵就是绕坐标轴原点进行得,如果就是绕一个指定点()旋转,则现要将坐标系平移到该点,进行旋转,然后再平移回到新得坐标原点。
三、实验步骤
1启动MATLAB程序,对图像文件分别进行平移、垂直镜像变换、水平镜像变换、缩放与旋转操作,与实验箱运行结果进行比对;
2记录与整理实验报告
四、实验程序
X=imread(’E:\test、jpg’);
figure,imshow(X);title('原图')
%缩放
A=[0、5 00;0 2 0;0 0 1];
T=maketform(’affine’,A);
Z=imtransform(X,T);
figure,imshow(Z),title('图像缩放');
%图像旋转
A=[cos(pi/4)sin(pi/4)0;-sin(pi/4)cos(pi/4)0;0 01]; T=maketform(’affine’,A);
Z=imtransform(X,T);
figure,imshow(Z);title('图像旋转');
%水平剪切
A=[10 0;0、5 1 0;0 0 1];
T=maketform('affine’,A);
Z=imtransform(X,T);
figure,imshow(Z);title('水平剪切');
%垂直剪切
A=[10、50;0 1 0;0 0 1];
T=maketform('affine’,A);
Z=imtransform(X,T);
figure,imshow(Z);title(’垂直剪切’);
%水平镜像
A=[-10 0;0 1 0;10 1];
T=maketform('affine’,A);
Z=imtransform(X,T);
figure,imshow(Z);title('水平镜像');
%垂直镜像
A=[1 00;0 —1 0;0 11];
T=maketform('affine',A);
Z=imtransform(X,T);
figure,imshow(Z);title('垂直镜像');
五、实验结果图
原图图像缩放
图像旋转
水平剪切
垂直剪切
水平镜像
垂直镜像
六、结果分析
1.图像得平移。经典得图像平移有两种算法,一种不会改变图像大小,另一种可以相应扩大图像。本程序采用了第一种算法。为了使图像能按照用户指定得水平平移量与垂直平移量移动,作者首先定义了一个参数设定窗,并在图像平移菜单得事件处理函数中对此对话框进行定义,获取平移量。然后调用图像平移函数,从而实现将图像中所有得点(像素)都按照指定得平移量水平、垂直移动,平移后得图像上得每一点都可以在原图像中找到对应得点。
2。图像得镜像。图像得水平镜像操作就是将图像得左半部分与右半部分以图像垂直中轴线为中心镜像进行对换;图像得垂直镜像操作就是将图像上半部分与下半部分以图像水平中轴线镜像进行对换。可以一个个像素进行镜像,也可以利用位图存储得连续性进行整行复制。对于水平镜像作者采用前者,而垂直镜像采用后者,对两种方法都进行了尝试。
3.图像得转置。即将图像像素得x坐标与y坐标互换。它与图像得镜像变换类似,不同之处在于图像转置后DIB得头文件也要进行相应得改变,即更新宽度与高度信息。因此传递给图像转置函数得参数就是直接指向DIB得指针,而不就是直接指向DIB像素得指针.程序首先一个个像素进行转置复制,然后互换DIB中图像得高宽,实现图像转置得功能。
4。图像得缩放。程序将图像按用户设定得X轴方向得缩放比率与Y轴方向得缩放比率进行缩放。此操作产生得图像中得像素可能在原图中找不到相应得像素点,因此必须进行近似处理。此处理有多种方法,可以采用最邻近插值算法,也可以采用别得插值算法。后者处理效果要好一些,但就是运算量也相应增加很多,因此本程序采用前者,即最邻近插值算法.最后,由于缩放改变了图像得高度与宽度,因此还需要对DIB头文件得高度与宽度信息进行更新。
5.图像得旋转.程序将图像以图像中心为原点,按照用户设定得旋转角度进行旋转.与图像得平移一样,可以采用不同得算法,既可以把转出显示区域得部分图像截去,也可以扩大图像范围以显示所有图像,在本程序中采用后者.同时为了减小运算量,将图像以图像中心为坐标系原点进行旋转,而不就是用户指定得任意一点。