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




