2011-12-05 3 views
3

Я хочу иметь возможность проверить, не совпадают ли два изображения в пределах определенного порога.Сравнение двух изображений визуально

Image 1

Image 2

Эти два изображений являются одинаковыми для глаз, но имеет несколько различных цветов. Я попытался следующий пример:

http://www.vb-helper.com/howto_net_image_compare_threshold.html

К сожалению, это только кажется, чтобы обнаружить, когда изображения идентичны. Как определить, совпадают ли изображения в пределах определенного порога, с VB.NET?

+0

Не могли бы вы просто отобразить изображение, вернуть его, а затем использовать код, который у вас есть? – stimms

+0

Извините, не могли бы вы объяснить это? –

+0

Вы использовали TinEye.com? У них также есть API: http://ideeinc.com/products/pixmatch/ - я не вижу информации о его толерантности, но я уверен, что будет много других сторонних инструментов, похожих на HTH –

ответ

4
  1. Измените оба изображения на то же, небольшие размеры, такие как 16x12 или 90x60 (в зависимости от вашего порога).
  2. Уменьшите глубину цвета до 4 или 8 бит на пиксель (не палиттируйте). Для этого вы можете использовать функцию постеризации.

Затем посмотрите, являются ли два меньших изображения дублирующими. Если это так, оригиналы должны быть довольно близкими.

0
  • Разделить изображение в R, G, B
  • Для каждого цвета:
    • Для каждого (х, у):
      • Multiply пиксель изображения 1 с пикселя изображения 2
    • Сумма всех пиксельных значений
  • просуммировать 3 Valu es для каждого цвета

Это correlation между двумя изображениями. Чтобы получить значение от 0 до 1, сначала вычислите корреляцию изображения с самим собой, чтобы узнать, какое наилучшее возможное значение, затем выполните корреляцию изображения 1 с изображением 2 и разделите его на наилучшее возможное значение.

Смежные вопросы