2015-04-26 5 views
0

Я новичок в обработку изображений, и я работаю на реальное время отслеживанияOpenCV findContours() разбивает программу

Но я застрял с функцией findCountours.

cvtColor(*pImg, *pImg, CV_RGBA2GRAY); //convert to gray image 
Mask = pImg->clone(); //clone the source 
Mask.convertTo(Mask,CV_8UC1); //convert to 8UC1 
vector<vector<Point> > contours; 
vector<Vec4i> hierarchy; 
findContours(Mask, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0) ); 
contours.clear(); 
hierarchy.clear(); 

и когда я запускаю программу он выходит из строя, если я комментирую функцию findCountours это будет хорошо.

Я проверил некоторые документы, но нет никакой информации о том, что произошло.

+1

Вам необходимо бинарировать входные данные, чтобы найти Контуры, например. применяя порог или Sobel. также, пожалуйста, избегайте использования указателей на cv :: Mat, вы неизбежно столкнетесь с внутренними пересчетами таким образом. – berak

ответ

0
Mask = pImg->clone(); //clone the source 
Mask.convertTo(Mask,CV_8UC1); //convert to 8UC1 

заменить

pImg.convertTo(Mask, CV_8U, arg); 

Arg может быть различным для разных типов входного изображения. 255 для float/double.

0

Попробуйте использовать «Детектор кантовских кромок или пороговый оператор» перед тем, как найти контуры. Выберите оператора на основе задачи, которую необходимо выполнить.

`cvtColor(*pImg, *pImg, CV_RGBA2GRAY); //convert to gray image 
    Mask = pImg->clone(); //clone the source 
    Mask.convertTo(Mask,CV_8UC1); //convert to 8UC1 
    vector<vector<Point> > contours; 
    vector<Vec4i> hierarchy; 
    /*based on your need use any of these operator */ 
    threshold(input, output, threshold_value, max_BINARY_value,threshold_type); 
    Canny(input, canny_output, thresh, thresh*2, 3); 
    findContours(output, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0) ); 
    contours.clear(); 
    hierarchy.clear();` 
+0

Привет, я попробовал обе 2 функции, но на самом деле у меня есть ошибка кучи только из инструкции findcontour. –

Смежные вопросы