Cравнение изображений

Материал из Кафедра АСОИУ
(перенаправлено с «Cравнение»)
Перейти к: навигация, поиск

Содержание

Введение

Данная курсовая работа по дисциплине «Информатика». Ее цель состоит в написании приложения, оценивающего степень разности между двумя изображениями.

В ходе работы нужно скомбинировать метод, описанный в статье с методами, описанными в комментариях к ней, и доказать эффективность выбранной комбинации.

Немного теории

Процесс сравнения двух изображений в идеале должен отвечать на вопрос о сходстве содержания изображений. Содержат ли сравниваемые изображения одни и те же объекты с точностью до изменения ракурса съемки и перемещений камеры, изменения освещенности или масштаба объектов и т.д.

Одной из проблем при сравнении изображений является разный размер картинок. Однако достаточно очевидным решением этой проблемы является приведение всех изображений к одинаковому размеру.

Остается выбрать этот размер – если выбрать его слишком маленьким, то очевидно, что различия между изображениями тогда будут уравниваться, и у нас будет много ложноположительных срабатываний. При слишком большом размере неоправданно повышается ресурсоёмкость алгоритма сравнения. Выберем размер 8х8 для своего алгоритма.

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

При разбиении RGB-цветов по яркости вычисляется интенсивность каждого цвета на основании его красной, синей и зеленой составляющих. Полученное значение заключено между числами 0 и 255.

Описание алгоритмов

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

1. Уменьшаем изображение, чтобы оставить только значимые объекты картинки (избавление от высоких частот).

В изображениях, высокие частоты обеспечивают детализацию, а низкие частоты показывают структуру. Большая фотография содержит много высоких частот, а маленькая картинка целиком состоит из низких. Уменьшаем картинку до 8х8, тогда общее число пикселей составит 64 и будет соответствовать всем вариантам изображения, независимо от их размера и соотношения сторон.

2. Убираем цвет. Переводим изображение, полученное на предыдущем шаге в градации серого. Из 64 пикселей (по 64 значения трёх каналов – красного, зелёного и синего) получим всего 64 значения яркости.

3. Находим среднее значение яркости получившегося изображения.

4. Бинаризация картинки. Оставляем только те пиксели, которые больше среднего (считаем их за 1, а все остальные за 0).

5. Сравниваем полученные значения для двух картинок и считаем совпадения.

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

Результаты тестирования

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

Ошибка создания миниатюры: Данный тип изображения не поддерживается

Т.е. добавление текста и других небольших изменений не сильно мешает обнаружить похожие изображения.

На следующем рисунке показано сравнение двух одинаковых картинок, но яркость второй изменена. Видно, что изменение яркости сильнее влияет на результат, чем добавление текста и небольших дорисовок.

Ошибка создания миниатюры: Данный тип изображения не поддерживается

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

Ошибка создания миниатюры: Данный тип изображения не поддерживается

А вот таким будет результат сравнения абсолютно разных изображений.

Ошибка создания миниатюры: Данный тип изображения не поддерживается

На основе полученных значений можно сделать вывод, что если разница между изображениями меньше 5, то они, скорее всего, одинаковы. Если от 4% до 10%, то изменены. Ну а если больше 10% то, вероятно, совсем разные.

Автор: А.П. Рудюк
Личные инструменты