opencv —— getRotationMatrix2DwarpAffine 仿射变换

Posted bjxqmy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv —— getRotationMatrix2DwarpAffine 仿射变换相关的知识,希望对你有一定的参考价值。

仿射变换的基本概念

 仿射变换是一种二维坐标(x, y)到二维坐标(u, v)的线性变换,其数学表达式形式如下:

  技术图片

  对应的齐次坐标矩阵表示形式为:

  技术图片

仿射变换保持了二维图形的“平直性”(直线经仿射变换后依然为直线)和“平行性”(直线之间的相对位置关系保持不变,平行线经仿射变换后依然为平行线,且直线上点的位置顺序不会发生变化)。

非共线的三对对应点可以确定一个唯一的仿射变换。

 

几种常见的变换形式:

  • 平移变换

技术图片

数学形式:

技术图片

矩阵形式:

技术图片

  • 缩放变换

技术图片

矩阵形式:

技术图片

  • 旋转变换

技术图片

矩阵形式:

技术图片

 

变换形式汇总图:

技术图片

 

 

 

OpenCV 中实现仿射变换,一般涉及到 getRotationMatrix2D warpAffine 这两个函数:

计算二维旋转变换矩阵:getRotationMatrix2D 函数

 

 

 

getRotationMatrix2D 函数用于计算二维旋转变换矩阵。变换会将旋转中心映射到输出图像的原点。

Mat getRotationMatrix2D(Point2f center, double angle, double scale);

  • center,源图像的旋转中心。最终会作为输出图像原点。
  • angle,旋转角度。角度 > 0,表示逆时针旋转(坐标原点是左上角)。
  • scale,缩放系数。

 

 

 

 

 

 

 

借鉴博客:https://www.cnblogs.com/shine-lee/p/10950963.html

https://www.cnblogs.com/liekkas0626/p/5238564.html

https://www.cnblogs.com/houkai/p/6660272.html

 

以上是关于opencv —— getRotationMatrix2DwarpAffine 仿射变换的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV实战——OpenCV与图像处理

cmake错误:opencv2/opencv.hpp:opencv2/opencv.hpp:没有这样的文件或目录

opencv相机标定

opencv4opencv视频教程 C++(opencv教程)1opencv介绍和环境搭建

如何使用opencv实现图像匹配

OpenCV 简介 携手走进 OpenCV 的世界