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

参考: http://wenku.baidu.com/view/826a796027d3240c8447ef20.html

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

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

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

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

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

参考:http://wenku.baidu.com/view/826a796027d3240c8447ef20.html

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

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

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

平移变换 Translation

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

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

效果:

缩放变换(Scale)

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

变换效果如下:

剪切变换(Shear)

变换矩阵为:

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

效果:

旋转变换(Rotation)

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

效果:

组合

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

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

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

参考: 
http://wenku.baidu.com/link?url=AtomIQH400RVIckGwh-V5vPBGmTEVN7ZBtzEjHFeEPxkqu2llowVdW1IFFPqJWaZGUQsQG1hK0OtdrFJ4JBsru3rO8bP9VKQ8Iae0Xm_wt7

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

一些常用转换矩阵如下:

何为仿射变换(Affine Transformation)相关推荐

  1. 仿射变换 Affine transformation

    这个太重要了,我得再研究研究.并争取搞个code出来.这篇先来理论. 本文属转载. 变换模型是指根据待匹配图像与背景图像之间几何畸变的情况,所选择的能最佳拟合两幅图像之间变化的几何变换模型.可采用的变 ...

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

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

  3. 仿射变换(affine transformation)

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

  4. OpenCV仿射变换Affine Transformations

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

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

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

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

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

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

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

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

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

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

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

  10. OpenCV-Python学习资源

    OpenCV官方教程 超实用的教程:OpenCV-Python 中文教程 简书博主博客 python读取文件夹下所有图片 OpenCV-Python的机器学习库: 官方文档 [OpenCV-Pytho ...

最新文章

  1. 字节二面 | 26图揭秘线程安全
  2. 细数人体十大最“无用”的器官。
  3. Vue(小案例_vue+axios仿手机app)_实现用户评论
  4. 科大星云诗社动态20211102
  5. php js脚本查询php,php结合js实现多条件组合查询
  6. 【干货】前端单元测试入门
  7. Please review your Gradle project setup in the android/ folde
  8. wcf 接收post数据_简单聊下HTTP中POST和GET请求本质区别
  9. 传输rp文件到ftp服务器并通过浏览器访问html
  10. Windows下在MSDos窗口下打开指定目录
  11. 高级计量经济学及Stata应用 第2版_陈强
  12. 电脑桌面打开计算机打开多个,如何在电脑桌面并排显示多个Excel工作表
  13. tcp_sock_struct
  14. 南京地图njmaps使用,以公众版为例
  15. vue动态面包屑导航的使用
  16. 如何让机器获得幽默感——Google图学习技术揭秘
  17. java毕业设计-篮球资讯网站-源码+lw文档+mybatis+系统+mysql数据库+调试
  18. 解决因IPV6造成的网易云音乐一直缓冲的问题
  19. java基础训练_实验1Java语言程序设计基础训练.doc
  20. 精诚EAS-WMS条码化仓库物流软件

热门文章

  1. html5show()函数怎么写,实例:用JavaScript来操作字符串(一些字符串函数)_基础知识...
  2. sqoop导出solr数据_用Sqoop把数据从HDFS导入到MYSQL
  3. python opencv 中文路径_解决python cv2.imread 读取中文路径的图片返回为None的问题
  4. 在线qmc0转换mp3工具_音乐格式转换
  5. wifi定位算法 java_机器学习在滴滴网络定位中的探索和实践
  6. asp在线html编辑器,ASP下使用FCKeditor在线编辑器的方法
  7. linux shell 高级编程,shell高级编程(带365个实例源码)
  8. linux mysql workbench 安装_Ubuntu 20.04 上 MySQL Workbench 安装和使用图文详解
  9. 服务器维护需要log日志,IBM HTTP server for i的日志维护
  10. android多音字排序,再谈Contacts中姓氏多音字排序错误问题