2016-05-07 29 views
0

我在3D空间中有一个正方形的2D图片(投影)。我知道这是一个完美的正方形(90度角,等长边)。方形同调坐标

我希望能够戳上正方形的投影上的一个点,并找到正方形上的“真实”坐标。从互联网上的一点点阅读中,我了解到这些被称为“同质坐标”。 (这是正确的吗?)。为了简单起见,请假定每个正方形边缘的长度为1.

为简单起见,假设相机是一个非失真的针孔相机,并且如果需要可以测量它的任何属性。此外,相机上的x,y坐标的长度是对称的。

我的程序是我正试图在棋盘上找到一个棋子。我很容易检测到电路板的角落,并且很容易找到该部分。不过,我试图跳过检测板上的各个方块。

enter image description here

+0

查阅单应性估计:https://en.wikipedia.org/wiki/Homography_(computer_vision),http://docs.opencv.org/2.4/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html ?highlight = findhomography#findhomography – Zaphod

回答

1

你的四顶点(U(i)中,V(I))是正方形的顶点的透视投影(X(i)中,Y(I))。要找到正方形上某点的坐标,必须使用四对点找到反向透视变换矩阵,并将该矩阵应用于给定的点坐标。
Paul Heckbert article显示了这个过程的数学。

可能您可以找到随时可以使用的用于计算persp的库。矩阵。 C++变体:Agg2

+0

如果已经有从方块到屏幕的投影矩阵,可以将其反转以获得逆矩阵,然后使用它将点击点转换为模型空间。否则按照Agg2使用Heckbert的方法。 –