【问题标题】:FishEye lens calibration giving Distortion Matrix ZeroFishEye 镜头校准使失真矩阵为零
【发布时间】:2020-12-09 06:28:36
【问题描述】:

我正在使用 fisheye::calibrate() 函数来获取相机的内在参数,我得到的是相机矩阵,但失真矩阵为空。

cv::Matx33d cameraMatrix;
cv::Vec4d distCoeffs;
std::vector<cv::Vec3d> R;
std::vector<cv::Vec3d> T;
int flag = 0;
//flag |= cv::fisheye::CALIB_RECOMPUTE_EXTRINSIC;
//flag |= cv::fisheye::CALIB_CHECK_COND;
//flag |= cv::fisheye::CALIB_FIX_SKEW;

rms = cv::fisheye::calibrate(objpoints, imgpoints, imgSize,cameraMatrix, distCoeffs, R, T,flag, cv::TermCriteria(3, 20, 1e-6));

这是我使用上述代码 sn-p 得到的输出。

**cameraMatrix : [407.4366543152521, 0, 479.5;
 0, 407.4366543152521, 639.5;
 0, 0, 1]
distCoeffs : [0, 0, 0, 0]**

不知道,为什么我得到零值的失真矩阵。

【问题讨论】:

    标签: c++


    【解决方案1】:

    我也有这个问题。 这是 OpenCV 鱼眼校准的一个已知问题。

    https://github.com/DavidTorresOcana/image_pipeline/issues/1

    https://github.com/opencv/opencv/issues/7008

    出现在图像角落的图像对应将导致校准过程静默失败。您可以添加标志fisheye::CALIB_CHECK_COND,当这种情况发生时会抛出错误(但不会跳过有问题的图像或修复潜在问题)。

    【讨论】:

      猜你喜欢
      • 2015-01-03
      • 1970-01-01
      • 2012-09-19
      • 1970-01-01
      • 2017-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-12
      相关资源
      最近更新 更多