в моем проекте мне нужно сравнить с изображениями. Одно изображение показывает модель рендеринга, а другое - фотографию, на которой показан реальный объект, представленный в модели. Что я точно хочу:
- Алгоритм должен сравнивать два изображения и возвращать число, которое описывает сходство. Скажем, чем меньше число, тем лучше картинки сочетаются друг с другом.
- Оба изображения представлены в виде двоичных изображений, которые содержат только контуры / края реального рендера-изображения / фотографии.
- На фотографии гораздо больше объектов, чем на рендере. Поэтому я хочу только проверить, является ли точка обзора объекта рендеринга практически такой же, как точка обзора реального объекта на фотографии. (Пример: автомобиль смоделирован так, что он приближается к реальному автомобилю. Я фотографирую реальный автомобиль с особой позиции и ориентации. Теперь я хочу проверить, смотрят ли положение и ориентация моей виртуальной камеры на машину визуализации почти то же самое, что и положение и ориентация моей реальной камеры). Решение состоит только в том, чтобы сравнить белые пиксели изображения рендеринга с пикселями фотографии (как изображение края). Другие пиксели не интересны.
- Возвращаемое значение сравнения изображений должно уменьшаться, чем лучше моя ориентация, и положение виртуальной камеры соответствует реальной ориентации и положению камеры.
Я пытался вычислить евклидово расстояние двух изображений, но результат был хорош только тогда, когда пиксели точно совпадали друг с другом. Сейчас я ищу альтернативы.
До сих пор я думал об использовании нормализованной взаимной корреляции, но я действительно не знаю, подходит ли она для моей задачи.
Вопрос в том, стоит ли попробовать нормализованную взаимную корреляцию или есть более эффективные методы решения моей проблемы!
Алгоритм должен быть максимально быстрым, потому что я сравниваю множество изображений.
Большое спасибо
Спасибо за ваши предложения. Я немного сбит с толку из-за того, что нормализованное кросс-корреляция и расстояние Хауссдорфа кажутся хорошими для нахождения маленького рисунка на большой картине.
Вопрос в следующем: хорошо ли использовать два алгоритма для сравнения двух изображений одинакового размера?
Вот пример двух изображений, которые нужно сравнить. Сейчас я сравниваю около 120 изображений-пар в секунду.
Очень жаль, что я не могу публиковать изображения как новый пользователь. Так вот прямая ссылка:
http://s14.directupload.net/file/d/2674/t8qzbq9i_png.htm