Assertion failed: abs_max < threshold in function 'stereoCalibrate'
Hi,
I had a stereo calibration pipeline built for regular (non fisheye) lenses that was working just fine (based on cv2.stereoCalibrate()
, etc.). Now I'm trying to adapt this procedure to fisheye cameras, using the corresponding fisheye
API. I incurred in other errors related to the shape of objectPoints and imagePoints, but apparently those were solved and individual camera calibration with cv2.fisheye.calibrate()
seems to be working. (To check this step, I tried to undistort a few images based on the calibration of individual cameras and the resulting undistorted images look fine.)
Next, I moved to calibrating the fisheye camera rig, however, I'm stuck on the following error from cv2.fisheye.stereoCalibrate()
:
cv2.error: OpenCV(4.1.0) /home/massimo/repositories/opencv-4.1.0/modules/calib3d/src/fisheye.cpp:1023: error: (-215:Assertion failed) abs_max < threshold in function 'stereoCalibrate'
originating from the following failed assertion in fisheye.cpp
:
CV_Assert(abs_max < threshold); // bad stereo pair
According to the solution suggested in #67855 for the same error, I tried to use different subsets of the calibration images or even individual images, hoping to identify the image(s) causing the issue. However, all combinations I tried resulted in the same error. Besides, upon visual inspection the images look fine.
I'm trying to figure out why cv2.fisheye.stereoCalibrate()
rejects all images, but I don't understand how the assertion is evaluated and on what basis it determines that a stereo pair is bad.
Any idea on how to get rid of this error?
Thanks in advance!
Relevant system specifications:
- Ubuntu 18.04.2
- Python 3.6.7
- OpenCV 4.1.0 (compiled from source)