




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学通信工程应用技术综合训练与实习课程设计说明书 课程设计任务书学生姓名: zhh 专业班级: 通信1002班 指导教师: 徐文君 工作单位: 信息工程学院 题 目: 通信工程应用技术综合训练与实习 初始条件: 1.数字图像处理课程相关知识。 2.Matlab软件的软件编程应用与仿真。要求完成的主要任务: 任务:编程实现一幅图像的平移、镜像、旋转、缩小和放大。要求: 1.给出所用算法的理论依据和必要的推导过程。 2.给出原始图像和处理后的图像。时间安排:序号设 计 内 容所用时间1根据设计任务确定实验方案2天2根据实验条件进行电路的测试,并对结果进行分析7天3撰写课程设计报告1天合 计2周 指导教师签名: 年 月 日 系主任签名: 年 月 日目 录摘 要IAbstractII1 图像的几何变换11.1图像几何变换内容11.2 Matlab仿真使用的主要函数12图像的平移变换32.1图像平移变换原理32.2图像平移变换的matlab实现33图像的镜像变换43.1 图像镜像变换原理53.2 图像镜像变换的matlab实现54图像的旋转变换64.1图像旋转变换原理74.2 图像旋转变换的matlab实现85图像的比例变换95.1 图像比例变换原理105.2 图像比例变换的matlab实现106 心得体会14参考文献15附录16摘 要 图像是对三维实际景物的平面投影,图形图像处理主要是通过计算机对图像进行处理,从而达到预期的效果的技术。为了观测需要,常常需要进行各种不同的几何变换,主要包括图像的平移变换,图像水平、垂直镜像变换,图像旋转变换,图像比例变换。实际上,几何变换不改变像素值,而是改变像素所在的位置。 在图像处理中,可以通过Matlab来实现图像的几何变换,此软件的语法结构简单,并且具有极强的数值计算、图形文字处理、数据分析、图形绘制及图像处理等功能。本次课程设计即是利用Matlab软件编程实现对图像的几何变换。关键字:图像平移、图像镜像变换、图像旋转、图像比例变换、MatlabAbstract Image plane projection of 3D scene is actual, graphic image processing,mainly for image processing by computer, so as to achieve the expected effect of technology. In order to observation, often require a variety of geometric transformations, including the image translation, image level, vertical image transform, image rotation, image scaling. In fact, the geometric transformation does not change the pixel value, but the change of pixel location. In image processing, can be achieved by the Matlab image geometric transformation, the grammatical structure of this software is simple, and has strong numerical calculation, graphics and text processing, data analysis,graphics rendering and image processing etc. The curriculum design is the use of Matlab software programming of geometric transformation of image.Keywords: image translation, mirror image transform, image rotation, image scaling,Matlab191 图像的几何变换1.1图像几何变换内容图像几何变换又称为空间变换,是将一幅图像中的坐标位置映射到另外一幅图像中的新坐标位置。它不改变图像的像素值,只是在图像平面上进行像素的重新安排。通过几何变换,可以根据应用的需要使原图像产生大小、形状和位置等各方面的变化。也就是说,几何变换可以改变像素点所在的几何位置以及图像中各物体之间的空间位置关系,这种运算可以被看成是将各物体在图像内移动,特别是图像具有一定的规律性时,一个图像可以由另一个图像通过做几何变换来产生。几何变换可以分为图像的位置变换(平移、镜像、旋转)、形状变换(放大、缩小和剪切)以及图像的复合变换。图像几何变换的一般表达式为: (1.1)其中(x,y)表示像素点的坐标位置,f(x,y)表示图像像素点(x,y)的灰度值。图像几何变换就是建立一幅图像与其变换后的图像中所有各点之间的映射关系。1.2 Matlab仿真使用的主要函数本次课程设计将利用Matlab实现图像的几何变换,使用到的主要函数有:(1)imread 用于读入图像文件,语法格式如:a=imread(F:gudesi.jpg)(2)imwrite 用于写入图像文件,语法格式如:imwrite(a,F:gudesi.jpg)(3)imshow 用于图像文件的显示,语法格式如:imshow(i) 三种函数的联合应用如下:i=imread(F:gudesi.jpg);imshow(i);%显示图像title(原始图像)%加上图像标题 运行结果为:图1.1 原始图像显示(4)fliplr/flipud 用于实现矩阵的左右/上下翻转,语法格式为:fliplr(X) %使矩阵X沿垂直轴左右翻转; flipud(X) %使矩阵X沿垂直轴上下翻转。(5) imrotate用于对图像进行旋转操作,语法格式为:I = imrotate(A,angle) %将图像A(图像的数据矩阵)绕图像的中心点旋转angle度, 正数表示逆时针旋转,负数表示顺时针旋转,返回旋转后的图像矩阵。以这种格式调用该函数,该函数默认采用最近邻线性插值(Nearest-neighbor interpolation),旋转后的图像超出的部分填充0(黑色)。(6)imresize 用于改变图像的大小缩放,语法格式为: B = imresize(A,m,method) %返回原图A的m倍放大的图像(m小于1时效果是缩小),这里参数method用于指定插值的算法,可选用的值为nearest(最邻近法),bilinear(双线性插值算法),bicubic(双三次插值算法),默认为nearest(最邻近法)。2图像的平移变换2.1图像平移变换原理图像平移是将一幅图像中所有的点都按照指定的平移量在水平、垂直方向移动,平移后的图像与原图像相同。平移后的图像上的每一点都可以在原图像中找到。设(x0,y0)为原图像上的一点,图像水平平移量tx,垂直平移量为ty,则平移后点(x0,y0)的坐标变为(x1,y1)。(x0,y0)与(x1,y1)之间的关系为:x1=x0+tx; (2.1)y1=y0+ty; (2.2)以矩阵的形式表示为: (2.3)它的逆变化: (2.4)即: (2.5)这样,平移后的图像上的每一点都可以在原图像中找到对应的点。例如,对于新图中的(0,0)像素,代入上面的方程组,可以求出对应原图中的像素(-tx,-ty)。如果tx或ty大于0,则(- tx,- ty)不在原图中。对于不在原图中的点,可以直接将它的像素值统一设置为0或则255(对于灰度图就是黑色或白色)。同样,若有点不在原图中,也就说明原图中有点被移出显示区域。如果不想丢失被移出的部分图像,可以将新生成的图像宽度扩大|tx |,高度扩大| ty |。2.2图像平移变换的matlab实现根据图像平移变换原理可知程序实现比较简单,利用matlab实现图像的平移变换的程序如下:%平移变换I=imread(F:gudesi.jpg);figure(1);subplot(2,2,1);imshow(I); title(a) 原始图像)%在原来的结构元素上进行y和x的平移,平移量分别为100,-100%左下平移se1=translate(strel(1),100 -100);%形态学膨胀后J就是平移的结果J1=imdilate(I,se1);subplot(2,2,2);imshow(uint8(J1); title(b)左下平移)%右下平移se2=translate(strel(1),100 100);J2=imdilate(I,se2);subplot(2,2,3);imshow(uint8(J2); title(b)右下平移)%右上平移se3=translate(strel(1),-100 100);J3=imdilate(I,se3);subplot(2,2,4);imshow(uint8(J3); title(b)右上平移)结果为:图2.1 图像的平移实现可以看到程序代码成功实现了图像向不同方向的平移。3图像的镜像变换3.1 图像镜像变换原理图像的镜像变换分为两种:一种是水平镜像,另外一种是垂直镜像。图像的水平镜像操作是将图像的左半部分和右半部分以图像垂直中轴线为中心镜像进行对换;图像的垂直镜像操作是将图像上半部分和下半部分以图像水平中轴线为中心镜像进行对换。设图像高度为Height,宽度为Width,原图中的(,)经过水平镜像后坐标将变为(Width-,),其矩阵表达式为: (3.1)逆运算矩阵表达式为: (3.2) 即 (3.3)同样,(,)经过垂直镜像后坐标将变为(,Height-),其矩阵表达式为: (3.4)逆运算矩阵表达式为: (3.5) 即 (3.6)3.2 图像镜像变换的matlab实现根据图像镜像变换原理可得,利用matlab实现图像的镜像变换的程序:%镜像I=imread(F:gudesi.jpg); figure(2) subplot(2,2,1);imshow(uint8(I); title(a) 原始图像) subplot(2,2,2);imshow(uint8(I); title(b) 原始图像) I=double(I); h=size(I); I_fliplr(1:h(1),1:h(2),1:h(3)=I(1:h(1),h(2):-1:1,1:h(3); %水平镜像变换I1=uint8(I_fliplr); subplot(2,2,3);imshow(I1); title(c) 水平镜像变换) I_flipud(1:h(1),1:h(2),1:h(3)=I(h(1):-1:1,1:h(2),1:h(3); %垂直镜像变换I2=uint8(I_flipud); subplot(2,2,4); imshow(I2);title(d)垂直镜像变换)结果如下:图3.1 图像镜像变换的实现可以看到,程序代码成功实现了图像的镜像变换。4图像的旋转变换 4.1图像旋转变换原理图像的旋转是指以图像中的某一点为原点以逆时针或顺时针方向旋转一定的角度,通常是围绕图像的起始点以逆时针旋转。旋转后,图像的大小一般会改变。这样,就可以利用解析几何的方法来实现图像的旋转。和图像平移一样,既可以把转出显示区域的图像截去,也可以扩大图像范围以显示所有的图像。如下图所示,点(x0,y0)经过旋转度后坐标变成(x1,y1)。图4.1图像旋转示意图 在旋转前: (4.1)旋转后: (4.2) 写成矩阵表达式为: (4.3)其逆运算如下: (4.4) 图像旋转以后因为像素位置不再是整数,会出现空穴的现象(如上图蓝色箭头所示),可以用插值法来解决。所谓插值法就是在判断为空穴的位置上填充一个估计的值。目前常用的方法有最近邻插值法、线性插值法和样条插值法。最近邻插值算法操作简单、运算速度高,但是差值效果较差,生成的图像质量较差,易出现明显的块状效应或图像模糊。样条插值法精确度高,插值后图像质量显著变好,但是样条插值的计算过程复杂,执行时间长,难以实现硬件化。在这里用的是最近邻插值法,操作比较简单对于图像质量显示也较好。最近邻插值法是将空穴像素周围像素的均值作为填充值填在该空穴点中,如: (4.5)其空穴像素点为的周围(上、下、左、右)的像素值为,则该点的像素值,即。 (4.6)4.2 图像旋转变换的matlab实现根据图像旋转变换的原理可得到图像旋转的matlab实现程序为:%旋转变换I=imread(F:gudesi.jpg);x1=imrotate(I,30,nearest,crop);%最邻近法 逆时针旋转30x2=imrotate(I,30,bilinear,crop);%双线性插值法 逆时针旋转30x3=imrotate(I,-30,nearest,crop);%最邻近法 顺时针旋转30x4=imrotate(I,-30,bilinear,crop);%双线性插值法 顺时针旋转30 figure;subplot(3,2,1);imshow(I);title(原始图像) subplot(3,2,2);imshow(I);title(原始图像) subplot(3,2,3);imshow(x1);title(最邻近法 逆时针旋转30) subplot(3,2,4);imshow(x2);title(双线性插值法 逆时针旋转30) subplot(3,2,5);imshow(x3);title(最邻近法 顺时针旋转30) subplot(3,2,6);imshow(x4);title(双线性插值法 顺时针旋转30)结果为: 图4.2 图像的旋转实现 小图状态下看不出两种算法的区别,但是大图状态下可以看出两种算法双线性插值法的效果会好一些。5图像的比例变换5.1 图像比例变换原理上面的几种图像几何变换中都是1:1的变换,而图像的缩放操作将会改变图像的大小,产生的图像中的像素可能在原图中找不到相应的像素点,这样就必须进行近似处理。一般的方法是直接赋值为和它最相近的像素值,也可以通过一些插值算法来计算。下面介绍最邻近算法。假设图像x轴方向缩放比率为fx,y轴方向缩放比率为fy,那么原图中点(x0,y0)对应与新图中的点(x1,y1)的转换矩阵为: (5.1)其逆运算如下: (5.2)即 (5.3)例如,当fx=fy=0.5时,图像被缩放到一半大小,此时缩小后图像中的(0,0)像素对应于原图中的(0,0)像素;(0,1)像素对应于原图中的(0,2)像素;(1,0)像素对应于原图中的(2,0)像素,以此类推。在原图基础上,每行隔一个像素取一点,每隔一行进行操作。其实是将原图每行中的像素重复取值一遍,然后每行重复一次。5.2 图像比例变换的matlab实现根据图像比例变换的原理及相应算法可得到,图像的放大和缩小的matlab实现程序为:%比例变换I=imread(F:gudesi1.jpg); %I为原始图像 b1=imresize(I,2,nearest);b2=imresize(I,2,bilinear);b3=imresize(I,0.5,nearest);b4=imresize(I,0.5,bilinear); figure;imshow(I);title(原始图像) figure;imshow(b1);title(最邻近法 放大2倍) figure;imshow(b2);title(双线性插值法 放大2倍) figure;imshow(b3);title(最邻近法 缩小2倍) figure;imshow(b4);title(双线性插值法 缩小2倍)结果为:图5.1 图像的放大和缩小的原始图像图5.2 图像的放大(最邻近法)图5.3 图像的放大(双线性插值法) 从结果图中可以看到双线性插值法效果并没有最邻近法好,有模糊感觉,这是因为所使用的图像素不是很大。 图5.4 图像的缩小(最邻近法) 图5.5 图像的缩小(双线性插值法) 从结果图中可以看到双线性插值法效果并没有最邻近法好,有模糊感觉,这是因为所使用的图像素不是很大。6 心得体会通过这次通信工程应用技术综合训练与实习的课程设计,让我重新复习了有关于图像处理方面的知识,同时也对于matlab这一功能强大的软件的使用更加的熟练,对于使用matlab进行一定的软件编程也有了很多的进步,能够更加灵活地进行运用。通过这次的课程设计,我对图像几何变换的原理,包括图像的平移变换,图像的水平、垂直镜像翻转,图像的旋转及图像的放大与缩小等原理都有了更清楚的认识,也明白了它们的实现机制。对于使用Matlab去实现数字图像的处理也有了更好的认识。这次课程还使我意识到所有的知识都是需要用实践去帮着理解的,所谓理论指导实践,很好的实践能帮助我们更好地去理解知识,对于知识的掌握更加牢靠。而在复习以前所学知识的同时其实也实现了温故知新,对于旧知识有了新的理解。对于工程实践,要想实现预期的效果,必须明白它实现的机制和相应的算法,只有通过相应的理论来指导,我们才能有所创新,才能有所突破。参考文献1杨杰,黄朝兵.数字图像处理及Matlab实现.北京:电子工业出版社2004年版2郑阿奇,曹戈,赵阳.Matlab实用教程M.北京:电子工业出版社2002年版3张弘.数字图像处理与分析M.北京:机械工业出版社 2005年版4孙兆林.Matlab 6.X图像处理M.北京:清华大学出版社 2010年版5美冈萨雷斯.温茨著.数字图像处理.2版.北京:电子工业出版社,2002年版6陈怀琛等编.MATLAB及在电子信息课程中的应用.北京:电子工业出版社,2007年版附录程序代码:clear allclose all%平移变换I=imread(F:gudesi.jpg);figure(1);subplot(2,2,1);imshow(I); title(a) 原始图像)%在原来的结构元素上进行y和x的平移,平移量分别为100,-100%左下平移se1=translate(strel(1),100 -100);%形态学膨胀后J就是平移的结果J1=imdilate(I,se1);subplot(2,2,2);imshow(uint8(J1); title(b)左下平移)%右下平移se2=translate(strel(1),100 100);J2=imdilate(I,se2);subplot(2,2,3);imshow(uint8(J2); title(b)右下平移)%右上平移se3=translate(strel(1),-100 100);J3=imdilate(I,se3);subplot(2,2,4);imshow(uint8(J3); title(b)右上平移) %镜像I=imread(F:gudesi.jpg); figure(2) subplot(2,2,1);imshow(uint8(I); title(a) 原始图像) subplot(2,2,2);imshow(uint8(I); title(b) 原始图像) I=double(I); h=size(I); I_fliplr(1:h(1),1:h(2),1:h(3)=I(1:h(1),h(2):-1:1,1:h(3); %水平镜像变换I1=uint8(I_fliplr); subplot(2,2,3);imshow(I1); title(c) 水平镜像变换) I_flipud(1:h(1),1:h(2),1:h(3)=I(h(1):-1:1,1:h(2),1:h(3); %垂直镜像变换I2=uint8(I_flipud); subplot(2,2,4); imshow(I2);title(d)垂直镜像变换) %旋转变换I=imread(F:gudesi.jpg);x1=imrotate(I,30,nearest,crop);%最邻近法 逆时针旋转30
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC 63522-31:2025 FR Electrical relays - Tests and measurements - Part 31: Magnetic remanence
- 课件河中石兽
- 口腔机构管理培训
- 随机抽查单词课件
- 课件模式设置
- 幼儿美术颜色课件
- 煤矿防疫培训课件
- 课件最后一页文案壁纸
- 课件显示设置
- 广东高数工专自考试题及答案
- 患者走失的护理措施
- 【音乐】七年级开学第一课音乐课件
- 防火防烟分区检查
- 人工智能在智能体育中的应用
- 服装季度分析报告
- 农产品营销的渠道策略讲义
- 工程总承包(EPC)模式市场应用现状
- 食品安全管理制度小卖部
- 初中语文阅读ppt课件ppt
- 建筑垃圾处理及清运方案
- 路边停车经营管理方案
评论
0/150
提交评论