我现在正在尝试分析两个图像之间的透视变换/单应矩阵,这些图像以不同的视角/拍摄角度捕获相同的对象(例如,矩形)。可以使用函数 getPerspectiveTransform
导出透视变换。在 OpenCV 2.3.1 中。我想找到相应的旋转和平移矩阵。getPerspectiveTransform
的输出是一个 3x3 矩阵,我可以直接使用它来将源图像变形为目标图像。但我的问题是,如何根据获得的 3x3 矩阵找到旋转和平移矩阵?
我正在研究功能 decomposeProjectionMatrix
对应的旋转和平移矩阵。但输入必须是 3x4 投影矩阵。如何将透视变换(即 3x3 矩阵)与 3x4 投影矩阵联系起来?我在正确的轨道上吗?
非常感谢你。
最佳答案
单应矩阵中包含的信息(从 getPerspectiveTransform 返回)不足以提取旋转/平移。缺少的列是正确找到角度的关键。
好消息是,在某些场景下,您可以使用 solvePnP() 函数从两组点中提取所需的参数。
此外,这个问题与您所要求的相同。它应该有帮助
Analyze camera movement with OpenCV
关于opencv - 如何在 OpenCV 中使用 getPerspectiveTransform 的输出 3x3 矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11981971/