2013-11-14 27 views
-1

我收到內存分配錯誤,當我調試代碼,並達到了HoughCircles行:內存分配錯誤/圓檢測/ OpenCV的/ C++

#define CV_HOUGH_GRADIENT 3; 
Mat Valv; 
if(sumValv[0] > sumHol[0]){ 
    vector<Vec3f> circles; 
    HoughCircles(Valv, circles, 3 , 1, Valv.rows/8, 200, 100, 0, 0); 
} 

做enybody知道是什麼原因?

+0

也許不相關:你確定你的意思是'sumValv [0]> sumValv [0]'?這總是錯誤的。 – leemes

+0

@leemes:我改正了:) – user2758510

+0

@leemes:你現在有什麼想法嗎? – user2758510

回答

5

Valv在使用HoughCircles之前未被初始化。你不能在圖像中找到一個不存在的圓...

+0

你的意思是我應該首先初始化墊子?! – user2758510

+0

當然可以。 HoughCircles的輸入是圖像(假定有圓圈)。它的輸出是在輸入圖像中找到的圓形陣列。沒有輸入就無法運行。 –

+0

很明顯,我應該用數據填寫墊子。此代碼是大代碼的一部分。我剛寫了Mat Valv;以顯示它的類型是墊:) – user2758510

0

問題是Mat Valv是32位,而它應該是8位的opencv。所以,我改變了它的類型爲int。它現在運行良好:)