0

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

我已经查看了3D 摄像机坐标到世界坐标(改变基础?)将屏幕坐标从安全摄像机转换到真实世界坐标

4

1 回答 1

1

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

x =  H * X

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

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

于 2017-07-14T05:21:06.637 回答