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 仿射变换的主要内容,如果未能解决你的问题,请参考以下文章
cmake错误:opencv2/opencv.hpp:opencv2/opencv.hpp:没有这样的文件或目录