美文网首页
仿射变换

仿射变换

作者: 大龙10 | 来源:发表于2021-10-04 13:34 被阅读0次

《OpenCV轻松入门:面向Python》读书笔记
作者:李立宗
出版社:电子工业出版社
出版时间:2019-05

第5章 几何变换

5.3 仿射

1) 定义

  仿射变换是指图像可以通过一系列的几何变换来实现平移、旋转等多种操作。该变换能够保持图像的平直性和平行性。

  • 平直性
    是指图像经过仿射变换后,直线仍然是直线;
  • 平行性
    是指图像在完成仿射变换后,平行线仍然是平行线。

2) 函数

  OpenCV中的仿射函数为cv2.warpAffine(),其通过一个变换矩阵(映射矩阵)M实现变换,具体为:

dst(x, y)=src(M11x+M12y+M13, M21x+M22y+M23)

如图5-2所示,可以通过一个变换矩阵M,将原始图像O变换为仿射图像R。


图5-2 仿射变换

  因此,可以采用仿射函数cv2.warpAffine()实现对图像的旋转,该函数的语法格式如下:

dst=cv2.warpAffine(src, M, dsize [ , flags [ , borderMode [, borderValue]]])

式中:

  • dst代表仿射后的输出图像,该图像的类型和原始图像的类型相同。dsize决定输出图像的实际大小。
  • src代表要仿射的原始图像。
  • M代表一个2×3的变换矩阵。使用不同的变换矩阵,就可以实现不同的仿射变换。
  • dsize代表输出图像的尺寸大小。
  • flags代表插值方法,默认为INTER_LINEAR。当该值为WARP_INVERSE_MAP时,意味着M是逆变换类型,实现从目标图像dst到原始图像src的逆变换。具体可选值参见表5-1。
  • borderMode代表边类型,默认为BORDER_CONSTANT。当该值为BORDER_TRANSPARENT时,意味着目标图像内的值不做改变,这些值对应原始图像内的异常值。
  • borderValue代表边界值,默认是0。

  通过以上分析可知,在OpenCV中使用函数cv2.warpAffine()实现仿射变换,忽略其可选参数后的语法格式为:

dst=cv2.warpAffine(src, M, dsize)

  其通过转换矩阵M将原始图像src转换为目标图像dst:

dst(x, y)=src(M11x+M12y+M13, M21x+M22y+M23)

  因此,进行何种形式的仿射变换完全取决于转换矩阵M。

相关文章

  • 第四篇:CALayer能力之仿射变换和3D变换

    目录 一、UIView的仿射变换 1、单仿射变换 2、混合仿射变换 3、CGAffineTransformIden...

  • iOS 仿射变换

    一、iOS 仿射变换CGAffineTransform详解IOS开发UI篇--仿射变换(CGAffineTrans...

  • 仿射变换

    参考资料: 马同学:如何通俗的解释仿射变换 1. 仿射变换的作用: 通过仿射变换对图片进行旋转、平移、缩放等操作以...

  • 图片处理-opencv-7.图像几何变换

    图像几何变换 1.图像仿射变换 图像仿射变换又称为图像仿射映射,是指在几何中,一个向量空间进行一次线性变换并接上一...

  • 高级动画学习心得笔记(五)变换

    5.1 仿射变换 5.1.1 仿射变换基础 UIView的transform属性是一个CGAffineTransf...

  • 详细解析 CGAffineTransform 矩阵

    CGAffineTransform 是对于仿射变换矩阵进行了封装,而要理解仿射变换(affine transfor...

  • opencv python版-lesson 11

    缩放,平移,旋转.仿射变换,透视变换

  • 仿射变换

    UIView的transform属性是一个CGAffineTransform类型,用于在二维空间做旋转、缩放和平移...

  • 仿射变换

    仿射变换(affinement)是由一个线性变换和平移组成的,如图所示 1. SLAM中的仿射变换 在SLAM里,...

  • 仿射变换

    参考 http://www.cnblogs.com/ghj1976/p/5199086.html 变换模型是指根据...

网友评论

      本文标题:仿射变换

      本文链接:https://www.haomeiwen.com/subject/fkjcnltx.html