Сравнение черно-белых изображений

advertisement
Федеральное агентство по образованию Российской Федерации
Государственное образовательное учреждение высшего профессионального образования
«Ярославский государственный университет им. П.Г.Демидова»
Кафедра теоретической информатики
Сравнение черно-белых цифровых изображений при помощи
характеристического набора фрагментов черно-белого изображения
размера 2 на 2.
Курсовая работа
по специальности
Математическое обеспечение и администрирование информационных систем.
Научный руководитель
к.ф.-м.н., доцент
___________ П.Г.Парфёнов
«___» _______________ 2011 г.
Студент группы МО-41
____________ Девятов И.С.
«___» _______________ 2011 г.
Ярославль 2011
Содержание
Введение. ..................................................................................................................................................... 3
1.
Понятие эйлеровой характеристики ................................................................................................. 5
2.
Характеристический набор изображения, построенного на основе прямоугольной решетки. . 7
3.
Описание программной реализации алгоритма. ............................................................................ 9
3.1
Цель написания программы и принцип работы ..................................................................... 9
3.2
Интерфейс ................................................................................................................................... 9
3.3
Основные функции ..................................................................................................................11
3.4
Реализация основных участков кода. ....................................................................................13
3.4.1
BWImageFragment ...........................................................................................................13
3.4.2
StandardFragments ...........................................................................................................13
3.4.3
BWImageComparator .......................................................................................................14
Заключение. ...............................................................................................................................................15
Список используемой литературы. ..........................................................................................................16
2
Введение.
В данной курсовой работе рассматривается один из методов для нахождения различий
между цифровыми черно-белыми изображениями, основанный на характеристических
наборах соответствующих изображений. Даны определения характеристического набора
изображения, фрагмента черно-белого изображения размера 2 на 2 и взаимосвязь между
наборами данных фрагментов двух изображений.
Задача данной работы заключается в следующем:
 Изучение характеристического набора коэффициентов черно-белых цифровых
изображений.
 Программная реализация алгоритма для подсчета характеристического набора
черно-белых фрагментов размера 2 на 2 произвольных изображений.
 Сопоставление характеристических наборов двух цифровых черно-белых
изображений и нахождение различий между изображениями на их основе.
Под цифровым изображением, построенным на основе прямоугольной решетки,
понимается изображение, для которого аналогами пикселей являются прямоугольные
элементы некоторой прямоугольной решетки. Через аij будем обозначать как сам этот
элемент, так и значение его цветности ( 0 – для обозначения белого пикселя и 1 – для
черного ). Таким образом, изображение можно представить в виде матрицы A=(аij)
размера m*n.
Под фрагментом черно белого цифрового изображения размера 2 на 2 Si будем
понимать матрицу 2 на 2, состоящую из 4 цифр ( нулей и единиц ), где каждая цифра
отвечает за цветность конкретного пикселя на участке цифрового изображения.
Получается подматрица из 4 элементов матрицы А.
ai j ai j+1
ai+1 j ai+1 j+1.
Всего таких фрагментов 16 возможных вариантов. Пример фрагментов:
S0
S1
S2
S3
S4
S5
…
Набор неотрицательных целых чисел, являющихся количеством фрагментов
каждого типа, будем называть характеристическим набором коэффициентов изображения
А, построенных по системе фрагментов размера 2х2.
В данной работе производится анализ цифрового черно-белого изображения и
подсчет его характеристического набора с целью решения задачи о нахождении различий
двух цифровых черно-белых изображений. Данный метод не позволяет со 100%-ой
3
уверенностью сказать, что изображения одинаковы, но если характеристические наборы
изображений различаются – изображения не идентичны.
4
1. Понятие эйлеровой характеристики
 - эйлерова характеристика - это число, которое ставится в соответствие фигуре
