如何在给定的平面上创建鸟瞰图像?

时间:2014-12-06 15:05:20

标签: c++ opencv

我给了一个平面(支持向量和平面的法向量),这是一个由我知道内在参数(fx,fy,cx,cy)的相机拍摄的图像。如何将此图像转换为鸟瞰图像(以便鸟类视图与平面的法线向量共线)。我对我必须使用的坐标系很困惑,有些矩阵是世界坐标,有些是本地坐标。我知道OpenCV中有warpPerspective(),这会起作用吗?

我正在使用OpenCV:2.4.9

非常感谢!

更新 我必须在相机面向法线时计算4个点,然后从鸟瞰图中计算4个点并将它们传递给findHomography()以获得变换矩阵吗?

更新 解决了。得到它的工作!

1 个答案:

答案 0 :(得分:2)

世界平面上的矩形将在图像中显示为四边形 在鸟瞰图中,您希望它再次显示为矩形。 您必须至少知道此世界矩形的宽高比才能使顶视图正确且沿两个轴均匀缩放。

考虑到图像中的4个四边形2D点和目标矩形角(基本上选择2D坐标),您可以计算从四边形到矩形的单应性并使用{{ 1}}来渲染它。

这通常是最简单的方法。

您也可以自己查看相机和矩阵。为此,您需要使用正交投影将相机旋转到平面上方。参见单应性分解here