Анализ соответствия в OpenCV
Я ищу способ в OpenCV (или даже лучше в JavaCV) сделать анализ корреспонденции. В основном у меня есть два изображения, взятые с двух разных точек зрения. Теперь мне нужно найти соответствующие точки на двух изображениях. Результат должен выглядеть примерно так:
Есть ли у OpenCV какие-либо методы для этого?
2 ответа
Абсолютно. Есть много способов отслеживать функции в OpenCV с помощью различных детекторов и трекеров.
Проверьте это: http://docs.opencv.org/2.4.2/doc/tutorials/features2d/feature_flann_matcher/feature_flann_matcher.html
Я уверен, что этот вопрос также задавался и отвечался много раз, даже здесь, на stackru.
Преобразование пространственно-инвариантных объектов (или SIFT) - это алгоритм в компьютерном зрении для обнаружения и описания локальных особенностей на изображениях. Алгоритм был опубликован Дэвидом Лоу в 1999 году.SIFT - это метод обнаружения отдельных, инвариантных характерных точек изображения, которые легко можно сопоставить между изображениями для выполнения таких задач, как обнаружение и распознавание объектов, или для вычисления геометрического преобразования между изображениями.
Точки SIFT объектов сначала извлекаются из набора эталонных изображений и сохраняются в базе данных. Объект распознается в новом изображении путем индивидуального сравнения каждого объекта из нового изображения с этой базой данных и поиска подходящих объектов-кандидатов на основе евклидова расстояния их векторов объектов. Вы можете сопоставить ключевые точки, используя FLANN.
SIFT является инвариантом масштаба, вращения, освещения и точки обзора.SIFT будет лучшим выбором для вас. OpenCV имеет отличную поддержку SIFT. http://docs.opencv.org/modules/nonfree/doc/feature_detection.html?highlight=sift
Если вы хотите пример кода, вы можете посмотреть здесь. http://jayrambhia.com/blog/sift-based-tracker