繁体   English   中英

断言失败&lt;0 &lt;= i &amp;&amp; i &lt; <int> 未知函数中的vv.size &lt;&gt;&gt;,文件src \\ matrix.cpp,第912行

[英]Assertion Failed <0 <= i && i < <int>vv.size<>> in unknown function, file src\matrix.cpp, line 912

首先,我是新来的网站(但是我很长时间以来一直在阅读和发布信息:D)很抱歉,如果我在构建问题时会犯一些错误......最重要的是,我我是编程新手(确定不是新的,但是我在6个月前开始)..无论如何,这是代码(感兴趣的部分):

extern DWORD miothread3 (LPDWORD lpdwParam)
{

Mat epsilon(dest);
Mat finale;
Mat *super;
int ratio = 3;
int lowThreshold;
int kernel_size = 3;
int i = 0;
CvConvexityDefect convessione;
vector<vector<Point> > contorni;
vector<Vec4i> gerarchia;
Mat hull;

while(1)
{
    Canny(epsilon, finale, lowThreshold, lowThreshold*ratio, kernel_size );
    findContours(finale, contorni, CV_RETR_LIST, CV_CHAIN_APPROX_NONE);
    convexHull(contorni, hull);
}
return 0;
}

当我运行它时,我得到了标题中的断言(“Assertion Failed <0 <= i && i < <int>vv.size<>> in unknown function,file src \\ matrix.cpp,line 912”)如果我评论convexHull(contorni, hull); 它确实有效......我真的无法弄清楚问题是什么......所以,如果有人可以提供帮助,那就太可爱了!:)

提前谢谢,最诚挚的问候。

该断言是由于代码试图访问contorni对象的无效索引(参见当前源代码中的第937行 我怀疑这最终是由于将一个无效的contorni对象传递给convexHull()函数,可能是一个空向量。 通常,我希望函数检查并拒绝无效输入,虽然我不太了解openCV是否知道它是否需要有效输入的功能( 文档没有提到它的方式或其他)。

为了避免这个错误,我会明确地检查输入到convexHull()和/或findContours()以确保它是有效的并且中止或做一些适当的事情(如果不是)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM