《MATLAB实现图像的平移缩放和旋转》由会员分享,可在线阅读,更多相关《MATLAB实现图像的平移缩放和旋转(30页珍藏版)》请在金锄头文库上搜索。
1、 数字图像处理课 程 设 计 题 目 图像的几何变换重建 系 (部) 信息工程系 班 级 姓 名 学 号 指导教师 2013 年 12 月 16 日至 12 月 27 日 共 2 周2013年 12 月 27 日数字图像处理 课程设计任务书一、设计题目、内容及要求设计题目:图像的几何变换重建1、设计内容:(1)能够读取和存储图像。(2)实现图像的平移、缩放、旋转几何变换。(3)分别采用最近邻插值和双线性插值技术进行图像重建。(4)编写代码实现上述功能。2、设计要求:(1)利用数字图像处理技术,以MATLAB为平台,建立一个实现设计主题的简易处理系统。(2)能显示输入图像、输出图像。(3)不允许
2、直接调用MATLAB工具箱中的几何变换函数。(4)程序代码要有注释说明,调用MATLAB函数要清楚并理解函数的功能、使用范围,在设计说明书中要写清楚函数的功能和参数意义。(5)完成设计说明书一份。二、设计原始资料 MATLAB软件、原始图像。三、要求的设计成果(课程设计说明书、设计实物、图纸等)设计成果为课程设计说明书和程序源代码。每人提交电子版和纸质打印版的设计说明书各一份,电子版以“班级_学号”为名建立文件夹,其中存放电子版课程设计报告和程序源代码。以班为单位刻录光盘一张。四、进程安排第一周:周1 布置设计任务,学生查阅相关资料。 周2熟悉编程语言、确定设计方案。周3-5程序设计、编写代码
3、、上机调试。第二周:周1-2继续编写代码、调试程序,修改并完善设计。周2下午验收程序。周3撰写设计说明书。周4上午提交设计说明书,课程设计答辩。五、主要参考资料1 章毓晋.图像处理和分析教程北京.人们邮电出版社,20092 龚声蓉.数字图像处理与分析. 北京.清华大学出版社,20063 余成波.数字图像处理及MATLAB实现.重庆.重庆大学出版社,20034 姚敏.数字图像处理. 北京 .机械工业出版社,20065 李显宏. MATLAB7.x界面设计与编程技巧.北京. 电子工业出版社,20066 Kenneth R.Castleman著,朱志刚等译,数字图像处理,电子工业出版社,2006指导
4、教师(签名):教研室主任(签名):课程设计成绩评定表 出勤 情况 出勤天数 缺勤天数成绩评定出勤情况及设计过程表现(20分)课设答辩(30分)说明书(20分)设计成果(30分)总成绩(100分)提问(答辩)问题情况综合评定 指导教师签名: 年 月 日目 录1 引言11.1课程设计的目的11.2课程设计的任务21.3课程设计的要求21.4开发工具22设计内容42.1设计内容42.2 系统框图43 设计方案53.1功能模块的划分53.2算法描述53.3实现主要功能的原理和方法83.3.1最近邻域插值法83.3.2双线性插值法84功能模块的具体实现104.1 模块功能104.2流程图114.3程序清
5、单及各模块的实现效果图114.4 系统仿真与调试215 总结与体会22参考文献23附录24 1 引言2设计内容2.1设计内容我选取的是图像的几何变换,设计内容如下,(1)能够读取和存储图像。(2)实现图像的平移、缩放、旋转几何变换。(3)分别采用最近邻插值和双线性插值技术进行图像重建。(4)编写代码实现上述功能。图像几何处理系统2.2 系统框图缩放变换旋转变换平移变换存储双线性插值旋转最邻近插值旋转最邻近插值缩放双线性插值缩放存储存储存储存储图2-1系统框图本次课设所做的图像几何变换包括平移变换、缩放变换和旋转变换。缩放变换和旋转变换均用双线性插值变换和最近邻插值变换两种方法来做,对图像进行处
6、理后再存储。3 设计方案3.1功能模块的划分本次设计整体分为四大模块:原图、平移、缩放和旋转。其中缩放和旋转又分别有双线性插值和最近邻插值两模块。3.2算法描述图像比例缩放是指将给定的图像在x轴方向按比例缩放fx倍,在y轴按比例缩放fy倍,从而获得一幅新的图像。如果fx=fy,即在x轴方向和y轴方向缩放的比率相同,称这样的比例缩放为图像的全比例缩放。如果fxfy,图像的比例缩放会改变原始图象的像素间的相对位置,产生几何畸变。设原图像中的点P0(x0,y0)比例缩放后,在新图像中的对应点为P(x,y),则比例缩放前后两点P0(x0,y0)、P(x,y)之间的关系用矩阵形式可以表示为 (3-1)其
7、逆运算为 (3-2)即 (3-3)比例缩放所产生的图像中的像素可能在原图像中找不到相应得像素点,这样就必须进行插值处理。下面首先讨论图像的比例缩小。最简单的比例缩小时当fx=fy=0.5时,图像被缩到一半大小,此时缩小后图像中的(0,0)像素对应于原图像中的(0,0)像素;(0,1)像素对应于原图像中的(0,2)像素;(1,0)像素对应于原图像中的(2,0)像素,以此类推。图像缩小之后,因为承载的数据量小了,所以画布可相应缩小。此时,只需在原图像基础上,每行隔一个像素取一点,每隔一行进行操作,即取原图的偶奇数行和偶奇数列构成新的图像。如果图像按任意比例缩小,则需要计算选择的行和列。如果MN大小
8、的原图像F(x,y)缩小为kMkN大小的新图像I(x,y)时,则I(x,y)=F(int(cx),int(cy) (3-4)其中,c=1/k。由此公式可以构造出新图像。当fxfy时,图像不按比例缩小,这种操作因为在方向和方向的缩小比例不同,一定会带来图像的几何畸变。图像不按比例缩小的方法是:如果MN大小的旧图F(x,y)缩小为k1Mk2N大小的新图像I(x,y)时,则I(x,y)=F(int(c1x),int(c2y) (3-5)其中c1=1/k1,c2=1/k2,由此公式可以构造出新图像。图像的缩小操作中,是在现有的信息里如何挑选所需要的有用信息。而在图像的放大操作中,则需要对尺寸放大后所多
9、出来的空格填入适当的像素值,这是信息的估计问题,所以较图像的缩小要难一些。当fx=fy=2时,图像被按全比例放大二倍,放大后图像中的(0,0)像素对应于原图中的(0,0)像素;(0,1)像素对应于原图中的(0,0.5)像素,该像素不存在,可以近似为(0,0)也可以近似为(0,1);(0,2)像素对应于原图像中的(0,1)像素;(1,0)像素对应于原图中的(0.5,0),它的像素值近似于(0,0)或(1,0)像素;(2,0)像素对应于原图中的(1,0)像素,依此类推。其实这是将原图像每行中的像素重复取值一遍,然后每行重复一次。按比例将原图像放大k倍时,如果按照最近邻域法则需要将一个像素值添在新图
10、像的kk的子块中。显然,如果放大倍数太大,按照这种方法处理会出现马赛克效应。当时,图像在方向和方向不按比例放大,此时这种操作由于方向和方向的放大倍数不同,一定会带来图像的几何畸变。放大的方法是将原图像的一个像素添到新图像的一个的子块中去。为了提高几何变换后的图像质量,常采用线性插值法。该方法的原理是,当求出的分数地址与像素点不一致时,求出周围四个像素点的距离比,根据该比率,由四个邻域的像素灰度值进行线性插值。旋转。一般图像的旋转是以图像的中心为原点,旋转一定的角度,也就是将图像上的所有像素都旋转一个相同的角度。旋转后图像的的大小一般会改变,即可以把转出显示区域的图像截去,或者扩大图像范围来显示
11、所有的图像。图像的旋转变换也可以用矩阵变换来表示。设点逆时针旋转角后的对应点为。那么,旋转前后点、的坐标分别是: (3-6) (3-7)写成矩阵表达式为 (3-8)其逆运算为 (3-9)利用上述方法进行图像旋转时需要注意如下两点:(1)图像旋转之前,为了避免信息的丢失,一定要有坐标平移。(2)图像旋转之后,会出现许多空洞点。对这些空洞点必须进行填充处理,否则画面效果不好,一般也称这种操作为插值处理。以上所讨论的旋转是绕坐标轴原点(0,0)进行的。如果图像旋转是绕一个指定点(a,b)旋转,则先要将坐标系平移到该点,再进行旋转,然后将旋转后的图象平移回原来的坐标原点,这实际上是图像的复合变换。如将
12、一幅图像绕点(a,b)逆时针旋转度,首先将原点平移到(a,b),即 (3-10)然后旋转 (3-11)然后再平移回来 (3-12)综上所述,变换矩阵为。3.3实现主要功能的原理和方法3.3.1最近邻域插值法最近邻域插值法:它输出的像素灰度值就等于距离它映射到的位置最近的输入像素的灰度值,取离I(i/b,j/a,k)最近的整数点的灰度值为点I(i/b,j/a,k)的灰度值。取最近整数点用四舍五入。在许多情况下,最近邻插值的结果可以令人接受。最邻近点插值取插值点的4个邻点中距离最近的邻点灰度值作为该点的灰度值。设插值点(i,j)到周边4个邻点fk(i,j)(k 1,2,3,4)的距离为dk(k 1
13、,2,3,4),则:g(i,j)fk(i,j),dlmind1,d2,d3,d4,l1,2,3,4。最近邻点插值的一个隐含的假设条件是任一网格点p(x,y)的属性值都使用距它最的位置点的属性值,用每一个网格节点的最邻点值作为待的节点值3。当数据已经是均匀间隔分布,要先将数据转换为SURFER的网格文件,可以应用最近邻点插值法;或者在一个文件中,数据紧密完整,只有少数点没有取值,可用最近邻点插值法来填充无值的数据点。有时需要排除网格文件中的无值数据的区域,在搜索椭圆(SearchEllipse)设置一个值,对无数据区域赋予该网格文件里的空白值。设置的搜索半径的大小要小于该网格文件数据值之间的距离,所有的无数据网格节点都被赋予空白值。在使用最近邻点插值网格化法,将一个规则间隔的XYZ数据转换为一个网格文件时,可设置网格间隔和XYZ数据的数据点之间的间距相等。最近邻点插值网格化法没有选项,它是均质且无变化的,对均匀间隔的数据进行插值很有用,同时,它对填充无值数据的区域很有效。3.3.2双线性插值法双线性插值法:它是