这个太重要了,我得再研究研究。并争取搞个code出来。这篇先来理论。

本文属转载。


变换模型是指根据待匹配图像与背景图像之间几何畸变的情况,所选择的能最佳拟合两幅图像之间变化的几何变换模型。可采用的变换模型有如下几种:刚性变换、仿射变换、透视变换和非线形变换等,如下图:

其中第三个的仿射变换就是我们这节要讨论的。

仿射变换(Affine Transformation) 
Affine Transformation是一种二维坐标到二维坐标之间的线性变换,保持二维图形的“平直性”(译注:straightness,即变换后直线还是直线不会打弯,圆弧还是圆弧)和“平行性”(译注:parallelness,其实是指保二维图形间的相对位置关系不变,平行线还是平行线,相交直线的交角不变。)。

c和d的区别可以看下图:

仿射变换可以通过一系列的原子变换的复合来实现,包括:平移(Translation)、缩放(Scale)、翻转(Flip)、旋转(Rotation)和剪切(Shear)

仿射变换可以用下面公式表示:

这个矩阵乘法的计算如下:

具体到二维的仿射变换的计算如下:

几种典型的仿射变换如下:

平移变换 Translation

将每一点移动到(x+tx, y+ty),变换矩阵为:

平移变换是一种“刚体变换”,rigid-body transformation,就是不会产生形变的理想物体。

效果:

缩放变换(Scale)

将每一点的横坐标放大(缩小)至sx倍,纵坐标放大(缩小)至sy倍,变换矩阵为:

变换效果如下:

剪切变换(Shear)

变换矩阵为:

相当于一个横向剪切与一个纵向剪切的复合

效果:

旋转变换(Rotation)

目标图形围绕原点顺时针旋转theta弧度,变换矩阵为:

效果:

组合

旋转变换,目标图形以(x, y)为轴心顺时针旋转theta弧度,变换矩阵为:

相当于两次平移变换与一次原点旋转变换的复合:

先移动到中心节点,然后旋转,然后再移动回去。

这个转换矩阵也可以下面这样描述。

一些常用转换矩阵如下:


二更:注意这里的旋转矩阵的公式是按照矩阵右乘来算的。即,

仿射变换 Affine transformation相关推荐

  1. opencv中很有趣的仿射变换(Affine Transformation)

    在仿射变换中,原图中所有平行的行在变换后的图像中仍然平行.为了构建仿射矩阵,我们需要原图中的三个点和它们在变换后的图像中的对应位置.函数 cv.getAffineTransform 创建一个2*3的矩 ...

  2. 仿射变换(affine transformation)

    仿射变换(affine transformation) 多面体编译(polyhedral compilation)会使用到仿射变换(affine transformation)的知识,这里介绍下仿射变 ...

  3. OpenCV仿射变换Affine Transformations

    OpenCV仿射变换Affine Transformations 仿射变换Affine Transformations 目标 理论 什么是仿射变换? 我们如何获得仿射变换? 代码 这个程序做什么? 解 ...

  4. 仿射变换affine和透视变换

    仿射变换和单应矩阵 首先明确:二者的应用场景相同,都是针对二维图片的变换.仿射变换affine是透视变换的子集,透视变换是通过homography单应矩阵实现的. 从数学的角度,homography即 ...

  5. 仿射变换 (Affine transform) 参数估计方法

    仿射变换 (Affine transform) 参数估计方法 最近一个机器视觉课题中的一个小问题.两幅图像中各有一些特征点,我们分别称为 ( x i , y i ) (x_i, y_i) (xi​,y ...

  6. 仿射变换(Affine transformation)与python实践

    仿射变换,又称仿射映射,是指在几何中,一个向量空间(vector space)进行一次线性变换(linear transformation)并拼上一个平移(Translation ).所以,本质上仿射 ...

  7. Q76:仿射变换(Affine Transformation)

    三维图形的仿射变换包括平移(Translation).缩放(Scaling).旋转(Rotation).错切(Shearing).翻转(Reflection). 仿射变换具有"平直性&quo ...

  8. 【自动驾驶】15.一文读懂图像中点的坐标变换(刚体变换,相似变换,仿射变换,投影变换)

    0 前言 现在的人脸图像识别流程中有一个步骤叫人脸对齐,现在的一般方法是采用人脸上的关键点坐标,进行相似变换来实现人脸校正.多次在人脸识别的论文中看到 similarity transform,由于在 ...

  9. 图像处理二:仿射变换和透视变换

    一.仿射变换(Affine Transformation) 放射变换(平面变换.二维坐标变换):是空间直角坐标系的变换,从一个二维坐标变换到另一个二维坐标,仿射变换是一个线性变换,保持了图像的&quo ...

最新文章

  1. 独家 | AI仍然受困于仇恨言论——但科学家们在衡量每个系统失败的地方正做得越来越好...
  2. 损失函数/成本函数/目标函数的区别
  3. STL中的set容器的一点总结
  4. PHP变量的变量——可变变量
  5. 教科书上的LDA为什么长这样?
  6. pat1043. Is It a Binary Search Tree (25)
  7. 线段树-Count on a Treap-神题
  8. 关于phpcmsv9更新缓存出现链接被重置的问题
  9. 转载 - 整数划分问题
  10. 语文高考识记现代汉字的字形【转】
  11. 在谈数据治理和数字化的时候,别忘了数据标准
  12. 使用stanford nlp进行依存句法分析
  13. 21大软件架构特点的全面解析
  14. tar -xf_【图】兼具优雅与运动 抢先实拍改款捷豹XF
  15. 48页PPT|小米用户画像实战,每页都是经典
  16. 菜鸟的spring security学习教程
  17. AutoRunner 功能自动化测试项目实训之AutoRunner的下载安装(十九)
  18. CAR路里大学堂-汽车测试培训(CANOE)
  19. 微信小程序分享朋友圈 详细教程及注意事项
  20. (转)牛顿和哈雷的故事(重点看一下牛顿老时候)

热门文章

  1. 高效短眠的10个好处及如何进行高效的睡眠
  2. linux创建用户命令-----useradd
  3. Android输入法window类型,android输入法windowSoftInputMode属性详解章
  4. 【数据结构--散列函数】
  5. camera测试标准
  6. matlab基于傅立叶变换的时域或频域算法计算多普勒频移,展示代码
  7. 深入理解iOS App的启动过程
  8. Wos/Pubmed/Scopus数据库一键去重+清洗数据 CiteSpace Vosviewer
  9. Reactor模式--VS--Proactor模式
  10. 帮我写一个X波段小型化带通滤波器开题报告