我在屏幕上显示了一个图像,该图像通过CvinitundistortMap&cvremap(完成的相机校准)不含,并且用户单击图像中的功能。因此,我具有该功能的(u,v)像素坐标,并且我还具有固有的矩阵和失真矩阵。

我正在寻找的是相机/现实世界中的3D线的方程式,用户单击必须在其上所列出的功能。我已经在相机的图像平面和功能之间具有垂直的距离,因此我可以将其与上述方程式结合在一起,以使我在空间中的功能的(x,y,z)坐标。

听起来很容易(近来的内在矩阵或其他内容?),但是我找不到任何地方的分步说明。 C ++或C#代码优先。

有帮助吗?

解决方案

这是有点古老的问题,但仍然对某人有用。所有线都经过点(0,0,0),因此:

line.x0 = 0; line.y0 = 0; line.z0 = 0;

方向向量如下:line.a =(u/fx) - (cx/fx); line.b =(v/fy) - (cy/fy); lin.c = 1;

CX,CY,FX,FY是相机矩阵的参数。方程式在“学习OpenCV”书中进行了解释。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top