2012-06-03 4 views
2

Я использовал программу 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); 
} 

ответ

3

Алгоритм подавлен, чтобы обнаружить все надежные ключевые точки. Единственный способ, которым вы должны обнаружить конкретный объект с помощью таких алгоритмов, - это изображение объекта, который вы хотите обнаружить (называемый маркером), чтобы иметь возможность сравнивать эти ключевые точки в маркере с ключевыми точками на изображении. Те пары, которые соответствуют , являются общими в amrker и на изображении.

Важно, что вы понимаете метод:

1 - У вас есть маркер с изображением вы хотите обнаружить. Вы используете SURF, FAST, SIFT или любой другой алгоритм для обнаружения ключевых точек. Это оффлайн, вы делаете это только один раз в начале.

2 - Вы начинаете получать кадры с видео, и вы используете SURF для каждого кадра для обнаружения ключевых точек в видео.

3 - Здесь это реальная обрабатывающая часть, где вы «сопоставляете» точки в маркере с точками на изображении. Если вы не получаете совпадений с объектом, это не на изображении.

Посмотрите на это example.

+0

Это возможно для системы реального времени, например, системы обнаружения дорожных знаков? – Thar1988

+0

Несомненно, это так. Но вы должны видеть, сколько времени требуется, чтобы выполнить сопоставление со всеми знаками. Возможно, для этой задачи более простые соображения. –

+0

Есть ли какой-либо метод, который вы должны предложить для этой системы обнаружения дорожных знаков? – Thar1988

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

  • Нет связанных вопросов^_^