- 操作系统: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;
}