Задача: загрузка и обработка полученных изображений карты от левой верхней координаты до правой нижней.
- 19 - здания (ближе)
- 16 - улицы (дальше)
Изначально было решено загрузить все изображения в заданном пользователем масштабе, предварительно подобрав нужный шаг перемещения по карте. После того, как все изображения были получены, возник вопрос о том, какими средставми их лучше объединять.
Сперва я решил воспользоваться встроенным методом библиотеки cv2 — createStitcher().
Результаты на 3-5 изображениях были неплохие, но когда речь заходила об конкантинации > 50 кусочков, то тут встроенный ститчер не справлялся.
- Я воспользовался алгоритмом масштабно-инвариантной трансформации признаков (SIFT) для извлечения ключевых точек на двух соседних изображениях:
левое изображение | правое изображение |
---|---|
- После выявления признаков, я рассчитал совпадения дескрипторов на обоих изображениях:
совпадения дескрипторов |
---|
- Выполнил слияние изображений, применя метод оценки параметров модели на основе случайных выборок (RANSAC), получил следующий результат:
результат слияния двух изображений |
---|
оценка производительности алгоритмов |
---|