【发布时间】:2015-09-26 12:55:41
【问题描述】:
我会尽量让这个问题具体化。
在 opencv 3.0 中调用 stereoCalibrate() 时,我收到如下错误消息:
Assertion failed <nimages > 0 && nimages == <int>imagePoints1.total() && <!imgPtMat2 || nimages == <int>imagePoints2.total(()) in cv::collectCalibrationData
我已经多次检查参数,我的 CameraDistortion、cameraMatrix 和 imagePoints 都是从早期的 cameraCalibrate 中读取的值,并且与两个相机的尺寸一致。
我有标志 CV_CALIB_ZERO_TANGENT_DIST 和 CV_CALIB_FIX_FOCAL_LENGTH,并且一直在尝试不同的组合。
我也玩过 imageSize,让它依赖于我想在立体校准后计算视差图的图像大小。
我最好的猜测是我将一个虚假的 objectPoints 矩阵传递给这个参数,因为我似乎无法将在 cameraCalibrate 中计算的向量向量以可读的方式保存到 xml 文件中。
这里是 stereoCalibrate() 文档的链接:http://docs.opencv.org/3.0.0/d9/d0c/group__calib3d.html#ga246253dcc6de2e0376c599e7d692303a
这是我的方法调用:
stereoCalibrate(test, Image_Points, Image_Points2, Camera_Matrix, Distortion_Coefficients, Camera_Matrix2, Distortion_Coefficients2, imgLeft.size(), R, T, E, F, CV_CALIB_FIX_FOCAL_LENGTH && CV_CALIB_ZERO_TANGENT_DIST, TermCriteria9(CV_TERMCRIT_ITER + CV_TERMCRIT_EPS, 30, 1e-6))
感谢您的帮助, 罗文
【问题讨论】:
标签: c++ opencv calibration