gpt4 book ai didi

c++ - 断言失败CV_Assert(CV_IS_MAT(objectPoints)&& CV_IS_MAT(imagePoints)&& CV_IS_MAT(A)&& CV_IS_MAT(rvec)&& CV_IS_MAT(tvec))

转载 作者:行者123 更新时间:2023-12-02 17:28:12 24 4
gpt4 key购买 nike

我已经校准了相机并获得了0.17的重新投影错误,该文件另存为camera.yml。然后,我将此文件导入到aruco检测算法中,当我运行该算法时,一切正常,直到检测到aruco标记为止,但是,一旦检测到aruco标记,该代码将引发以下错误并停止运行。
cv exception: OpenCV(3.4.2) error: (-215:Assertion failed) (((objectPoints) != __null && (((const CvMat*)(objectPoints))->type & 0xFFFF0000) == 0x42420000 && ((const CvMat*)(objectPoints))->cols > 0 && ((const CvMat*)(objectPoints))->rows > 0) && ((const CvMat*)(objectPoints))->data.ptr != __null) && (((imagePoints) != __null && (((const CvMat*)(imagePoints))->type & 0xFFFF0000) == 0x42420000 && ((const CvMat*)(imagePoints))->cols > 0 && ((const CvMat*)(imagePoints))->rows > 0) && ((const CvMat*)(imagePoints))->data.ptr != __null) && (((A) != __null && (((const CvMat*)(A))->type & 0xFFFF0000) == 0x42420000 && ((const CvMat*)(A))->cols > 0 && ((const CvMat*)(A))->rows > 0) && ((const CvMat*)(A))->data.ptr != __null) && (((rvec) != __null && (((const CvMat*)(rvec))->type & 0xFFFF0000) == 0x42420000 && ((const CvMat*)(rvec))->cols > 0 && ((const CvMat*)(rvec))->rows > 0) && ((const CvMat*)(rvec))->data.ptr != __null) && (((tvec) != __null && (((const CvMat*)(tvec))->type & 0xFFFF0000) == 0x42420000 && ((const CvMat*)(tvec))->cols > 0 && ((const CvMat*)(tvec))->rows > 0) && ((const CvMat*)(tvec))->data.ptr != __null) in function 'cvFindExtrinsicCameraParams2'
该错误是由于
CV_Assert( CV_IS_MAT(objectPoints) && CV_IS_MAT(imagePoints) && CV_IS_MAT(A) && CV_IS_MAT(rvec) && CV_IS_MAT(tvec) );
可以在opencv / modules / calib3d / src / calibration.cpp的第996行(https://github.com/opencv/opencv/blob/3.4/modules/calib3d/src/calibration.cpp)中找到。

我知道Rvecs和TVecs是在校准文件的帮助下生成的。校准中的内容似乎格式不正确。

我有一个属于另一个摄像机的样本校准文件(sample.yml)。当我在运行aruco检测算法时导入该文件时,它运行时没有任何错误。

这些文件的内容(以防您要比较它们)在此处提供:

  • camera.yml:https://www.codepile.net/pile/mO4DGDOR
  • sample.yml:https://www.codepile.net/pile/5qBKoNP6

  • 我正在使用OpenCV 3.4.2。

    最佳答案

    整个问题是两个文件之间的命名约定不一致。我将名称从sample.yml复制到camera.yml,它开始工作。有时解决方案就是这么简单。

    关于c++ - 断言失败CV_Assert(CV_IS_MAT(objectPoints)&& CV_IS_MAT(imagePoints)&& CV_IS_MAT(A)&& CV_IS_MAT(rvec)&& CV_IS_MAT(tvec)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57717023/

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