我正在嘗試檢測一個球並繪製它的邊界。它顯示了錯誤findcontours中的段錯誤opencv
segmentation fault (core dumped)
的錯誤是這裏的某個地方,
vector<vector<Point> > contours;
vector<Vec4i> hierarchy;
Mat itt = Mat::zeros(imgThresholded.size(), CV_8UC1);
itt = imgThresholded*255;
Canny(itt ,itt, 10, 30, 3);
vector<vector<Point> > contours_poly(contours.size());
vector<Point2f>center(contours.size());
vector<float>radius(contours.size());
vector<Rect> boundRect(contours.size());
imshow("canny", itt);
//CIRCLE HOUGH
//vector<Vec3f> circles;
findContours(itt, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0));
for(int i = 0; i < contours.size(); i++)
{
Scalar color = Scalar(255,255,255);
if(contours[i].size() > points)
{approxPolyDP(Mat(contours[i]), contours_poly[i], 3, true);
boundRect[i] = boundingRect(Mat(contours_poly[i]));
minEnclosingCircle((Mat)contours_poly[i], center[i], radius[i]);
circle(imgOriginal, center[i], (int)radius[i],color, 2, 8, 0);
}
}
我無法理解那裏有段錯誤。
*我無法理解哪裏有段錯誤。* - 那麼如果出現問題,您還沒有準備好調試您的應用程序?哪一行代碼會產生分段錯誤? – PaulMcKenzie
for條件有問題,評論時沒有問題。而且,沒有評論它..它的作品,但是當我把球帶到屏幕上,代碼剛剛退出並顯示此段錯誤。即;如果有任何東西被檢測到,則代碼停止。無法理解問題的位置 –
如果'findCountours'通過引用獲取'contour',並且在該函數中,它將項目移除或添加到'countours'向量,則其他向量的大小沒有適當調整。 – PaulMcKenzie