gpt4 book ai didi

c++ - 断言失败 <0 <= i && i <vv.size<>> 未知函数,文件 src\matrix.cpp,第 912 行

转载 作者:行者123 更新时间:2023-11-28 03:38:50 27 4
gpt4 key购买 nike

首先,我是这个网站的新手(但我很长时间以来一直在阅读和收集信息 :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;
}

当我运行它时,我得到了标题中的断言(“断言失败 <0 <= i && i < <int>vv.size<>> 在未知函数中,文件 src\matrix.cpp,第 912 行”)并且如果我注释行 convexHull(contorni, hull);它确实有效...我真的不知道问题出在哪里...所以,如果有人能提供帮助,我将不胜感激!:)

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

最佳答案

该断言是由于代码试图访问 contorni 对象的无效索引(请参阅当前 source code) 中的第 937 行。我怀疑这最终是由于传递了无效的 contorni 对象到 convexHull() 函数中,可能是一个空 vector 。通常情况下,我希望函数检查并拒绝无效输入,尽管我对 openCV 的了解不够了解该功能是否需要有效输入(documentation 没有以任何方式提及)。

为避免此错误,我会显式检查 convexHull() 和/或 findContours() 的输入以确保其有效,如果无效则中止或做一些适当的事情。

关于c++ - 断言失败 <0 <= i && i <<int>vv.size<>> 未知函数,文件 src\matrix.cpp,第 912 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9979234/

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