数字图像处理与深度学习技术应用教材配套课件 第4章 图像几何变换_第1页
数字图像处理与深度学习技术应用教材配套课件 第4章 图像几何变换_第2页
数字图像处理与深度学习技术应用教材配套课件 第4章 图像几何变换_第3页
数字图像处理与深度学习技术应用教材配套课件 第4章 图像几何变换_第4页
数字图像处理与深度学习技术应用教材配套课件 第4章 图像几何变换_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章图像几何变换杨淑莹本章目录4.1仿射变换4.1.1平移

4.1.2

缩放

4.1.2旋转4.2重映射4.2.1复制

4.2.2绕x轴翻转

4.2.3绕y轴翻转4.2.4绕x轴与y轴翻转4.3投影变换4.3.1原理简介4.3.2Python实现4.4极坐标变换4.4.1原理简介

4.4.2Python实现4.5思考与练习设变换矩阵T为则上述变换可以用公式表示为基础知识介绍--图像几何变换旋转变换基础知识介绍--常用的几何变换平移变换

放缩变换将2×3阶变换矩阵T进一步扩充为3×3方阵这样一来,平移变换可以用如下形式表示:基础知识介绍--平移变换矩阵平移变换的表示法变换后的点集矩阵=变换矩阵T×变换前的点集矩阵平移变换注意:平移后的景物与原图像相同,但“画布”一定是扩大了。否则就会丢失信息。比例缩放变换图像的缩小一般分为按比例缩小和不按比例缩小两种。不按比例缩小一定会带来几何畸变。

缩小后,信息量小,所以画布可相应缩小。放大将原图像的一个像素添到新图像的一个k1*k2的子块中去。比例缩放变换水平镜像垂直镜像应用旋转变换图像旋转之后,会出现许多的空白点,对这些空白点必须进行填充处理,否则画面效果不好,称这种操作为插值处理。最简单的方法是行插值或是列插值:1)插值的方法是:空点的像素值等于前一点的像素值。2)同样的操作重复到所有行。旋转变换对给定的图像连续施行若干次如前所述的平移、镜像、比例、旋转等基本变换F1,F2,…,FN后,所完成的变换。复合变换的矩阵等于基本变换的矩阵按顺序依次相乘得到的组合矩阵,又叫级联变换。

T=TNTN-1…T1。若干次基本变换仍可用3×3阶表示。复合变换复合平移复合比例复合旋转基础知识介绍---图像的平移图像中所有的点都按照指定的平移量水平、垂直移动。设初始坐标为(x0,y0)的点经过平移(tx.ty)后,则点(x0,y0)坐标变为(x1,y1)。

tx

坐标原点(x0,y0)

ty

(x0,y0)和(x1,y1)的关系:

x1=x0+tx

y1=y0+ty基础知识介绍--图像平移变换

图像的镜像变换水平镜像:垂直中轴线为中心,将图像分为左右两部分;垂直镜像:水平中轴线为中心,将图像分为上下两部分。

镜像变换后图的高和宽都不变。x1=Width-x0y1=y0图像水平镜像变换x1=x0

y1=Height-y0图像垂直镜像变换效果对比图

图像的转置将图像像素的x坐标和y坐标互换。将改变图像的高度和宽度,转置后图像的高度和宽度将互换。

x1=y0

y1=x0图像转置效果对比图图像的旋转必须指明图像绕着什么旋转。一般图像的旋转是以图像的中心为原点,旋转一定的角度。旋转后,一般会改变图像的大小。

旋转后:

x1=x0cos(θ)+y0sin(θ)y1=-x0sin(θ)+y0cos(θ)图像旋转

效果对比图

x1=x0*kx

y1=y0*ky

假设图像X轴方向缩放比率是kx,Y轴方向缩放比率是ky。图像的缩放

kx>1且ky>1时,原图像被放大,面积增加。

由于放大图像时产生了新的像素,可通过插值算法来近似处理。

当kx=ky=2时,图像放大2倍,原图中的某一个像素,对应新图的4个像素。

●●●●

图像放大

表3.11234234056776633

