解决solvePnP(outDim, inDim, cameraMatrix, distCoeff, rvec, tvec);断延报错0x00007FFBC3844B89 处(位于 biaoding.exe 中)有未经处理的异常: Microsoft C++ 异常: cv::Exception,位于内存位置 0x000000571351B2D0 处。
进行三维点云映射到二维图像上用到opencv的solvePnP,运行时报错
OpenCV(4.5.1) Error: Assertion failed (( (npoints >= 4) || (npoints == 3 && flags == SOLVEPNP_ITERATIVE && useExtrinsicGuess) || (npoints >= 3 && flags == SOLVEPNP_SQPNP) ) && npoints == std::max(ipoints.checkVector(2, CV_32F), ipoints.checkVector(2, CV_64F))) in cv::solvePnPGeneric, file C:\build\master_winpack-build-win64-vc15\opencv\modules\calib3d\src\solvepnp.cpp, line 802
报错如下:

输入的三维点云坐标和二维像素坐标为:

在使用OpenCV的solvePnP进行三维点云到二维图像映射时,遇到断言错误。错误源于输入参数npoints与矩阵维度不匹配。通过检查并调整输入数据的维度,特别是避免在for循环中定义outDim和inDim,以及确保cameraMatrix的正确性,最终成功解决了问题,并得到了预期的旋转平移矩阵和映射结果。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



