【发布时间】:2014-06-10 03:36:21
【问题描述】:
我正在尝试验证我的相机校准,因此我想更正校准图像。我预计这将涉及使用对 warpPerspective 的调用,但我没有看到一个明显的函数,它采用相机矩阵、旋转和平移向量来生成此调用的透视矩阵。
基本上我想做here 描述的过程(尤其是最后的图像),但从已知的相机模型和姿势开始。
是否有一个简单的函数调用来获取相机的内在和外在参数并计算用于warpPerspective 的透视矩阵?
在图片上调用undistort 后,我将调用warpPerspective。
原则上,在指定约束Z=0 之后,我可以通过求解在opencv camera calibration documentation 顶部定义的方程组来得出解,但我认为必须有一个固定例程允许我进行正射校正我的测试图像。
在我的搜索中,我发现很难浏览所有的立体校准结果——我只有一台相机,但想要在我只查看平面测试图案的约束下校正图像。
【问题讨论】:
-
那么,纠正是指去除旋转效果吗?这意味着,您只有一个视图,而不是两个相对于彼此的视图,您想要纠正(对齐极线)。
-
@DavidNilosek 是的,我有一个校准圆阵列的倾斜图像,我想恢复“自上而下”的视图。
-
我正在努力思考,但不幸的是我的时间不多了。尝试使用旋转矩阵的逆矩阵作为 warpPerspective 的透视矩阵,如果可行,我可以写一些东西来更好地解释它。
-
你想把perspective相机看到的图像转换成orthographic相机看到的图像,我觉得这不行使用逆旋转矩阵完成。一种直接的方法是使用
cv::getPerspectiveTransform和 4 个适当的点。但是,可能可以直接从相机校准中得出转换,我会研究一下。