表3.21122334411223344223344002233440055667777556677776666333366663333图像放大当kx<1且ky<1时,原图像被缩小。当kx=ky=0.5时,被缩小一半。原图中4个像素对应新图中的一个像素。此时缩小后的图像中的(0,0)像素对应于原图中的(0,0)、(0,1)、(1,0)、(1,1)像素。●●

●●●图像缩小效果对比图仿射变换是指通过一系列几何变换来实现平移、缩放、旋转等操作。OpenCV中为仿射变换提供的仿射函数为cv2.warpAffine(),可以通过一个映射矩阵M来实现这种变换。由变换矩阵M与原始图像矩阵相乘得到仿射变换函数cv2.warpAffine()的一般格式为:4.1

仿射变换4.1.1平移在已知变换矩阵M,cv2.warpAffine()完成图像的平移操作。【例4-1】使用仿射变换函数cv2.warpAffine()实现图像的平移。importcv2ascvimportnumpyasnpimage=cv.imread("F:/picture/panda.png")#读入panda图像h,w=image.shape[:2]#获取图像大小信息M=np.float32([[1,0,120],[0,1,-120]])#构建转换矩阵imageMove=cv.warpAffine(image,M,(w,h))#进行仿射变换——平移cv.imshow("image",image)#显示原始图像cv.imshow("imageMove",imageMove)#显示变换后的图像cv.waitKey()cv.destroyAllWindows()4.1.2缩放将原始图像缩小为一半时,转换矩阵M可以为:【例4-2】使用仿射变换函数cv2.warpAffine()实现图像的缩放。importcv2ascvimportnumpyasnpimage=cv.imread("F:/picture/panda.png")#读入panda图像h,w=image.shape[:2]#获取图像大小信息M=np.float32([[0.5,0,0],[0,0.5,0]])#构建转换矩阵imageMove=cv.warpAffine(image,M,(w,h))#进行仿射变换——缩放cv.imshow("image",image)#显示原始图像cv.imshow("imageMove",imageMove)#显示变换后的图像cv.waitKey()cv.destroyAllWindows()4.1.3旋转旋转操作时,cv2.getRotationMatrix2D()得到仿射变换函数cv2.warpAffine()的转换矩阵。ret=cv2.getRotationMatrix2D(center,angle,scale)·center是旋转的中心点。·angle表示旋转角度,正数为顺时针旋转,负数为逆时针旋转。·scale表示变换尺度。【例4-3】使用仿射变换函数cv2.warpAffine()实现图像的旋转。

importcv2ascvimage=cv.imread("F:/picture/panda.png")#读入panda图像h,w=image.shape[:2]#获取图像大小信息#得到转换矩阵M,效果是以图像的宽高的1/3为中心点顺时针旋转40°,缩小为原来的0.4M=cv.getRotationMatrix2D((w/3,h/3),40,0.4)imageMove=cv.warpAffine(image,M,(w,h))#进行仿射变换——旋转cv.imshow("image",image)#显示原始图像cv.imshow("imageMove",imageMove)#显示变换后的图像cv.waitKey()cv.destroyAllWindows()在仿射变换的过程中,物体的转换都是在二维空间中完成的,但是如果物体在三维空间中发生了转换,这种转换一般叫投影变换。4.3投影变换4.3.1原理简介因为投影变换是在三维空间内进行的,对其进行修正十分困难。如果物体是平面的,通过二维投影变换对此物体三维变换进行模型化,这就是专用的二维投影变换,可由如下公式描述:cv2.getPerspectiveTransform(src,dst)来计算投影变换矩阵,·dst表示目标图像。·src表示原始图像。注意这里需要输入4组对应的坐标变换,src和dst分别是4×2的二维矩阵,其中每一行代表一个坐标,而且数据类型必须是32位浮点型,否则会报错。4.3.2Python实现类似于仿射变换,OpenCV提供了cv2.warpPerspective()函数来实现投影变换功能。cv2.warpPerspective(src,M,dsize[,dst[,flags[,borderMode[,borderValue]]]])·src表示原始的图像。·M表示投影变换矩阵。·dsize表示投影后图像的大小。·flags表示插值方式。·borderMode表示边界模式。·borderValue表示边界值。其使用方法与仿射变换相似,只是输入的变换矩阵变为3行3列的投影变换矩阵。

【例4-12】编写程序,实现投影

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论