и не изменяется при топологических диформациях
Формула Эйлера для прямой имеет такой вид:
В  Р = 1.
Она показывает, что разность ВР постоянна, т. е. не зависит ни от числа
выбранных точек, ни от их расположения, и выражает, таким образом, свойство самой
прямой. Если выбрать на прямой В штук точек, то они разбивают ее на В -1 отрезков и
два луча, т. е. всего на В + 1 частей. Обозначим число этих частей через Р.
Формула Эйлера для плоскости имеет такой вид:
В  Р  Г = 1.
Каждое семейство прямых разбивает плоскость на части, называемые гранями
разбиения; их число мы будем обозначать буквой Г. Вершинами разбиения называются
точки пересечения данных прямых, а ребрами разбиения  части, на которые прямые
делятся вершинами.
Число вершин и число ребер разбиения обозначим соответственно буквами В и Р.
Разбиение может не иметь ни одной вершины(и тогда В =0); это будет в том и только в
том случае, когда каждые две прямые параллельны. Ребрами такого разбиения
естественно считать сами прямые.
Формула Эйлера для плоскости показывает, что знакопеременная сумма ВР + Г
постоянна, т. е. не зависит ни от числа прямых, разбивающих плоскость, ни от их
взаимного расположения. Следовательно, формула Эйлера выражает свойство самой
плоскости.
Для одномерных изображений эйлерова характеристика вычисляется по
аналогичной формуле:
 = В  Р, где В -число вершин, Р - число ребер
Примеры подсчета эйлеровых характеристик:
5
=21=1
 = 3  4 = -1
