1.      仿射变换

1) 用途

旋转 (线性变换),平移 (向量加).缩放(线性变换),错切,反转

2) 方法

仿射变换是一种二维坐标到二维坐标之间的线性变换,它保持了二维图形的“平直性”(直线经过变换之后依然是直线)和“平行性”(二维图形之间的相对位置关系保持不变,平行线依然是平行线,且直线上点的位置顺序不变)。任意的仿射变换都能表示为乘以一个矩阵(线性变换),再加上一个向量 (平移) 的形式.

以上公式将点(x,y)映射到(x’,y’),在OpenCV中通过指定一个2x3矩阵实现此功能(公式中的m矩阵,是线性变换和平移的组合,m11,m12,m21,m22为线性变化参数,m13,m23为平移参数,其最后一行固定为0,0,1,因此,将3x3矩阵简化为2x3)

3) 举例

a) 以原点为中心旋转,2x3矩阵为:
[ cos(theta), -sin(theta), 0 ],
[ sin(theta), cos(theta), 0 ]

x’ = x * cos(theta) - sin(theta) * y
y’ = x * sin(theta) + cos(theta) * y

b) 平移,2x3矩阵为
[1,0,tx],
[0,1,ty]

x’ = x * 1 + y * 0 + tx = x + tx
y’ = x * 0 + y * 1 + ty = y + ty

4) 具体应用

在OpenCV中,仿射变换通过函数cvWrapAffine(src,dst,mat)实现,其中mat是2x3的仿射矩阵,该矩阵可以利用函数cvGetAffineTransform(srcTri,dstTri,mat)得到,其中mat是被该函数填充的仿射矩阵,srcTri和dstTri分别是由三个顶点定义的平行四边形(由于是平行四边形,只需要指定三个顶点即可确定),即:给出变换前的ABCD和变换后的A’B’C’D’

2.      透视变换(投影变换)

1) 用途

将2D矩阵图像变换成3D的空间显示效果,全景拼接.

2) 方法

透视变换是将图片投影到一个新的视平面,也称作投影映射.它是二维(x,y)到三维(X,Y,Z),再到另一个二维(x’,y’)空间的映射.
相对于仿射变换,它提供了更大的灵活性,将一个四边形区域映射到另一个四边形区域(不一定是平行四边形).它不止是线性变换.但也是通过矩阵乘法实现的,使用的是一个3x3的矩阵,矩阵的前两行与仿射矩阵相同(m11,m12,m13,m21,m22,m23),也实现了线性变换和平移,第三行用于实现透视变换.

以上公式设变换之前的点是z值为1的点,它三维平面上的值是x,y,1,在二维平面上的投影是x,y,通过矩阵变换成三维中的点X,Y,Z,再通过除以三维中Z轴的值,转换成二维中的点x’,y’.
从以上公式可知,仿射变换是透视变换的一种特殊情况.它把二维转到三维,变换后,再转映射回之前的二维空间(而不是另一个二维空间).

3) 具体应用

在OpenCV中,透视变换通过函数cvWrapPerspective(src,dst,mat)实现, 与仿射变换不同的是,透视矩阵是一个3x3的矩阵,在计算矩阵时,可利用函数cvGetPerspectiveTransform(srcQuad,dstQuad,mat),由于不再是平行四边形,需要提供四边形的四个顶点

3.      区别

仿射变换后平行四边形的各边仍操持平行,透视变换结果允许是梯形等四边形,所以仿射变换是透视变换的子集

