Я использовал программу SURF из учебника для обнаружения объекта в видеокадре. но обнаруживает все ключевые точки и дескрипторы. как я изменяю программу для обнаружения только определенного объекта?Как обнаружить объект в видео с помощью SURF и C?
CvSeq *imageKeypoints = 0, *imageDescriptors = 0;
int i;
CvSURFParams params = cvSURFParams(500, 1);
cvExtractSURF(image, 0, &imageKeypoints, &imageDescriptors, storage, params);
printf("Image Descriptors: %d\n", imageDescriptors->total);
for(i = 0; i < imageKeypoints->total; i++)
{
CvSURFPoint* r = (CvSURFPoint*)cvGetSeqElem(imageKeypoints, i);
CvPoint center;
int radius;
center.x = cvRound(r->pt.x);
center.y = cvRound(r->pt.y);
radius = cvRound(r->size*1.2/9.*2);
cvCircle(frame, center, radius, red_color[0], 1, 8, 0);
}
Это возможно для системы реального времени, например, системы обнаружения дорожных знаков? – Thar1988
Несомненно, это так. Но вы должны видеть, сколько времени требуется, чтобы выполнить сопоставление со всеми знаками. Возможно, для этой задачи более простые соображения. –
Есть ли какой-либо метод, который вы должны предложить для этой системы обнаружения дорожных знаков? – Thar1988