码迷,mamicode.com
首页 > 其他好文 > 详细

opencv —— getRotationMatrix2D、warpAffine 仿射变换

时间:2020-02-20 22:02:56      阅读:53      评论:0      收藏:0      [点我收藏+]

标签:title   投影   images   src   实现   lock   tle   double   image   

仿射变换的基本概念

 仿射变换是一种二维坐标(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 —— getRotationMatrix2D、warpAffine 仿射变换

标签:title   投影   images   src   实现   lock   tle   double   image   

原文地址:https://www.cnblogs.com/bjxqmy/p/12337581.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!