I0617 23:28:10.348150 D 7603 visual_odometry.cpp:44] vo is running
cerminate called after throwing an instance of 'cv::Exception'
what (): Opencv(3.4.7)/home/zb/slambook2/3rdparty/opencv-3.4.7/modules/video/src/lkpyramid.cpp:1228: error:(-215:Assertion failed) (npoints = prevPtsMat.che ckVector(2, CV_32F, true)) >= 0 in function 'calc'
Aborted (core dumped)
SLAM十四讲ch13运行run_kitti_stereo报错
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
问题描述: 在运行过程中发生了异常,提示错误信息为OpenCV的Assertion failed,并给出了具体的代码行数和错误信息。最后程序非正常退出,核心已经被转储。 解答: 这个问题提示了运行时异常,并给出了错误的具体信息。根据提示,错误发生在Visual Odometry的程序中,线程在执行LK光流时发生了异常。具体的异常信息是:OpenCV中的Assertion failed。这个错误提示表示某个条件不满足导致了程序崩溃。 错误的具体信息是:(npoints = prevPtsMat.checkVector(2, CV_32F, true)) >= 0 。这个错误提示表示计算LK光流时,检查输入矩阵prevPtsMat的大小是否正确。 解决这个问题的方法是检查输入矩阵prevPtsMat是否为空或矩阵大小是否正确。我们可以使用OpenCV的函数来检查矩阵的大小和数据类型。例如,可以使用下面的代码来检查输入矩阵prevPtsMat的大小和数据类型: if (!prevPtsMat.empty() && prevPtsMat.isContinuous() && prevPtsMat.type() == CV_32F && prevPtsMat.checkVector(2) > 0) { // LK光流计算代码 } else { // 输入矩阵prevPtsMat的大小和数据类型不正确,需要处理异常 } 上面的代码中,我们首先检查矩阵prevPtsMat是否为空,接着使用函数isContinuous()检查矩阵是否是连续的数据空间,然后检查矩阵的数据类型是否是CV_32F,最后检查矩阵的尺寸是否正确。如果这些条件都满足,那么执行LK光流计算的代码。否则,我们需要处理异常,可能需要输出错误信息并结束程序。 案例: 在某个Visual Odometry程序中,运行过程中出现了类似于上述的异常信息,如下图所示: 根据错误提示,可以发现问题是出在LK光流的计算上。利用OpenCV的debug功能,可以查看问题出现的代码,判断是哪个变量或指针在计算时出现了问题,比如下图所示的代码: 根据代码可以发现,问题可能是出在输入矩阵prevPtsMat的大小或者数据类型上。因此,我们可以添加异常处理的代码,如下所示: if (!prevPtsMat.empty() && prevPtsMat.checkVector(2, CV_32F, true)) >= 0) { if (prevPtsMat.isContinuous()) {// LK光流计算代码
} else { cerr << "Error: input matrix is not continuous" << endl; exit(1); } } else { cerr << "Error: input matrix size is not correct" << endl; exit(1); } 在上面的代码中,我们首先判断输入矩阵prevPtsMat是否为空和尺寸大小是否正确。如果满足条件,我们继续检查矩阵是否是连续的数据空间。如果是,则继续执行LK光流计算。否则,我们输出错误信息并结束程序。 代码:
解决 无用评论 打赏 举报
悬赏问题
- ¥15 35114 SVAC视频验签的问题
- ¥15 impedancepy
- ¥15 在虚拟机环境下完成以下,要求截图!
- ¥15 求往届大挑得奖作品(ppt…)
- ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
- ¥50 浦育平台scratch图形化编程
- ¥20 求这个的原理图 只要原理图
- ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
- ¥20 微信的店铺小程序如何修改背景图
- ¥15 UE5.1局部变量对蓝图不可见