【问题标题】:camera calibration from a set of 2D-3D corresponded points从一组 2D-3D 对应点进行相机校准
【发布时间】:2016-12-02 20:22:12
【问题描述】:

我有一组 2D-3D 对应点,我想根据这些点校准相机。由于 3D 点不是平面的,opencv CameraCalibration 函数会给我运行时错误。有谁知道解决这个问题的方法吗?

OpenCV 错误:cvCalibrateCamera2 文件 /build/opencv-SviWsf/opencv-2.4.9.1+dfsg/modules/calib3d/src/calibration 中的参数错误(对于非平面校准装置,必须指定初始内在矩阵)。 cpp,第 1592 行

谢谢

【问题讨论】:

  • 最简单的答案是:使用棋盘的平面点,如official documentation of OpenCV 所示。功能 calibratecamera 旨在使用 findChessboardCorner 找到“平面”角后工作,如指南中所述。如果您不想这样做,您应该更具体,发布您的代码并指定您的积分是如何产生的,以便有人可以给您一个具体的答案。

标签: opencv computer-vision camera-calibration


【解决方案1】:

然后尝试设置初始内在函数。对于焦距(fx,fy),只需使用(镜头焦距,单位为毫米)/(图像传感器的像素大小,单位为毫米)。对于 cx、cy,设置图像的中心。如果传感器有 640x480 像素,则设置 (320, 240)。 如果它是一个便宜的网络摄像头,你可能很难找到图像传感器的规格,但如果它是一个工业机器视觉摄像头,它应该很容易。

【讨论】:

    【解决方案2】:

    OpenCV 校准需要共面点。

    如果您想利用 2D - 3D 对应关系,可以使用 DLT 相机校准方法或等效方法,例如以下工具箱中包含的方法:CalTech Camera Calibration Toolbox

    特别是查看Heikkil,您可以在其中使用非平面设备校准您的相机。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-21
      • 1970-01-01
      • 2012-12-05
      • 2013-11-09
      • 2012-01-26
      • 2013-02-01
      • 1970-01-01
      相关资源
      最近更新 更多