Fisheye calibration assertion error

asked 2016-09-21 14:04:07 -0600

parallax gravatar image

I tried to calibrate a gopro camera. With the general camera model, everything is fine, but I want to add one more distortion coefficient (K4), so I used the same set of chessboard images and fisheye::calibrate(objectPoints, imagePoints, smallImageSize, intrinsic, distCoeffs, r, t, 0|fisheye::CALIB_FIX_SKEW|fisheye::CALIB_CHECK_COND|fisheye::CALIB_RECOMPUTE_EXTRINSIC);

then I got this error: Assertion failed (svd.w.at<double>(0) / svd.w.at<double>((int)svd.w.total() - 1) < thresh_cond) in CalibrateExtrinsics, file /Users/fanzcs/opencv/modules/calib3d/src/fisheye.cpp, line 1375 E0913 10:53:29.335388 2039657216 SystemUtil.cpp:50] Terminated with exception: /Users/fanzcs/opencv/modules/calib3d/src/fisheye.cpp:1375: error: (-215) svd.w.at<double>(0) / svd.w.at<double>((int)svd.w.total() - 1) < thresh_cond in function CalibrateExtrinsics.

I tried to delete few chessboard images with the chessboard in the corners, then fisheye::calibrate can run without errors, but i am afraid the result is not accurate enough cause I do not have the image region fully covered.

Any idea why there is a svd assertion error?

edit retag flag offensive close merge delete