图像处理之_仿射变换与透视变换相关推荐

  1. 图像处理基本算法--仿射变换和透视变换

    仿射变换和透视变换更直观的叫法可以叫做"平面变换"和"空间变换"或者"二维坐标变换"和"三维坐标变换".一个是二维坐标( ...

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

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

  3. z变换判断稳定性和因果性_图像处理的仿射变换与透视变换

    原文首发于微信公众号:[3D视觉工坊]. 引言 这一周主要在研究图像的放射变换与透视变换,目前出现的主要问题是需要正确识别如下图中的编码标志点圆心. 1.当倾斜角较小时: 倾斜角较小 2.倾斜角较大时 ...

  4. 【数字图像处理】-- 弄懂等距变换(刚性变换)、相似变换、仿射变换、透视变换(投影变换)

    目录 概述(Introduction) 等距变换(Euclidean Transformation) 平移变换(Translation Transformation) 旋转变换(Rotation Tr ...

  5. 图像处理的仿射变换与透视变换

    引言   这一周主要在研究图像的放射变换与透视变换,目前出现的主要问题是需要正确识别如下图中的编码标志点圆心. 1.当倾斜角较小时: 2.倾斜角较大时:   由上面两幅图可以看出,当倾斜角较大时,中间 ...

  6. 射影变换与仿射变换、透视变换(射影既透视,包含了Z轴的信息)

    图像处理的仿射变换和透视变换(射影既透视,包含了Z轴的信息) 其实一直也没理解"仿射"俩字是啥意思,但是大家都这么叫,其实仿射变换和透视变换更直观的叫法可以叫做"平面变换 ...

  7. opencv 仿射变换与透视变换详解

    常见的2D图像变换从原理上讲主要包括基于2×3矩阵的仿射变换和基于3×3矩阵透视变换. 仿射变换 原理 基本的图像变换就是二维坐标的变换:从一种二维坐标(x,y)到另一种二维坐标(u,v)的线性变换: ...

  8. 相机标定(四)—— 仿射变换和透视变换

    仿射变换和透视变换 0. 概述 1. 线性变换 2. 从代数角度看线性变换 3. 仿射变换 4. 从代数角度看仿射变换 5. 通过线性变换来完成仿射变换 6. 仿射变换的一系列原子变换 6.1 平移变 ...

  9. 仿射变换与透视变换区别

    仿射变换 1) 用途 旋转 (线性变换),平移 (向量加).缩放(线性变换),错切,反转 2) 方法 仿射变换是一种二维坐标到二维坐标之间的线性变换,它保持了二维图形的"平直性"( ...

最新文章

  1. 防火墙产品原理与应用:防火墙产品的技术及实现关于IPV6【寒假】
  2. 消息积压在消息队列里怎么办
  3. Nat Rev Genet发表房刚组细菌表观组综述论文
  4. Linux_SystemLogManager
  5. Docker最全教程之MySQL容器化 (二十五)
  6. php相册上传和删除吗,php如何删除上传图片
  7. angularjs--resource
  8. javascript学习之利用方向键控制div模块的移动
  9. Elasticsearch 相关知识
  10. 计算机第一次月考试题,计算机基础第一次月考试题.doc
  11. php万能每亩,PHP 实现“万能”的短网址还原
  12. 个人Ubuntu安装配置
  13. SVM-支持向量机理解(拉格朗日乘子法(Lagrange multiplier))
  14. 软件工程专业的论文答辩_2015软件工程硕士论文答辩流程
  15. 计算机组成原理笔记(7)---定、浮点运算、算术逻辑单元
  16. 字符串匹配KMP算法的理解(详细)
  17. c语言中abc是什么类型,ABC类什么意思
  18. 第一人称游戏技术 - 实现在高低不平的3D地形上行走效果
  19. 七夕送什么礼物给女朋友,七夕送礼女朋友超喜欢的礼物推荐
  20. linux实现复制文件的两种方法

热门文章

  1. Smalltalk的辉煌时代
  2. python面试充电(3)面向对象、装饰器、包与模块
  3. 精尽 JDK 源码解析 —— 集合(七)TreeSet
  4. 我是怎样阅读技术论文的
  5. Bootstrap基础--选项卡
  6. 哈尔滨工业大学信号与系统期末复习(一)
  7. Cache的基本原理以及简单操作
  8. 手动配置和自动配置ODBC数据源(C++)
  9. 【ROS2原理9】 QoS - 截止日期、活跃度和寿命
  10. 武大计算机博士好毕业吗,2021武大辅导员拟录名单公布,博士生占多数,大多为名校毕业...