Я не уверен, какова ваша конечная цель, как сказал амфетахин, но довольно распространенным подходом для обнаружения фигур может быть использование cvFindContours , которое дает двоичное изображение и возвращает набор 'CvContour '(который фактически является cvSeq).Двоичное изображение может быть получено довольно просто путем установки порогового значения изображения (cvThreshold).Посмотрите на пример contours.c в каталоге sample / of opencv src.Также проверьте эту ссылку:
Noah (2009) opencv tutorial
этот пример кода даст вам общее представление:
cvThreshold( g_gray, g_gray, g_thresh, 255, CV_THRESH_BINARY );
cvFindContours( g_gray, g_storage, &contours );
cvZero( g_gray );
if( contours ){
cvDrawContours(
g_gray,
contours,
cvScalarAll(255),
cvScalarAll(255),
100 );
}
cvShowImage( "Contours", g_gray );
Один разу вас есть кодировка контура, который вы можете использовать cvMatchShapes , который принимает 2 контура и возвращает меру сходства между этими контурами.
Надеюсь, этот подход обеспечит вам быстрый старт!