У меня есть CvSeq *, содержащий многоугольники, созданные путем запуска cvApproxPoly() на CvSeq *, созданного из запущенного cvFindContors, на входное изображение b & w. Я хочу получить доступ к CvPoints каждого многоугольника, возвращенного из CvSeq *. Код до сих пор выглядит следующим образом (очерчивает является IplImage, содержащим б & ш входного изображения):Получение точек полигонов, созданных cvApproxPoly()
//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 ;, но я не знаю, как получить доступ к отдельным точкам. Помогите пожалуйста?
можете ли вы сказать, является ли этот метод доступен в javacv, а? – 2012-06-21 00:34:50