У меня есть CvSeq *, содержащий полигоны, созданные путем запуска cvApproxPoly () для CvSeq *, созданного из запуска cvFindContors на ч / б входном изображении. Я хочу получить доступ к CvPoints каждого полигона, возвращенного из CvSeq *. Выполните код следующим образом (контур представляет собой IplImage, содержащий ч / б входное изображение):
//create pointers to store data we're going to be calculating
CvMemStorage* storage = cvCreateMemStorage();
CvSeq* first_contour = NULL;
CvSeq* first_polygon = NULL;
//find the contours (edges) of the silhouette, in terms of pixels.
cvFindContours( &outlines,
storage,
&first_contour,
sizeof(CvContour),
CV_RETR_LIST );
//convert the pixel contours to line segments in a polygon.
first_polygon = cvApproxPoly(first_contour,
sizeof(CvContour),
storage,
CV_POLY_APPROX_DP,
2,
1);
Я могу использовать cvDrawContour для рисования многоугольника на изображении, но я хочу перебрать каждую 2D-точку, которая определяет каждый контур. Похоже, что каждый элемент CvSeq * first_polygon содержит набор точек для одного многоугольника (заключенный на основе значения first_polygon-> total; но я не знаю, как получить доступ к отдельным точкам. Помогите, пожалуйста?