Задать вопрос

У нас есть фрагмент фото. Как найти его координаты на полном фото?

5e0957d34f0ca602304688.png
plyazhi-evpatorii-1.jpg

Есть фрагмент фото (изображение 1).
Есть полное фото (изображение 2).
Какой наиболее простой способ получить координаты этого фрагмента на полном фото?
Пропорции одинаковые, никакую обработку не проходили.
  • Вопрос задан
  • 1896 просмотров
Подписаться 6 Простой 4 комментария
Решения вопроса 2
dom1n1k
@dom1n1k
Если фрагмент строго попиксельно идентичен куску большого изображения, то всё просто.
Берется первый ряд пикселей фрагмента и проверяется его вхождение в ряды пикселей исходника.
То есть это фактически задача поиска подстроки в большой строке. Это суперклассическая задача, по ней написаны тонны научных работ, разработано стопиццот оптимизированных алгоритмов, многие реализованы в библиотеках. Да хоть википедию можно смотреть:
https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B8%D...
Если найден - проверяются последующие ряды.

Вот если вхождение нестрогое (например, фрагмент отмасштабирован, или яркость не совпадает, или просто немного покоцан jpeg-пересжатием) - тогда всё сильно сложнее.
Ответ написан
@towin
В данном случае вряд ли нужна полноценная корелляция. Достаточно взять левый верхний пиксель фрагмента и построчно искать его среди пикселей большой картинки. Для каждого совпадения сравнивать другие пиксели фрагмента, пока наконец не найдем место, где все пиксели фрагмента совпадут с большой картинкой.
Ответ написан
Пригласить эксперта
Ответы на вопрос 6
hint000
@hint000
у админа три руки
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Ясно, что нужно начинать с крупных объектов.
На данном примере - это: небо, песок и вода.
1. Ищем линию границ крупных объектов (обводка) и находим значимые "точки" (круговая область с автоматическим радиусом): те, где линия изгибается уникально.
2. Производим сопоставление этих точек на фрагменте и полном изображении, используя повороты только этих небольших круговых областей в ч/б режиме.
3. При совпадении любых двух из них (фрагмента с полным изображением) - мы сразу же знаем точные координаты искомого фрагмента на полном изображении.
Ответ написан
@UPSA
anykey. Я не программист, я просто ленивый.
Внесу вклад для запутывания ...
Тут чистая математика с теорией вероятности (кажись) и численных методов.
Берешь Хеш фрагмента и сравниваешь с Хешем участков полного фото.
Есть программы для 3-D панорам которые сшивают плоские фото в объемное изображение. Те же принципы.
Ответ написан
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
opencv surf
Раз в тегах есть nodejs, то можно воспользоваться https://www.npmjs.com/package/opencv4nodejs
Ответ написан
Комментировать
mayton2019
@mayton2019
Bigdata Engineer
Давайте сразу самую хардкорную постановку. Изображение было скейлировано. Тоест по-пиксельное сравнение вам ничего не даст. Нужно что-то более умное.
Ответ написан
MDiMaI666
@MDiMaI666
Талантливый программист
Еще совет предварительно картинку ужать обе пропорционально и градиентом серого сделать сделать, это ускорит предварительный поиск потом уже уточнять края
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
18 дек. 2024, в 11:03
5000 руб./за проект
18 дек. 2024, в 10:44
130000 руб./за проект
18 дек. 2024, в 10:02
7000 руб./за проект