@Quarintium

Как распознать объект (С/С++)?

Имеется каталог картинок (папка с картинками). Размеры картинок (высота, ширина) одинаковые. Картинки появляются на экране.
Нужно найти картинку на экране и записать в массив имя файла из каталога, которой соответствует эта картинка.

На экране картинка может отличаться по размерам от картинки в каталоге.

С помощью чего это можно сделать?
  • Вопрос задан
  • 3430 просмотров
Пригласить эксперта
Ответы на вопрос 4
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Ну когда вы конкретизируете, что именно изображено на картинке, тогда можно будет что-то дельное посоветовать. В любом случае 100% точности не добиться.

А так - вооружайтесь OpenCV и в бой.
Ответ написан
AxisPod
@AxisPod
Если картинка не кропалась, то искать соответствие не очень сложно. Делали так, даже работает.
Обрабатываются картинки в базе: перевод в YCrCb, уменьшение размера до 8 на 8 без сохранения пропорций, взятие нескольких хэшей по каждой цветовой компоненте, хэши берутся по битам с пиксела, начиная со старших (если делать как было в какой-то из статей на хабре, там не учитывался цвет, будет каша). Сохраняются хэши в базе. Затем для искомой делается тоже самое и ищутся хэши в базе с некоторым расстоянием хэмминга, тут уже надо подобрать. Но это поможет только в случае, если картинки довольно заметно отличаются.
Ответ написан
Комментировать
@ivandzemianchyk
Если я правильно понял вопрос, то достаточно привесди все фотографии к одному размеру ( к примеру 30x30) икогда вы хотите найти найболее похожее, эту картинку уменьшить до соответствующего размера и проверить корреляцию с каждым изображением из каталога.

Пирсона( кросскореляция)

описывается одной формулой которая может и выглядит страшновато, но проблем не создаёт.
допустим корреляция между двумя картинками это r.
если r = 1, это значит что картинки идентичны. Чем ближе корреляция к единице, тем сильнее данные изображения похожи одно на другое.
Есть миллион других решений, но как по мне это самое простое и быстрое.
Ответ написан
@Quarintium Автор вопроса
@ivandzemianchyk, будет рассчитываться по формуле от сюда:
masters.donntu.edu.ua/2009/ggeo/striltsiv/library/... ?
есть разница с формулой из этого документа:
www.nanoscopy.ru/upload/files/articles/Weekly_Arti...
после слов "Взаимная корреляция двух изображений" на третьей странице?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы