- 操作系统:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 编程语言:C++11
算法描述
将单应性矩阵分解为旋转矩阵、平移向量和法向量。
cv::decomposeHomographyMat 是 OpenCV 库中的一个函数,用于将单应性矩阵(Homography Matrix)分解为旋转矩阵(Rotation Matrices)、平移向量(Translation Vectors)和法向量(Normals)。该函数能够从给定的单应性矩阵中提取出多个可能的解,这些解描述了平面在两个不同视角之间的相对运动。
函数原型
int cv::decomposeHomographyMat
(
InputArray H,
InputArray K,
OutputArrayOfArrays rotations,
OutputArrayOfArrays translations,
OutputArrayOfArrays normals
)
参数
- 参数H:两个图像之间的输入单应性矩阵。
- 参数K:输入的相机内参矩阵。
- 参数rotations:旋转矩阵数组。
- 参数translations:平移向量数组(注意,这里应该是“平移向量”而非“平移矩阵”)。
- 参数normals:平面法向量数组。
此函数提取平面物体在两个视图之间的相对相机运动,并返回最多四个由旋转、平移和平面法向量组成的数学解元组。单应性矩阵 H 的分解在文献 [176] 中有详细描述。
如果由平面诱导的单应性矩阵 H 给出了约束
[ x i ′ y i ′ 1 ] ∼ H [ x i y i 1 ] \begin{bmatrix} x'_i \\ y'_i \\ 1 \end{bmatrix} \sim H \begin{bmatrix} x_i \\ y_i \\ 1 \end{bmatrix}
x