Я новичок компьютерного зрения.
Я использую этот алгоритм http://docs.opencv.org/doc/tutorials/features2d/feature_flann_matcher/feature_flann_matcher.html предложенный Open CV для того, чтобы вычислить некоторые совпадающие точки между 2 сценами одного и того же окружения (вид с воздуха на город) после рото-трансляции камеры, которая снимает изображения.
Камера и окружающая среда симулируются (поэтому нет изменения яркости, искажений и т. Д.)
Очевидно, что частота кадров достаточно высока для того, чтобы изображения в значительной степени перекрывались.
После этого я должен использовать эту точку для вычисления матрицы аффинного преобразования, которая описывает движение, выполняемое камерой (высота, с которой снимаются изображения, не изменяется со временем).
Так что мне нужно, для каждой пары изображений, по крайней мере 2 совпадающие точки ..
Моя проблема в том, что часто совпадающие точки меньше 3 ..
Существует ли какой-нибудь надежный метод, который лучше подходит для моих целей?
Спасибо
Я считаю, что фильтрация, реализованная в приведенном вами примере, довольно наивна. Предположим, вы получили одно совпадение с действительно высоким показателем (с расстоянием между дескрипторами), а затем min_dist
действительно маленький и, возможно, отфильтровывает хорошие совпадения. Другими словами, совпадения, имеющие лучший результат, не обязательно являются геометрически лучшими (две характеристики могут выглядеть очень похожими, но не соответствовать реальной ситуации) …
То, что вы можете попытаться сделать, это:
findHomography()
findHomography()
позволяет использовать mask
чтобы отслеживать следыmask
Это должно быть лучшей проверкой.
Других решений пока нет …