【问题标题】:What to use as inputs in OpenCV calibrateCamera cameraMatrix and distCoeffs parameters?在 OpenCV calibrateCamera cameraMatrix 和 distCoeffs 参数中使用什么作为输入?
【发布时间】:2018-10-27 16:48:10
【问题描述】:

我正在尝试让 calibrateCamera 在我的 Node.js 后端上工作。该库工作正常,但如果我输入错误,OpenCV 函数不会给出任何错误消息。我有点在黑暗中飞行。

但这不是重点。我拍摄了 17 张棋盘校准图案的图像,并获得了检测所有图像中图案的代码。在我调用 cv.calibrateCamera() 之前,一切正常,可能是因为我不知道应该使用什么作为 cameraMatrix 和 distCoeff 所需的输入(第 4 和第 5 个输入参数)。但是,我不能 100% 解决这个问题,因为没有收到来自 cv... 函数中的错误的任何错误消息。

我尝试按照 https://docs.opencv.org/3.1.0/dc/dbb/tutorial_py_calibration.html 的示例进行操作,但在教程中的 python 上,您可以使用 None 作为 cameraMatrix 和 distCoeff 的输入。我尝试使用null,但也没有用。

任何帮助将不胜感激。

const size = new cv.Size(9,6);
  let mat = null;

  let objpt = [];
  for(let i=0;i<9;i++) {
    for(let j=0;j<6;j++) {
      objpt.push(cv.Point(2.5*i,2.5*j,0))
    }
  }

  let objectPoints = [];
  let imagePoints =[];

  for (let i=0; i < 17;i++) {
    mat = cv.imread('./calib/calib'+(i+1)+'.jpg');
    let smallmat = mat.resize(756,1008);
    const corners = smallmat.findChessboardCorners(size);
    if (corners.returnValue) {
      objectPoints = objectPoints.concat(objpt);
      imagePoints = imagePoints.concat(corners.corners);
    }
  }

 // THIS IS WHERE EXECUTION JUST STOPS WITH NO ERROR MESSAGE

  cv.calibrateCamera(
    objectPoints,
    imagePoints,
    new cv.Size(756,1008),
    new cv.Mat(3, 3, cv.CV_32FC1,0),
    [0,0,0,0,0]
  );

【问题讨论】:

    标签: node.js opencv opencv3.0 camera-calibration


    【解决方案1】:

    根据test参数应该这样传递:

     [_objectPoints, _objectPoints],
     [imagePoints, imagePoints],
     imageSize,
     _cameraMatrix,
     distCoefficients
    

    在哪里

    const _cameraMatrix = new cv.Mat([ [800, 0, 100], [0, 800, 100], [0, 0, 1] ], cv.CV_64F);

    const distCoefficients = [0, 0.5, 1.0, 1.0];

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-09
      • 2015-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-22
      • 2019-07-14
      • 1970-01-01
      相关资源
      最近更新 更多