【问题标题】:Pixel coordinates to 3D line (opencv)像素坐标到 3D 线(opencv)
【发布时间】:2011-03-07 16:07:20
【问题描述】:

我在屏幕上显示了一张通过 cvInitUndistortMap 和 cvRemap 未失真的图像(已完成相机校准),并且用户单击图像中的一个特征。所以我有特征的 (u,v) 像素坐标,还有内在矩阵和畸变矩阵。

我正在寻找的是相机/真实世界坐标中的 3D 线方程,用户单击的特征必须位于该坐标上。我已经有了相机图像平面和特征之间的垂直距离,所以我可以将它与上述方程结合起来,得到特征在空间中的 (X,Y,Z) 坐标。

听起来很简单(逆内在矩阵之类的?),但我在任何地方都找不到分步说明。首选 C++ 或 C# 代码。

【问题讨论】:

    标签: c# c++ opencv computer-vision camera-calibration


    【解决方案1】:

    这是一个有点老的问题,但仍然可能对某人有用。 所有的线都经过点 (0,0,0),所以:

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

    方向向量如下: line.A = (u/fx) - (cx/fx); line.B = (v/fy) - (cy/fy); line.C = 1;

    cx,cy,fx,fy 是相机矩阵的参数。 方程式在“Learning OpenCv”一书中进行了解释。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-10
      • 1970-01-01
      • 1970-01-01
      • 2017-01-16
      • 2017-11-18
      • 1970-01-01
      • 2011-12-04
      相关资源
      最近更新 更多