Соответствие похожих изображений в OpenCV - PullRequest
1 голос
/ 02 июня 2011

У меня есть два набора изображений, {H} и {L}. {H} состоит из 512x512 изображений. {L} состоит из всех изображений в {H}, но уменьшено до 32x32-128x128 и с артефактами сжатия от сжатия с потерями.

Как лучше всего сопоставить изображения в {H} с их ближайшим соответствием в {L} с использованием OpenCV?

Ответы [ 3 ]

1 голос
/ 03 июня 2011

У меня 15-летний опыт работы с изображениями, и обычно, когда мне нужно точно выровнять два почти одинаковых (но, возможно, немного разных) слоя изображения в Photoshop, я установил режим смешивания верхнего слоя как «Исключение» (т.е. XOR). , Это делает изображение полностью черным, когда все пиксели имеют одинаковые значения.

Вы можете сделать что-то подобное с OpenCV.

Убедитесь, что вы уменьшаете изображение большего размера, чтобы соответствовать размерам меньшего изображения с той же интерполяцией , с которой уменьшенное изображение уменьшено. Это может быть ближайший сосед, т.е. выбрать каждый n-й пиксель в сетке (с округлением до целых пикселей или границ пикселей) или бикубический (один пиксель рассчитывается в форме, интерполированной между 4 * n пикселями). Ближайший сосед явно быстрее ...

Затем создайте гистограмму и вычислите некоторую статистику или даже БПФ разности.

1 голос
/ 03 июня 2011

Другой, хотя, возможно, гораздо более медленный подход - сделать Кластеризация по сжатию (Arxviv.org, PDF) и, возможно, использовать коэффициенты JPEG в качестве данных модели для сравнения вместо несжатые данные изображения, сжатые другим методом сжатия. Также см. статьи, относящиеся к первой статье из Google Scholar.

Кластеризация путем сжатия в основном означает сжатие файла X с использованием (статистической) модели из файла Y и сравнение с размером до простого сжатия X с использованием данных его собственной модели.

Вот некоторые сведения об идее , использующей различные статистические модели для сжатия . Сжатие JPEG использует кодирование Хаффмана или арифметическое кодирование для сжатия таблиц коэффициентов постоянного тока.

Еще один вариант, который может быть намного быстрее, если меньшие изображения не просто уменьшены и / или обрезаны, - использовать алгоритмы SIFT или SURF, как это было предложено Ваджи.

1 голос
/ 02 июня 2011

Ну, это открытый вопрос в некоторой степени.Если вам нужно сопоставить изображения, основываясь на том факте, что не будет аффинных, перспективных преобразований, вращательных преобразований, то вы просто создадите согласованную шкалу для обоих наборов и выполните однозначное сопоставление, выполнив, скажем, сопоставление соответствия,Если вы знаете одну или две вещи по обработке изображений или компьютерному зрению, вы можете попробовать использовать такие передовые вещи, как SURF, SIFT, Gist и т. Д., Чтобы соответствовать изображениям.Действительно зависит от того, что вам нужно.И это, кстати, станет более сложной задачей.

...