簡體   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