- 操作系统:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 编程语言:C++11
算法描述
反转一个仿射变换。
该函数计算由 2×3 矩阵 M 表示的逆仿射变换:
[ a 11 a 12 b 1 a 21 a 22 b 2 ] \begin{bmatrix} a_{11} & a_{12} & b_1 \\ a_{21} & a_{22} & b_2 \end{bmatrix} [a11a21a12a22b1b2]
结果也是一个 2×3 矩阵,与 M 同类型。
invertAffineTransform() 函数用于计算给定仿射变换矩阵的逆矩阵。仿射变换矩阵通常是一个 2×3 的矩阵,用于描述图像的平移、旋转、缩放等变换。此函数计算的逆变换矩阵可以用来撤销原始变换的效果。
函数原型
void cv::invertAffineTransform
(InputArray M,OutputArray iM
)
参数
- 参数M 原始的仿射变换
- 参数iM 输出逆仿射变换。
代码示例
#include <opencv2/core.hpp>
#include <opencv2/opencv.hpp>// 函数声明
cv::Mat invertAffineTransform( const cv::Mat& M );int main()
{// 创建一个仿射变换矩阵cv::Mat M = ( cv::Mat_< double >( 2, 3 ) << 1, 0.5, 0, 0, 1.5, 0 );// 调用函数计算逆矩阵cv::Mat iM;cv::invertAffineTransform( M,iM );std::cout << "Original Affine Transformation Matrix:\n" << M << "\n";std::cout << "Inverse Affine Transformation Matrix:\n" << iM << "\n";return 0;
}