Ответы пользователя по тегу OpenCV
  • Как узнать включает или нет изображение №1 объект с изображения №2 с помощью OpenCV?

    becks
    @becks Автор вопроса
    Огромное спасибо за исчерпывающий ответ. Сам на выходных еще почитал по теме, сейчас понимаю уже больше. Распишу, что и как делаю, уже с учетом вашего ответа.

    1) С помощью SURF ( класс SurfFeatureDetector, метод detect) определяю ключевые точки на образце и изображении.
    2) Для найденных точек рассчитываю значения дескрипторов ( класс SurfDescriptorExtractor, метод compute).
    3) Сопоставляю точки на целевом объекте и в сцене, получаю так называемые матчи ( FLANN, класс FlannBasedMatcher, метод match).

    Тут я как раз и хотел измерять расстояние между «матчами», но только не по min, max как описал в посте, а по среднему. И, если это значение меньше какого-то пограничного значения, то это говорит о нахождении картинки1 на картинке2. Но поскольку вы подсказываете, что количество ложных срабатывай велико, пока отказываюсь от этого варианта.

    4) В том примере, который я как раз и нашел (переделываю) используется как раз findHomography. docs.opencv.org/doc/tutorials/features2d/feature_homography/feature_homography.html
    Mat H = findHomography( obj, scene, CV_RANSAC );
    CV_RANSAC — как раз использую RANSAC.
    Но вот ее назначения я совсем не понимаю и как из матрицы преобразований H получить точные соответствия или что-то другое, что можно использовать.
    Ответ написан