gpt4 book ai didi

c++ - opencv 3.0 中的 stereoCalibrate() 方法时出现持续错误

转载 作者:太空宇宙 更新时间:2023-11-04 13:31:31 24 4
gpt4 key购买 nike

我会尽量让这个问题具体化。

在 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 中计算的 vector vector 保存到 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))

感谢您的帮助,罗文<​​/p>

最佳答案

断言失败错误 nimages =..... 只是用作 imagePoints、imagePoints2 和 objectPoints 的参数的矩阵或 vector (该方法接受其中之一)的大小问题。这看起来很明显,但我在尝试将这些参数保存到 xml 文件并正确读取它们时遇到了令人沮丧的时间。

我笨拙地解决了这个问题,将我的 stereoCalibrate、stereoRectify 和视差图代码与我的校准结合起来,并将这些 vector 保存为全局变量。这不是处理此问题的最佳方法,因为我的代码繁重且繁重,但我认为有答案总比没有答案好。

谢谢,罗文<​​/p>

关于c++ - opencv 3.0 中的 stereoCalibrate() 方法时出现持续错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31295634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com