首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何理解openCV中的“断言失败”错误?

如何理解openCV中的“断言失败”错误?
EN

Stack Overflow用户
提问于 2014-02-18 19:34:56
回答 2查看 2.1K关注 0票数 0

当我试图从原始图像创建ROI时,我得到了以下错误。我理解错误的含义(我的意思是,我理解原因)。--但是我不明白,我的代码的哪一行给了我这个错误?在我的整个代码中有几个地方我可以从原始框架中创建ROI。

错误:

代码语言:javascript
复制
OpenCV Error: Assertion failed (0 <= roi.x && 0 <= roi.width && roi.x + roi.width <=      m.cols && 0 <= roi.y && 0 <= roi.height && roi.y + roi.height <= m.rows) in Mat, file /tmp/buildd/ros-hydro-opencv2-2.4.6-3precise-20140130-1854/modules/core/src/matrix.cpp, line 323
terminate called after throwing an instance of 'cv::Exception'


 what():  /tmp/buildd/ros-hydro-opencv2-2.4.6-3precise-20140130-1854/modules/core/src/matrix.cpp:323: error: (-215) 0 <= roi.x && 0 <= roi.width && roi.x + roi.width <= m.cols && 0 <= roi.y && 0 <= roi.height && roi.y + roi.height <= m.rows in function Mat
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-18 19:54:50

无法知道异常正在抛出的代码行,除非您做了一些查找它的操作,例如:

  1. 使用调试器,并在使用ROI的每一行中断。
  2. 在使用ROI的每一行周围放置一个试着抓住块,并写出错误。

从使用ROIs的经验来看,很可能您正在尝试在某个地方使用ROI对图像进行子集,并且您正在超出界限。或者您的ROI大小为0,0。

票数 0
EN

Stack Overflow用户

发布于 2014-02-18 19:39:08

在调试器中运行您的代码,查看失败的地方,或者检查堆栈跟踪,以查看从哪个函数调用的函数。

或者,如果你不能做到这一点,在每个roi呼叫前面放置一个printf("ok1");等。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21863613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档