将XY平面中的点网格从摄像机坐标转换为真实世界坐标

时间:2017-07-13 18:45:31

标签: camera computer-vision coordinate-systems projective-geometry

我正在写一个程序。比方说,我在一张纸上画了一个点网格。我固定一端并将纸张朝屏幕弯曲,从相机的角度给我一个梯形形状。我有每个点的(x,y)相机坐标。有没有一种简单的方法可以将这些(x,y)改为现实生活(x,y),它应该给我一个矩形?如果有帮助的话,我有原始平面纸张的相机/真实(x,y)预弯曲。

我查看了3D Camera coordinates to world coordinates (change of basis?)Transforming screen coordinates from security camera to real world coordinates

1 个答案:

答案 0 :(得分:1)

查找"单应性"。从3D空间中的平面到由理想的针孔相机捕获的图像的变换是单应性。它可以表示为3x3矩阵H,它将世界中点的3D坐标X转换为相应的齐次图像坐标x:

x =  H * X

其中X是世界点坐标的3x1向量,x = [u,v,w] ^ T是齐次坐标中的图像点。

假设世界和图像点之间至少有4个匹配(例如矩形的角),您可以估计矩阵H的参数。有关详细信息,请查看" DLT算法"。在OpenCV中,使用的例程是findHomography