=32=1
=54=1
=4 – 4 = 0
=44=0
6
2. Характеристический набор изображения, построенного на
основе прямоугольной решетки.
Эйлеровой характеристикой (А) изображения А будем называть эйлерову
характеристику
(А*) подмножества А плоскости XOY, построенного следующим образом:
А* = U{Kij : aij A, aij =1},
где Kij=[i, i+l]*[j, j+l] - соответствующий квадрат, лежащий в плоскости XOY.
Свойства функции :
1. Если изображение А' получено из изображения А" с помощью некоторого
целочисленного сдвига прямоугольной решетки, не выводящего изображение за
пределы соответствующей матрицы, то (А') = (А").
2. Для любых двух изображений А и В с полноценным пересечением выполнено
условие аддитивности: (AUB) =(А) + (В)  (АВ), где AUB = max(aij, bij).
Фрагментом Si размера 2*2 будем называть подматрицу
ai j
ai j+1
ai+1 j ai+1 j+1
матрицы А. Изображение называется k-точечным, если ровно k его элементов равны 1.
Далее всюду матрица А удовлетворяет условиям "окаймления", т.е.
a1 j = am j = ai 1 = ai n = 0 для вcex I = l, 2, ...m и j=l, 2, ...n.
Будем говорить, что изображение А порождено фрагментом S, если на элементах
фрагмента S изображение совпадает с ним, а для всех остальных элементов значение
цветности равно 0.
Построим следующую таблицу:
Таблица 1.
7
Всего существует 16 различных типов фрагментов, обозначенных символами Si , l =
0,…,15, и расположенных в первой строке таблицы. Во второй строке представлен
геометрический аналог соответствующего типа, а в третьей строке указан вид подматриц,
представляющих данный тип. Четвертая строка указывает число фрагментов типа Si , i=
0,…,15, таких что Si  A . Этот набор неотрицательных целых чисел Ki , l = 0,…,15, будем
называть характеристическим набором коэффициентов изображения А, построенных
по системе фрагментов размера 2х2.
8
3. Описание программной реализации алгоритма.
3.1 Цель написания программы и принцип работы
На основе знаний о характеристических наборах изображений и их свойствах была
написана программная модель, основной целью которой является сравнение наборов
фрагментов размера 2 на 2 двух изображений для последующего вывода о их
идентичности.
Программа написана на языке Java с использованием стандартных механизмов для
работы с цифровыми изображениями. Программа считывает с жесткого диска файл
изображения и на его основе строит матрицу A из нолей и единиц, где 0 – белый пиксель,
1 – черный. Далее данная матрица преобразуется в набор фрагментов изображения
размера 2 на 2, количеством ( х – 1 ) * ( у – 1 ), где х и у – соответственно ширина и высота
исходного изображения в пикселях.
Следующим шагом подсчитывается характеристический набор каждого
изображения, т.е. получаем 16-тимерный вектор, содержащий в себе количество
повторений каждого из возможных типов фрагментов. Поочередно сравниваем каждую
сумму. Если вектора идентичны – можно сделать предположение, что изображения также
идентичны. Если же характеристические наборы отличаются – запускаем рекурсивный
механизм поиска отличающейся части.
Делим изображение на две части, считаем отдельно характеристический набор у
каждой и сравниваем его с аналогичным набором второго изображения. Далее рекурсивно
применяем это действие к той части, где нашли расхождение в наборах. Таким образом,
находим искомый отличающийся фрагмент. Если отличие не в единственном фрагменте,
то будет найден лишь 1 из них, обведен в рабочей области программы и будет
возможность отредактировать его.
3.2 Интерфейс
Интерфейсно программа представляет собой поле, разделенное на две
симметричные части. Большую часть занимает поле для представления изображения на
прямоугольной решетке. Каждый пиксель изображения представляет собой квадрат
черного или белого цвета. Для наибольшей наглядности изображение выводится в
увеличенном виде.
9
Рисунок 1.
При одинарном клике на любом квадрате-«пикселе» происходит инвертирование
его цвета. Таким образом, загрузив изображение ,можно отредактировать его
необходимым образом и произвести сравнение уже над ним.
Рисунок 2.
10
3.3 Основные функции
Основное назначение программы – выявить отличающийся фрагмент изображения
методом дихотомии, т.е. на каждой итерации цикла поиска, рассматриваемая область
уменьшается в два раза. Программа позволяет загружать квадратные изображения
произвольного размера. Чем меньше пикселей в изображении – тем крупнее оно будет
представлено в рабочей области программы. Для загрузки начального изображения
служат поля для ввода полного или относительного для программы пути.
Рисунок 3.
При нажатии на кнопку «Загрузить», происходит загрузка изображения по
указанному пути. В случае, если изображение не существует – рабочая область
программы не изменится. Иначе оно появится на решетке и вся дальнейшая работа будет
осуществляться уже с данным изображениям. Все изменения изображения происходят
локально и на исходном файле никак не отражаются.
Сравнение изображений происходит по нажатию на кнопку «Сравнить». Если
исходные изображения разного формата – подсчет характеристического набора
производиться не будет и будет выдано сообщение, что изображения различны и отличие
не найдено (см. Рисунок 3).
Для изображений одного размера, после нажатия на кнопку «Сравнить» будет
произведен подсчет характеристических наборов и их последующее сравнение. Первый
отличающийся фрагмент (найденный по алгоритму, описанному выше) будет выделен
красным цветом на обоих изображениях, а в нижней области программы будет выведено
сообщение, что изображения отличаются и координаты отличающегося фрагмента.
11
Рисунок 4.
Если кликом мыши устранить отличие в данном фрагменте и нажать кнопку
«Сравнить», будет найден следующий отличающийся пиксель или выдано сообщение о
том, что характеристические наборы изображений стали совпадать.
Анализируя характеристические наборы, нельзя утверждать, что при равенстве
сумм фрагментов каждого типа изображения также идентичны. Всегда справедлива лишь
обратная теорема – «Если характеристические наборы отличаются, то и изображения не
идентичны». Поэтому можно подобрать такие изображения, что характеристический
набор будет одинаков, а изображения – отличны.
Рисунок 5.
12
3.4 Реализация основных участков кода.
3.4.1 BWImageFragment
Класс, представляющий собой фрагмент ч-б, изображения размера 2 на 2. Фрагмент
представляет собой массив из 4ех элементов типа boolean. true - пиксель белого цвета,
false - пиксель черного цвета. Нумерация пикселей соответствует обходу фрагмента
начиная с верхнего левого пикселя по часовой стрелке.
Также содержит координаты данного фрагмента на изображении для реализации
алгоритма поска отличающегося фрагмента.
3.4.2 StandardFragments
Класс для хранения 16 возможных типов фрагментов черно-белого изображения. В
конструкторе инициализирует себя возможными типами и прдоставляет набор функций
для определения, к какому типу относится переданный ему фрагмент.
private StandardFragments()
{
standartFragments.add( new BWImageFragment(true, true, true, true) );
standartFragments.add( new BWImageFragment(true, false, true, true) );
standartFragments.add( new BWImageFragment(true, true, false, true) );
standartFragments.add( new BWImageFragment(false, true, true, true) );
standartFragments.add( new BWImageFragment(true, true, true, false) );
standartFragments.add( new BWImageFragment(false, false, true, true) );
standartFragments.add( new BWImageFragment(true, false, false, true) );
standartFragments.add( new BWImageFragment(true, true, false, false) );
standartFragments.add( new BWImageFragment(false, true, true, false) );
standartFragments.add( new BWImageFragment(true, false, true, false) );
standartFragments.add( new BWImageFragment(false, true, false, true) );
standartFragments.add( new BWImageFragment(false, false, false, true) );
standartFragments.add( new BWImageFragment(false, true, false, false) );
standartFragments.add( new BWImageFragment(true, false, false, false) );
13
standartFragments.add( new BWImageFragment(false, false, true, false) );
standartFragments.add( new BWImageFragment(false, false, false, false) );
}
3.4.3 BWImageComparator
Класс для сравнивания двух изображений по их характеристическим наборам. На
входе получает массивы с сформированными фрагментами изображения. На выходе –
первый отличающийся фрагмент. Для выделения красным цветом искомого фрагмента в
рабочей области программы – используются координаты в классе фрагмента на исходном
изображении. Ниже представлен код основной рекурсивной функции:
private BWImageFragment FindDifferentFragment( List<BWImageFragment> set_one,
List<BWImageFragment> set_two )
{
//Функция проверки, являются ли два набора фрагментов одинаковыми.
if( CheckIdenticalImage( set_one, set_two ) )
return null;
if( set_one.size() <= 1 )
return set_one.get( 0 );
//Рекурсивно ищем первый отличающийся фрагмент в левой и правой частях
изображения.
BWImageFragment fr = FindDifferentFragment(
set_one.subList( 0, set_one.size() / 2 ),
set_two.subList( 0, set_two.size() / 2 ) );
if( fr != null )
return fr;
fr = FindDifferentFragment(
set_one.subList( set_one.size() / 2, set_one.size() ),
set_two.subList( set_two.size() / 2, set_two.size() ) );
return fr;
}
14
Заключение.
В результате проделанной работы, было получено представление о эйлеровой
характеристике цифровых черно-белых изображений на прямоугольной решетке, о
фрагменте подобного изображения размера 2 на 2 и характеристическом наборе,
основанном на данных фрагментах.
Кроме того, была написана программа, позволяющая проанализировать
характеристические наборы цифровых изображений и сравнить их на идентичность. На
основании этого сравнения можно сделать вывод и о идентичности самих изображений. К
сожалению, данный метод не дает 100% гарантии, что одно изображение является полной
копией второго, но позволяет с полной уверенностью утверждать, что изображения
различны, если различны их характеристические наборы.
15
Список используемой литературы.
1. Парфенов П.Г. Об эйлеровой характеристике изображения. //Архитектура и
программное обеспечение вычислительных систем. -Ярославль.: ЯрГУ,
-1992.-С.76-79.
2. Прэтт У. Цифровая обработка изображений - М.: Мир, -1982. - Кн.2.
3. Парфенов П.Г. Некоторые числовые характеристики изображений,
инвариантные относительно сдвигов и поворотов // Моделирование и анализ
информационных систем. - Ярославль, -1998. - № 5. - С.58-61.
4. Парфенов П.Г. О некоторых свойствах характеристического набора
коэффициентов черно-белого цифрового изображения // Моделирование и анализ
информационных систем. – Т.12, № 1. – Ярославль 2005. – С.52-54.
5. Википедия. Свободная энциклопедия // URL:
http://ru.wikipedia.org/wiki/
6. JavaDoc // Техническая доментация к языку Java
16
Download