Филиал Московского государственного университета имени М.В. Ломоносова в г.Ташкенте Яковенко Ирина Александровна ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА на тему «Распознавание целочисленных отрезков» на соискание степени бакалавра по направлению 010500 - «Прикладная математика и информатика» ВКР рассмотрена и рекомендована к защите Научный руководитель: Зав. кафедрой «МаТИС» д.ф.-м.н., профессор м.н.с. _________Кудрявцев В.Б. ______________ Волков Н.Ю. «___»____________2010 год «___»_________2010 год Ташкент - 2010 Аннотация Решается задача распознавания дискретных изображений простейшей геометрической фигуры – отрезка. Рассматриваются отрезки, концы которых имеют целочисленные координаты. Найден набор локальных необходимых условий того, что изображение – дискретный образ целочисленного отрезка. Построен алгоритм распознавания целочисленных отрезков с использованием глобальной информации об изображении. Введение На сегодняшний день большинство систем, призванных принимать то или иное решение в самых различных предметных областях (от космических и военных исследований до медицины), содержат в себе необходимый, а иногда и главный элемент, связанный с решением задачи распознавания образов, что делает данное направление сегодня одним из самых актуальных бурно развивающихся направлений математики и ее приложений. Как правило, при обработке изображений особый уклон делается на выделение контура. В большинстве случаев именно распознавание контура определяет качество распознавания объекта в целом. Во многих случаях такие контуры составлены из простых геометрических элементов, таких, как отрезки, дуги. При этом обработке подвергается уже оцифрованное изображение. В данной дипломной работе изучаются дискретные изображения целочисленных отрезков на растре, их свойства. Ставится задача найти локальные алгоритмы распознавания отрезков, если они существуют. Найден набор локальных необходимых условий того, что изображение – дискретный образ целочисленного отрезка. В завершение работы строится алгоритм распознавания целочисленных отрезков, построенный на использовании локальной и глобальной информации об изображении. 2 В дальнейшем данную теорию можно обобщить на любые отрезки, а затем использовать ее для распознавания более сложных фигур на плоскости. Способ проектирования, определения и обозначения Пусть имеется экран - плоская сетка из квадратов (клеток). Сторона каждого квадрата равна единице. На ней располагается целочисленная координатная решетка с шагом 1, таким образом, что начало координат и все точки с целочисленными координатами суть центры клеток. При этом ось х (первая координата) направлена слева направо, а ось у (вторая координата) – снизу вверх. Далее под клеткой будем понимать клетку экрана. Каждая клетка экрана всегда принимает только одно из двух значений: 0 или 1. Изначально все клетки экрана имеют значение 0. Изображением назовем совокупность всех единичных клеток экрана. Произвольная плоская геометрическая фигура проектируется на экран следующим образом. Если пересечение фигуры и некоторой клетки экрана содержит больше одной точки, то данная клетка закрашивается и принимает единичное значение (единичная клетка), иначе – не закрашивается, значение клетки равно нулю (нулевая клетка). Таким образом, получается некоторое изображение, которое будем называть дискретным образом данной фигуры. Дискретным образом целочисленного отрезка назовем изображение, полученное при проектировании данного отрезка. Будем в дальнейшем проектировать на экран целочисленные отрезки длины большей либо равной 1. Рассмотрим клетку (а,b) и ее окрестность: 3 (а-1, b+1) ( а, b+1 ) (а+1,b+1) (а-1, b) ( а, b ) (а+1, b) (а-1, b-1) ( а, b-1) (а+1, b-1) Соседней клеткой к клетке (а,b) назовем клетку, с которой клетка (а,b) имеет как минимум одну общую точку. Смежной клеткой к клетке (а,b) назовем клетку, которая имеет с клеткой (а,b) более одной общей точки. Таким образом, каждая клетка (а,b) имеет 8 соседних клеток, 4 из которых {(а,b-1), (а+1,b), (а,b+1), (а-1,b)}являются смежными к ней. Диагональной клеткой к клетке (а,b) назовем клетку, с которой клетка (а,b) имеет только одну общую точку. Границей клетки (а,b) назовем множество точек этой клетки, которые также принадлежат и другой (другим) клеткам. Угловым подмножеством клетки (а,а) будем называть каждое из следующих 4 множеств клеток: 1) {(а-1,b+1), (a,b+1), (a+1,b+1), (a-1,b), (a-1,b-1)}; 2) {(a-1,b-1), (a-1,b), (a-1,b+1), (a,b-1), (a+1,b-1)}; 3) {(a-1,b-1), (a,b-1), (a+1,b-1), (a+1,b), (a+1,b+1)}; 4) {(a-1,b+1), (a,b+1), (a+1,b+1), (a+1,b-1), (a+1,b)}. 4 Противоположными (обратными) клетками относительно клетки (а,b) назовем следующие пары клеток: (a-1,b), (a+1,b); (а, b+1), (а, b-1); (а-1,b+1), (а+1, b-1); (а+1, b+1), (а-1, b-1). Полупротивоположными (полуобратными) клетками относительно клетки (а,b) назовем следующие пары клеток: (а-1, b ), (а+1, b+1); (а-1, b ), (а+1, b-1); (а, b+1), (а+1, b-1); (а, b+1), (а-1, b-1); (а+1, b ), (а-1,b+1); (а+1, b ), (а-1, b-1); (а, b-1), (а-1,b+1); (а, b-1), (а+1, b+1). Концевой клеткой изображения назовем единичную клетку, у которой хотя бы одно угловое подмножество состоит из нулевых клеток. Единичные клетки, не подходящие под это определение, назовем обычными клетками. Таким образом, введем следующие обозначения: os - обычная клетка дискретного образа (ordinary square). fs - концевая клетка дискретного образа (final). nb(s) - число клеток дискретного образа, соседних к клетке s (neighboring). nr(s) - число клеток дискретного образа, смежных к клетке s (nearby). 5 Введем определение элемента изображения: Пусть дано некоторое изображение на экране. Произвольный квадрат 3х3 на экране из 9 клеток, среди которых хотя бы 1 клетка – ненулевая назовем элементом изображения. Два элемента равны, если применением к любому из них операции (-ий) параллельного переноса, поворота и/или осевой симметрии, совмещающей (-щих) квадрат 3х3 этого элемента с квадратом другого элемента, их единичные клетки совместятся с единичными, а нулевые – с нулевыми. Аналогом элемента дискретного образа назовем элемент, полученный из некоторого элемента, равного исходному, добавлением некоторого числа (возможно нулевого) единичных клеток. Связным изображением назовем изображение, у которого каждая единичная клетка имеет как минимум 1 соседнюю единичную клетку. Введем сокращения: д.о. – дискретный образ. д.о.ц.о. – дискретный образ целочисленного отрезка. Введем определения видов целочисленных отрезков: Вертикальным целочисленным отрезком назовем отрезок, концы которого лежат клетках (х,у) и (х, у+а), где а >0. Горизонтальным целочисленным отрезком назовем отрезок, концы которого лежат в клетках (х,у) и (х+а, у), где а >0. Наклонным целочисленным отрезком с углом наклона не равным 45 градусов назовем отрезок, один конец которого лежит в центре клетки (х,у), другой - в центре клетки (х+а, у+b), где а>0, b не равно 0, |a| не равен |b|. 6 Возрастающим наклонным целочисленным отрезком с углом наклона не равным 45 градусов назовем отрезок, один конец которого лежит в центре клетки (х,у), другой - в центре клетки (х+а, у+b), где а>0, b > 0, |a| не равен |b|. Убывающим наклонным целочисленным отрезком с углом наклона не равным 45 градусов назовем отрезок, один конец которого лежит в центре клетки (х,у), другой - в центре клетки (х+а, у+b), где а>0, b < 0, |a| не равен |b|. Целочисленным отрезком с углом наклона 45 градусов назовем отрезок, один конец которого лежит в центре клетки (х,у), другой - в центре клетки (х+а, у+b), где а>0, b не равно 0, |a|=|b|. Возрастающим целочисленным отрезком с углом наклона 45 градусов назовем отрезок, один конец которого лежит в центре клетки (х,у), другой - в центре клетки (х+а, у+а), где а>0. Убывающим целочисленным отрезком с углом наклона 45 градусов назовем отрезок, один конец которого лежит в центре клетки (х,у), другой - в центре клетки (х+а, у-а), где а>0. Введем определение слоя д.о.: Горизонтальным слоем изображения назовем совокупность единичных клеток (х,у) при фиксированном у и переменном х. Вертикальным слоем изображения назовем совокупность единичных клеток (х,у) при фиксированном х и переменном у. Введем определение канонического обхода конечного изображения: Канонический обход конечного изображения осуществляется по горизонтальным слоям. Каждый слой обходим, начиная с самой левой клетки и заканчивая самой правой клеткой. Определим прямой и обратные канонический обходы изображения. Прямой канонический обход изображения начинается с самого нижнего слоя, затем переходим на слой выше и т.д. до самого верхнего горизонтального слоя включительно. Обратный канонический обход изображения начинается 7 с самого верхнего слоя, затем переходим на слой ниже и т.д. до самого нижнего горизонтального слоя включительно. К дискретным образам горизонтальных, вертикальных и возрастающих наклонных отрезков будем применять прямой канонический обхода, а к дискретным образам убывающих наклонных отрезков будем применять обратный канонический обход. Задача распознавания Ставится задача выяснить, является ли рассматриваемое изображение д.о.ц.о. Иначе говоря, необходимо дать точный ответ («да» или «нет») на вопрос: существует ли целочисленный отрезок, д.о.-ом которого является рассматриваемое изображение. Основные результаты Теорема 1. Д.о.ц.о имеет ровно 2 fs, причем они совпадают с клетками, в которых лежат концы реального отрезка. Следствие 1. Все клетки д.о.ц.о. кроме клеток, содержащих концы реального отрезка будут os. Получен ряд локальных и легко проверяемых условий того, что изображение является дискретным образом целочисленного отрезка. Для этого необходимо, чтобы число соседних и смежных клеток для каждой клетки изображения находилось в том диапазоне, в котором это допустимо для концевых и обычных клеток д.о.ц.о. Эти диапазоны, задаются следующими соотношениями (результаты теорем 2-9): 8 Min(nb(fs))=1, Max(nb(fs))=2. Min(nr(fs))=0, Max(nr(fs))=1. Min(nb(os))=2, Max(nb(os))=4. Min(nr(os))=0, Max(nr(os))=2. Все эти оценки достижимы, т.е. неулучшаемы. Установлен критерий того, что изображение является д.о.ц.о., и построен соответствующий алгоритм распознавания. Введем некоторое дополнительное построение. Пусть дано некоторое конечное изображение. Пусть разность хкоординат его самой правой и самой левой клеток (если таких клеток несколько – берем любую) равна a, а разность у-координат его самой верхней и самой нижней клеток равна b. Тогда его изображение содержит b+1 горизонтальный слой и a+1 вертикальный слой. Введем переменные х и y, которые будут характеризовать рассматриваемую клетку изображения. Определим х как расстояние по оси х от правого верхнего угла текущей клетки до центра самой левой среди самых нижних клеток изображения, а у – как расстояние по оси у от правого верхнего угла текущей клетки до центра самой левой среди самых нижних клеток изображения. Таким образом, для клеток самого нижнего слоя у принимает значение 0.5, и возрастает на 1 с переходом на каждый следующий горизонтальный слой, аналогично, х для клеток самого левого вертикального слоя принимает значение 0.5 и возрастает на 1 при переходе на следующий вертикальный слой. Будем рассматривать прямоугольные треугольники, один из катетов которых – горизонтальный, другой – вертикальный, а гипотенузами которых 9 будут отрезки проведенные из центра самой левой среди самой нижних клеток изображения в правый верхний угол текущей рассматриваемой клетки изображения. Каждый такой треугольник будем сравнивать на предмет подобия с такого же вида треугольником, для случая, когда в качестве текущей клетки взята самая правая среди самых верхних клеток изображения. Как известно, по второму признаку подобия треугольников, если две стороны одного треугольника пропорциональны двум сторонам другого и углы между этими сторонами равны, то треугольники подобны. Соответственно, подобие прямоугольных треугольников определяется отношением длин их соответствующих катетов. Теорема 10. Прямой канонический обход дискретного образа горизонтального, вертикального или возрастающего наклонного целочисленного отрезка, а также обратный канонический обход дискретного образа убывающего наклонного целочисленного отрезка, имеющего (а+1) горизонтальный слой и (b+1) вертикальный слой, обладают следующими свойствами. На произвольном шаге канонического обхода, кроме последнего, выполнены следующие условия: 1) если x/y=a/b, то переход к следующей единичной клетке будет диагонального типа. Иначе говоря, при прямом каноническом проходе справасверху будет единичная клетка, а справа и сверху – нулевые, аналогично при обратном каноническом проходе справа-снизу будет единичная клетка, а справа и снизу – нулевые. 2) если x/y < a/b, тогда переход к следующей единичной клетке будет осуществляться на том же слое горизонтально. В случае возрастающего наклонного отрезка сверху, а в случае убывающего наклонного отрезка – снизу будет нулевая клетка. 10 3) если x/y > a/b, то переход к следующей единичной клетке будет осуществляться вертикально на следующий слой, а правее рассматриваемой клетки будет нулевая клетка. Теорема 11. Конечное связное изображение – д.о.ц.о., тогда и только тогда, когда при его прямом каноническом обходе или обратном каноническом обходе все переходы соответствуют соотношениям в теореме 10, где в качестве а взято расстояние по горизонтали, а в качестве b – по вертикали между первой и последней клеткой рассматриваемого изображения при его каноническом обходе. Вспомогательные утверждения о свойствах д.о.ц.о. Замечание 1. Д.о.ц.о. – связное множество. Лемма 1. Д.о.ц.о. целочисленного отрезка длины >=1, состоит как минимум из 2-х единичных клеток, причем минимум достигается. Доказательство: Покажем, что д.о.ц.о. не может состоять из одной клетки. Концы целочисленного отрезка длины >=1 – это центры двух разных клеток. Отрезок пересечет обе эти клетки более чем в одной точке, поэтому каждая из этих клеток будет принадлежать д.о.ц.о. Значит, клеток как минимум 2. Все возможные связные изображения, состоящие из двух клеток, имеют, с точностью до поворота, вид или 11 Легко видеть, что эти изображения являются дискретными образами отрезков длины 1 и √2, соответственно. Лемма доказана. Замечание 2. Концы реального целочисленного отрезка займут 2 не совпадающие друг с другом клетки д.о. Замечание 3. Каждый целочисленный отрезок – либо вертикальный, либо горизонтальный, либо наклонный с углом наклона 45 градусов, либо наклонный с углом наклона, не равным 45 градусов. Замечание 4. Д.о. вертикального целочисленного отрезка с концами в точках (х,у) и (х,у+а) представляет собой в точности множество из (а+1) клеток с координатами вида (х, у+i), где i принимает значения от 0 до а. Замечание 5. Д.о. горизонтального целочисленного отрезка с концами в точках (х,у) и (х+а,у) представляет собой в точности множество из (а+1) клеток с координатами вида (х+i, у), где i принимает значения от 0 до а. Замечание 6. Д.о. целочисленного отрезка с углом наклона 45 градусов с концами в точках (х,у) и (х+а,у+b) представляет собой в точности множество из (а+1) клеток с координатами вида (х+i, у+j), где i принимает значения от 0 до а, j принимает значения от 0 до b при b=a или b= - a. Лемма 2. Д.о. ц. о. не может иметь элементов вида 1) 12 2) А также аналогов этих элементов. Доказательство: 1)Докажем, что доцо не может содержать элементы вида Рассмотрим каждый из всевозможных случаев целочисленных отрезков: а)вертикальный б)горизонтальный в)наклонный с углом наклона 45 градусов г)наклонный с углом наклона не равным 45 градусов Очевидно, что при случаях а), б) и в) данного д.о.ц.о. быть не может, в силу замечаний 4, 5 и 6. Рассмотрим случай г). Присвоим каждой единичной клетке буквенную метку следующим образом. А B C D Проведем доказательство от противного. Предположим, что все клетки А, В, С, D принадлежат д.о.ц.о. Тогда реальный целочисленный отрезок проходит через некоторую точку (х1,у1), принадлежащую клетке А, и не являющуюся точкой пересечения всех 4-х клеток, а также через точку (х2,у2), при13 надлежащую клетке В, и также не являющуюся точкой пересечения всех 4-х клеток. (Возможно совпадение точек (х1,у1) и (х2,у2) ). Возможны 2 случая: реальный наклонный отрезок либо возрастающий, либо убывающий. В первом случае все точки реального отрезка правее (х1,у1) будут иметь у-координату большую, чем у1, а значит, большую, чем любая точка клетки D, что доказывает, что все точки реального отрезка правее точки (х1,у1) не принадлежат клетке D. Все же точки реального отрезка левее (х1,у1) будут иметь x-координату меньшую, чем х1, а значит, меньшую, чем любая точка клетки D, что доказывает, что все точки реального отрезка левее точки (х1,у1) также не принадлежат клетке D. Сама точка (х1,у1) также, очевидно, не принадлежит D, поскольку А и D пересекаются лишь по одной точке не совпадающей с (х1,у1). В случае же наклонного убывающего отрезка все точки реального отрезка левее (х2,у2) будут иметь у-координату большую, чем у2, а значит, большую, чем любая точка клетки С, что доказывает, что все точки реального отрезка левее точки (х2,у2) не принадлежат клетке С. Все же точки реального отрезка правее (х2,у2) будут иметь x-координату большую, чем х2, а значит, большую, чем любая точка клетки С, что доказывает, что все точки реального отрезка правее точки (х2,у2) также не принадлежат клетке С. Сама точка (х2,у2) также, очевидно, не принадлежит С, поскольку В и С пересекаются лишь по одной точке не совпадающей с (х2,у2). Таким образом, все 4 клетки А,В,С и D не могут принадлежать д.о.ц.о. одновременно. Значит, никакой д.о.ц.о. не содержит данного элемента или его аналога. 2)Докажем, что д.о.ц.о. не может содержать элемент следующего вида А С В 14 Вновь присвоим каждой его единичной клетке буквенную метку, как показано на рисунке. Очевидно, что для образов горизонтальных и вертикальных отрезков утверждение верно, поэтому достаточно рассмотреть только наклонный целочисленный отрезок. Пусть реальный отрезок имеет пересечение более одной точки с клетками А и С. Докажем, что в этом случае невозможно вхождение точки В в д.о.ц.о. Допустим, что реальный отрезок проходит через точку (ха,уа) клетки А и через точку (хс,ус) клетки С. В случае, когда точки (ха,уа) и (хс,ус) имеют одинаковую у-координату, мы получим горизонтальный отрезок, д.о.ц.о. которого клетка В не будет принадлежать согласно замечанию 5. В случае если уа<ус, отрезок возрастающий, иначе – убывающий. Если отрезок возрастающий, то все точки между точками (ха,уа) и (хс,ус) будут лежать выше клетки (ха,уа), а значит и выше клетки В. Аналогично, если отрезок убывающий, то все точки между точками (ха,уа) и (хс,ус) будут лежать выше точки (хс,ус), и снова выше клетки В. Точки реального отрезка, находящиеся левее (ха,уа) имеют х-координату меньшую, чем ха, а значит, меньшую, чем любая точка клетки В. Точки же реального отрезка, находящиеся правее (хс,ус) имеют х-координату большую, чем хс, а значит, большую, чем любая точка клетки В. Что доказывает, что клетка В не может входить в д.о.ц.о. Для аналогов данного элемента утверждение леммы тем более верно. Лемма доказана. Следствие 2. У клетки д.о.ц.о. не может быть 2 и более единичных диагональных клеток, имеющих одинаковую х или у координату. 15 Лемма 3. Клетка, содержащая конец реального целочисленного отрезка есть концевая клетка его д. о. Доказательство: Клетка А, содержащая конец реального отрезка, очевидно, пересекается отрезком более чем в одной точке, и, значит, принадлежит д.о.ц.о. А1 А8 А7 А2 А А6 А3 А4 А5 Для вертикальных, горизонтальных и наклонных целочисленных отрезков с углом наклона 45 градусов утверждение леммы следует из замечаний 4,5,6. Рассмотрим случай наклонного целочисленного отрезка с углом наклона не равным 45 градусов. Возможны 4 случая: 1) Точка (х0, у0) клетки А – левый конец возрастающего отрезка. Тогда А1, А2 и А3 – нулевые, т.к. у всех точек отрезка х-координата больше, чем х0, а значит и больше х-координат всех точек клеток А1, А2 и А3. Клетки А4 и А5 также нулевые, т.к. у всех точек отрезка у-координата больше, чем у0, а значит и больше у-координат всех точек клеток А4 и А5. Таким образом, клетка А имеет угловое подмножество из нулевых клеток А1, А2, А3, А4 и А5. 2) Точка (х0, у0) клетки А – левый конец убывающего отрезка. Тогда А1, А2 и А3 – нулевые, т.к. у всех точек отрезка х-координата больше, чем х0, а значит и больше х-координат всех точек клеток А1, А2 и А3. Клетки А7 и А8 также нулевые, т.к. у всех точек отрезка у-координата меньше, чем у0, а значит и 16 меньше у-координат всех точек клеток А7 и А8. Таким образом, клетка А имеет угловое подмножество из нулевых клеток А1, А2, А3, А7 и А8. 3) Точка (х0, у0) клетки А – правый конец возрастающего отрезка. Тогда А5, А6и А7 – нулевые, т.к. у всех точек отрезка х-координата меньше, чем х0, а значит и меньше х-координат всех точек клеток А5, А6 и А7. Клетки А1 и А8 также нулевые, т.к. у всех точек отрезка у-координата меньше, чем у0, а значит и меньше у-координат всех точек клеток А1 и А8. Таким образом, клетка А имеет угловое подмножество из нулевых клеток А1, А5, А6, А7 и А8. 4) Точка (х0, у0) клетки А – правый конец убывающего отрезка. Тогда А5, А6и А7 – нулевые, т.к. у всех точек отрезка х-координата меньше, чем х0, а значит и меньше х-координат всех точек клеток А5, А6 и А7. Клетки А4 и А3 также нулевые, т.к. у всех точек отрезка у-координата больше, чем у0, а значит и больше у-координат всех точек клеток А4 и А3. Таким образом, клетка А имеет угловое подмножество из нулевых клеток А5, А6, А7, А4 и А3. Т.е. во всех случаях клетка А имеет одно угловое подмножество, состоящее из всех нулевых клеток, а это означает, что клетка А является концевой клеткой по определению. Лемма доказана. Замечание 7. Если некоторому д.о.ц.о. принадлежат клетка А и две противоположные друг другу относительно нее клетки, то ни одно угловое подмножество клетки А не является нулевым. Если некоторому д.о.ц.о. принадлежат клетка А и две полупротивоположные друг другу относительно нее клетки, то ни одно угловое подмножество клетки А не является нулевым. Лемма 4. 17 Д.о.ц.о. не может содержать элемента следующего вида с точностью до поворота и осевой симметрии: Е Доказательство: Очевидно, что в этом случае клетка Е будет концевой по определению. А А5 В С fs Е А1 А2 А3 А4 Клетки В, С и Е принадлежат д.о.ц.о., значит каждая из них пересекается отрезком более чем в одной точке. В силу проектируемости целочисленных отрезков, значит, что отрезок пересекает каждую из 4-х граничных сторон каждой клетки только в одной точке, а значит, он пересекает каждую из этих клеток и в ее точках не на ее границе. Тогда в этих клетках есть несовпадающие точки (х1, у1) , (х2, у2) и (х3, у3) которые принадлежат реальному отрезку и они не лежат на границах рассматриваемых клеток. Точка (х1, у1) принадлежит клетке В, точка (х2, у2) принадлежит клетке С, точка (х3, у3) принадлежит клетке Е. Тогда х2> х1 и у2> у1. Следовательно, реальный отрезок – возрастающий наклонный. Если реальный отрезок пересекает верхнюю границу клетки С не в ее верхнем правом углу и пересекает левую границу клетки В (в любой точке), то, очевидно, что он пересечет более чем в одной точке и клетку А, что невозможно, т.к. клетка А нулевая. Аналогично, если реальный отрезок пересекает верхнюю границу клетки С (в любой точке) и пересекает левую границу клетки В не в левом нижнем 18 углу, то он пересечет более чем в одной клетке и клетку А, что также невозможно. Если отрезок пересечет клетку В в нижнем левом углу, а клетку С в верхнем правом, то он пересечет клетку Е лишь в одной точке и она не будет принадлежать доцо. Это тоже невозможно. Таким образом, либо реальный отрезок не пересекает вообще верхнюю границу клетки С, либо он не пересекает левую границу клетки В. Кроме того, для клетки С отрезок точно не пересекает ее границу с клетками А и А5, т.к. иначе эти клетки принадлежали бы д.о.ц.о., а для клетки В верно, что отрезок не пересекает ее границу с клетками А и А1 , т.к. иначе эти клетки тоже принадлежали бы д.о.ц.о. Значит, либо реальный отрезок пересекает границу клетки С только по одной ее стороне, а тогда ей принадлежит конец этого отрезка, либо реальный отрезок пересекает границу клетки В только по одной ее стороне, а тогда ей принадлежит конец этого отрезка. Допустим, конец реального отрезка – в центре клетки С. Реальный отрезок не пересекает границу клетки В с клетками А и А1,т.к. они не принадлежат доцо. Значит, либо это тоже клетка, содержащая конец реального отрезка, либо реальный отрезок пересекает левую границу клетки В. Второе невозможно, т.к. иначе (с учетом того, что он проходит через центр С) клетка Е не принадлежала бы доцо. Значит, и В, и С содержат концы реального отрезка, но тогда получим д.о.ц.о. наклонного типа с углом наклона 45 градусов и тогда по замечанию 6 клетка Е должна быть нулевой, т.е. получаем противоречие. Теперь допустим, что конец реального отрезка – в центре клетки В. Реальный отрезок не пересекает границу клетки С с клетками А и А5,т.к. они не принадлежат доцо. Значит, либо это тоже клетка, содержащая конец реального отрезка, либо реальный отрезок пересекает верхнюю границу клетки С. Второе невозможно, т.к. иначе (с учетом того, что он проходит через центр В) клетка Е не принадлежала бы доцо. 19 Значит, и В, и С содержат концы реального отрезка, но тогда получим д.о.ц.о. наклонного типа с углом наклона 45 градусов и тогда по замечанию 6 клетка Е должна быть нулевой, т.е. получаем противоречие. Лемма доказана. Доказательство основных свойств д.о.ц.о. Теорема 1. Д.о.ц.о имеет ровно 2 fs, причем они совпадают с клетками, в которых лежат концы реального отрезка. Доказательство: Используя замечание 2 и лемму 3 можно сделать вывод, что у д.о.ц.о. будет как минимум 2 концевые клетки, которым принадлежат концы реального целочисленного отрезка. Докажем, что их не может быть больше двух. В силу целочисленности проектируемых отрезков клетка не может пересекаться каким-либо из них по своей стороне. Если клетка д.о.ц.о. не содержит конца реального отрезка, то этот отрезок пересекает данную клетку с двух из четырех ее сторон (рисунок 1 а), б)), или с одной стороны и одного угла, не примыкающего к данной стороне (рисунок 2), или с двух углов, противоположных друг другу (рисунок 3). Реализация каждого из этих случаев пересечения означает принадлежность д.о.ц.о. одного из следующих элементов с точностью до поворота и осевой симметрии : 1 а) * 20 1 б) * 2 * 3 * В силу замечания 7 случаи 1 а), 2 и 3 противоречат определению концевой клетки. Также возможны аналоги этих случаев, которые также, как очевидно, будут давать противоречие в силу того же замечания определению fs. Случай 1 б) не может быть элементом д.о.ц.о. в силу леммы 4. А его аналоги дадут либо противоречие с леммой 2, либо с определением концевой клетки. Теорема доказана. Следствие 1. Все клетки д.о.ц.о. кроме клеток, содержащих концы реального отрезка будут os. 21 Теорема 2. Min(nb(fs))=1. Доказательство: Пример на котором величина достигается: fs 0 не может быть, т.к. число единичных клеток д.о.ц.о. >= 2 по лемме 1. и д.о.ц.о. связный по замечанию 1. Теорема доказана. Теорема 3. Max(nb(fs))=2. Доказательство: Пример двух легко можно построить, например: fs Докажем, что число ненулевых соседних клеток для концевой клетки не может быть больше 2. Допустим обратное. Тогда, по определению, у fs есть нулевое угловое множество, поэтому возможные единичные соседние клетки могут располагаться не более, чем в оставшемся квадрате 2*2. Тогда возможен только один случай вида: fs Однако, в силу леммы 2, д.о.ц.о не может содержать такой элемент. Теорема доказана. 22 Теорема 4. Min(nr(fs))=0. Доказательство: Пример, приведенный ниже, показывает, что существует д.о.ц.о. у которого есть клетки с нулевым числом смежных единичных клеток. Меньше 0 данная величина быть, очевидно, не может. Пример: fs Теорема доказана. Теорема 5. Max(nr(fs))=1. Доказательство: Пример, на котором величина достигается: fs Допустим, для какой-то концевой клетки некоторого д.о.ц.о. отрезка нашлось более 1 смежной единичной клетки. По определению у fs есть нулевое угловое множество, поэтому возможные единичные соседние клетки могут располагаться не более, чем в оставшемся квадрате 2*2. Тогда рассмотрим возможные случаи (с точностью до поворота): 1) fs По лемме 2 такого случая быть не может. 23 2) fs_ По лемме 4 данного случая быть не может. Теорема доказана. Теорема 6. Min(nb(os))=2. Доказательство: Пример, того, что 2 достигается: os Случая минимум = 1 не может быть, т.к. клетка с единственной соседней всегда является fs. Теорема доказана. Теорема 7. Max(nb(os))=4, причем, если соседних клеток 4, то из них ровно 2 смежных. Доказательство: Пример достижимости (а) 1 os 2 3 4 24 Или же (б) 1 2 os 3 4 Докажем, что не может быть более 4. Рассмотрим смежные клетки. Не может быть, чтобы более двух клеток из смежных к А вошли в д.о.ц.о., так как иначе бы получились случаи следующего вида с точностью до поворота и симметрии: А А Но эти случаи противоречат лемме 2. Диагональных для клетки А единичных клеток не может быть больше двух по следствию 2, в итоге получим, что всего единичных соседних клеток к клетке А не может быть больше 4-х. Теорема доказана. 25 Теорема 8. Min(nr(os))=0. Доказательство: Пример os Теорема доказана. Теорема 9. Max(nr(os))=2. Доказательство: Примеры, на которых величина достигается, это - случаи (а) и (б) из теоремы 7. Допустим, что может быть больше 2-х соседних единичных клеток, тогда будут случаи вида: os os Однако, в силу леммы 2, д.о.ц.о не может содержать таких элементов. Теорема доказана. 26 Алгоритм распознавания д.о.ц.о. Сформулируем ряд свойств слоев д.о.ц.о. и канонического обхода д.о.ц.о. Замечание 8 Концевая клетка д.о.ц.о. принадлежит либо самому нижнему слою, либо самому верхнему (для горизонтальных). Лемма 5. Каждый слой д.о.ц.о. – связное множество. Доказательство: Проведем доказательство от противного. Допустим, что существует слой д.о.ц.о., который представляет собой несвязное множество единичных клеток. Пусть это будет горизонтальный слой вида (для вертикального слоя доказательство проводится по аналогии): А В С , где как минимум 2 клетки А и С единичные клетки, а клетка В нулевая. То, что клетки единичные, означает, что отрезок имеет пересечение с каждой из них более чем в одной точке. Значит есть точка из клетки А на отрезке и точка из С на этом же отрезке. Тогда весь этот отрезок между этими двумя точками тоже принадлежит реальному отрезку. А такой отрезок пересекает клетку В как минимум в 2 точках, тогда и В принадлежит д.о.ц.о. противоречие. Лемма доказана. Лемма 6. Самая левая клетка слоя д.о.ц.о является соседней для самой правой клетки предыдущего слоя и находится не левее ее. Доказательство: 27 Очевидно, что в случае горизонтального отрезка будет всего 1 горизонтальный слой, значит этот случай не рассматриваем. Случай вертикального отрезка также не требует док-ва в силу замечания 4. Если же случай наклонного отрезка с углом наклона 45 градусов, то это также верно в силу замечания 6. Рассмотрим теперь случаи наклонных отрезков с углом наклона не 45 градусов. Допустим отрезок возрастающий. Пусть клетка А есть самая правая клетка своего горизонтального слоя. Нас интересует его связь со слоем над ним. Тогда пусть клетка А принадлежит не последнему горизонтальному слою изображения. Значит над этим слоем должны быть единичные клетки следующего слоя, иначе нарушается связность. Покажем, что клетка D и все левее нее на том же слое клетки нулевые. D E F А От противного. Пусть D ненулевая. Тогда значит, что она имеет непустое пересечение с отрезком более чем в одной точке. Пусть одна из таких точек - точка (х1, у1). Также в силу того, что клетка А единичная, может аналогично взять точку отрезка, принадлежащую ей - точку (х2, у2). Заметим, что если у1 не равен у2 и х1= х2, то это значит что проектировался не целочисленный отрезок, если х1 не равно х2 и у1= у2, то аналогично. Если же обе координаты совпадают, тогда очевидно, что отрезок, т.к. возрастающий, то он лишь коснется клетки А в одной точке, значит клетка А будет нулевой, что не так. Т.о. х2 > х1 и у1 > у2 , что противоречит возрастанию отрезка. Значит клетка D 28 нулевая, а также все клетки левее нее на том же слое, т.к., очевидно, что их хкоординаты меньше или равны х1 , тогда по транзитивности клетки левее клетки D также нулевые. Если же на том же слое все клетки правее, чем F единичные, в то время как сама клетка F нулевая, то это также противоречит связности д.о.ц.о., т.к. тогда расстояние между любой клеткой текущего слоя и следующего будет больше 1. Значит, на следующем слое самая левая клетка - не правее F, но правее D. Значит, эта клетка есть E или F. Допустим отрезок убывающий. Пусть клетка А есть самая правая клетка своего горизонтального слоя. Нас интересует его связь со слоем под ним. Тогда пусть клетка А принадлежит не последнему горизонтальному слою изображения. Значит под этим слоем должны быть единичные клетки следующего слоя, иначе нарушается связность. Покажем, что клетка D и все левее нее на том же слое клетки нулевые. А D Е F От противного. Пусть D ненулевая. Тогда значит, что она имеет непустое пересечение с отрезком более чем в одной точке. Пусть одна из таких точек - точка (х1, у1). Также в силу того, что клетка А единичная, может аналогично взять точку отрезка, принадлежащую ей - точку (х2, у2). Заметим, что если у1 не равен у2 и х1= х2, то это значит что проектировался не целочисленный отрезок, если х1 не равно х2 и у1= у2, то аналогично. Если же обе координаты совпадают, тогда очевидно, что отрезок, т.к. убывающий, то он лишь коснется клетки А в одной точке, значит клетка А будет нулевой, что не так. Т.о. х2 > х1 и у1 < у2 , что противоречит убыванию отрезка. Значит клетка D 29 нулевая, а также все клетки левее нее на том же слое, т.к., очевидно, что их хкоординаты меньше или равны х1 , тогда по транзитивности клетки левее клетки D также нулевые. Если же на том же слое все клетки правее, чем F единичные, в то время как сама клетка F нулевая, то это также противоречит связности д.о.ц.о., т.к. тогда расстояние между любой клеткой текущего слоя и следующего будет больше 1. Значит, на следующем слое самая левая клетка - не правее F, но правее D. Значит, эта клетка есть E или F. Лемма доказана. Лемма 7. 1)Каждая следующая клетка при каноническом обходе д.о.ц.о. возрастающего отрезка - либо справа от предыдущей на том же слое, либо сверху на следующем, либо сверху-справа по диагонали (тоже на следующем). 2)Каждая следующая клетка при каноническом обходе д.о.ц.о. убывающего отрезка - либо справа от предыдущей на том же слое, либо низу на следующем, либо снизу-справа по диагонали (тоже на следующем). Доказательство: Вообще говоря, док-во следует из леммы 6. Приведем более детальное док-во для пункта 1) (для пункта 2) оно проводится аналогичным способом). 1) Рассмотрим следующий рисунок: E B C А1 A D А2 А3 А4 , где клетка А – это единичная клетка, находясь в которой будем доказывать утверждение леммы. Очевидно, что клетки А1, А2, А3 и А4 не могут быть 30 следующими для перехода с клетки А в силу следствия 1 и определения обхода. Докажем теперь, что клетка Е не может быть единичной вообще. Если клетка А самая правая клетка слоя, тогда это верно в силу леммы 6. Если же А не является таковой клеткой, то правее нее обязательно будет единичная клетка, являющаяся самой правой единичной клеткой слоя. Применяя лемму 6 для той клетки, получим, что сверху левее нее не будет единичной клетки, а т.к. слой связен по лемме 5, то значит и левее клетки А сверху не будет единичной клетки, что и доказывает, что клетка Е никак не может быть единичной. Теперь покажем, что В, С и D могут быть единичными, а значит и следующими по обходу. Если клетка А не концевая, а отрезок возрастающий наклонный, значит границе клетки А будет принадлежать две точки отрезка, причем одна из них будет принадлежать общей границе клеток А1 и А, или А3 и А, или А2 , А1 , А3 и А. Пусть это будет точка (х,у). Очевидно, что вторая точка должна иметь и х и у координату большую, чем у данной точки. Что говорит, что вторая точка границы клетки А может принадлежать только общей границе клеток А и В, или А и D, или А, В, D и С. А это в свою очередь значит в силу целочисленности возрастающего отрезка, что В, и/или С, и/или D могут быть единичными. Лемма доказана. Следствие 3. Существует автомат, который, будучи помещен концевую клетку любого д.о.ц.о. делает обход за время, равное числу клеток д.о.ц.о. и останавливается в другой концевой клетке, а будучи помещен в обычную клетку сначала находит концевую клетку (не выходя за пределы д.о.ц.о., а затем - делает обход). Введем некоторое дополнительное построение. 31 Пусть дано некоторое конечное изображение. Пусть разность хкоординат его самой правой и самой левой клеток (если таких клеток несколько – берем любую) равна a, а разность у-координат его самой верхней и самой нижней клеток равна b. Тогда его изображение содержит b+1 горизонтальный слой и a+1 вертикальный слой. Введем переменные х и y, которые будут характеризовать рассматриваемую клетку изображения. Определим х как расстояние по оси х от правого верхнего угла текущей клетки до центра самой левой среди самых нижних клеток изображения, а у – как расстояние по оси у от правого верхнего угла текущей клетки до центра самой левой среди самых нижних клеток изображения. Таким образом, для клеток самого нижнего слоя у принимает значение 0.5, и возрастает на 1 с переходом на каждый следующий горизонтальный слой, аналогично, х для клеток самого левого вертикального слоя принимает значение 0.5 и возрастает на 1 при переходе на следующий вертикальный слой. Будем рассматривать прямоугольные треугольники, один из катетов которых – горизонтальный, другой – вертикальный, а гипотенузами которых будут отрезки проведенные из центра самой левой среди самой нижних клеток изображения в центр текущей рассматриваемой клетки изображения. Каждый такой треугольник будем сравнивать на предмет подобия с такого же вида треугольником, для случая, когда в качестве текущей клетки взята самая правая среди самых верхних клеток изображения. Как известно, по второму признаку подобия треугольников, если две стороны одного треугольника пропорциональны двум сторонам другого и углы между этими сторонами равны, то треугольники подобны. Соответственно, подобие прямоугольных треугольников определяется отношением длин их соответствующих катетов. 32 Теорема 10. Прямой канонический обход дискретного образа горизонтального, вертикального или возрастающего наклонного целочисленного отрезка, а также обратный канонический обход дискретного образа убывающего наклонного целочисленного отрезка, имеющего (b+1) горизонтальный слой и (a+1) вертикальный слой, обладают следующими свойствами. На произвольном шаге канонического обхода, кроме последнего, выполнены следующие условия: 1) если x/y=a/b, то переход к следующей единичной клетке будет диагонального типа. Иначе говоря, при прямом каноническом проходе справасверху будет единичная клетка, а справа и сверху – нулевые, аналогично при обратном каноническом проходе справа-снизу будет единичная клетка, а справа и снизу – нулевые. 2) если x/y < a/b, тогда переход к следующей единичной клетке будет осуществляться на том же слое горизонтально. В случае возрастающего наклонного отрезка сверху, а в случае убывающего наклонного отрезка – снизу будет нулевая клетка. 3) если x/y > a/b, то переход к следующей единичной клетке будет осуществляться вертикально на следующий слой, а правее рассматриваемой клетки будет нулевая клетка. Доказательство: Пусть x/y=a/b. Рассмотрим иллюстрацию данного случая на при- 1) мере возрастающего наклонного отрезка: Е B C A D 33 Докажем, что клетки B и D в этом случае должны быть нулевыми, а С – единичной. В силу точного равенства в пропорции рассматриваемые треугольники подобны, а значит, что точка пересечения клеток А,В,С,D лежит на реальном отрезке. Следовательно, т.к. отрезок наклонный возрастающий, клетки В и D не принадлежат д.о.ц.о. Для наклонного убывающего отрезка – аналогично. Пусть x/y < a/b. Рассмотрим этот случай на одном примеров, ко- 2) торому будут аналогичны и другие примеры при выполнении такого же неравенства : С D А В Очевидно, что в этом случае треугольники не могут быть подобными. В рассматриваемом неравенстве каждое из соотношений есть котангенс угла соответствующего треугольника. Данное неравенство говорит о том, что угол наклона у маленького треугольника больше угла наклона треугольника всего отрезка. А это значит, что точка отрезка принадлежит не точке пересечения 4-х клеток А,В,С,D, а имеет у-координату меньше при той же хкоординате. Если это так, тогда эта точка принадлежит только клеткам А и В, а следовательно клетка В должна быть единичной. Т.е. при дальнейшем обходе от клетки А есть единичная клетка правее от нее на том же слое. Докажем, что в этом случае клетка над клеткой, относительно которой рассматриваем в данный момент, а именно на примере клетка С, нулевая. Т.к. клетка А является не самой правой клеткой, это следует из лемм 7 и 5. Для убывающего наклонного отрезка доказательство совершенно аналогично. 34 Пусть x/y > a/b. Рассмотрим этот случай на одном примеров, ко- 3) торому будут аналогичны и другие примеры при выполнении такого же неравенства : С D А В Очевидно, что в этом случае треугольники не могут быть подобными. В рассматриваемом неравенстве каждое из соотношений есть котангенс угла соответствующего треугольника. Данное неравенство говорит о том, что угол наклона у маленького треугольника меньше угла наклона треугольника всего отрезка. А это значит, что точка отрезка принадлежит не точке пересечения 4-х клеток А,В,С,D, а имеет х-координату меньше при той же укоординате. Если это так, тогда эта точка принадлежит только клеткам А и С, а следовательно клетка С должна быть единичной. Т.е. при дальнейшем обходе от клетки А есть единичная клетка сверху от нее на следующем слое. Докажем, что в этом случае клетка В нулевая. Пусть отрезок проходит через границы клеток А и С через точку (х,у). Все точки отрезка правее нее будут иметь у координату большую, чем у любой точки клетки В, а все точки отрезка левее (х,у) будут иметь х-координату меньшую, чем у любой точки клетки В. Значит клетка В нулевая. Для убывающего наклонного отрезка доказательство совершенно аналогично. Теорема доказана. 35 Теорема 11. Конечное связное изображение – д.о.ц.о., тогда и только тогда, когда при его прямом каноническом обходе или обратном каноническом обходе все переходы соответствуют соотношениям в теореме 10, где в качестве а взято расстояние по горизонтали, а в качестве b – по вертикали между первой и последней клеткой рассматриваемого изображения при его каноническом обходе. Доказательство: Необходимость выполнения всех соотношений для канонического обхода д.о.ц.о. установлена в теореме 10. Покажем, что выполнения всех этих соотношений для канонического обхода произвольного конечного изображения достаточно для того, чтобы изображение было д.о.ц.о. Рассмотрим отрезок, один из концов которого расположен в центре клетки, с которой начат прямой или обратный рассматриваемый канонический обход рассматриваемого изображения, а другой конец – в центре клетки, где канонический обход изображения завершен. Из теоремы 10 следует, что при таком же прямом или обратном каноническом обходе д.о. такого отрезка на каждом шаге будут выполнены соотношения, определенные в теореме 10. Значит, на каждом шаге канонического обхода этого д.о. и исходного изображения переход к следующей клетке делается одинаково. Первые клетки при канонических обходах этих изображений совпадают в силу выбора отрезка. Таким образом, совпадут и все последующие клетки. Значит, исходное изображение и дискретный образ рассматриваемого отрезка совпадают, т.е. рассматриваемое изображение есть д.о.ц.о. Теорема доказана. 36 Приложение. Описание алгоритма распознавания на конкретных примерах Пусть дано изображение из n (n>=2) клеток, необходимо выяснить будет ли оно д.о.ц.о. и какого типа, т.е. ответить на вопрос проектировался ли отрезок и, если да, то какого типа. Тогда используя результаты доказанных теорем и лемм дипломной работы имеем следующие условия проверки (выполняются в заданном порядке): 1) Если изображение состоит из единичных клеток (х,у+b), где b= 0,…,n-1, то это д.о.ц.о. вертикального типа. Иначе говоря, проектировался вертикальный целочисленный отрезок. 2) Если изображение состоит из единичных клеток (х+а,у), где а= 0,…,n-1, то это д.о.ц.о. горизонтального типа. Иначе говоря, проектировался горизонтальный целочисленный отрезок. 3) Если изображение состоит из единичных клеток (х+а,у+|b|), где а= 0,…,n-1, |b|=0,…,n-1, a=|b| то это д.о.ц.о. наклонного типа с углом наклона 45 градусов. Иначе говоря, проектировался наклонный целочисленный отрезок с углом наклона 45 градусов. 4) Отдельного рассмотрения требует случай распознавания д.о.ц.о. наклонного тина с углом наклона не равным 45 градусов. Распишем более подробно в этом случае алгоритм распознавания. Если в результате проверки какого-либо пункта локальных или глобальных условий был получен не удовлетворительный ответ, тогда процесс 37 проверки условий завершается и выдается ответ о том, что рассматриваемое изображение не есть д.о.ц.о. Если проверка локальных условий дала положительный ответ, тогда будем проверять глобальные условия. Заметим, что глобальные условия нужны только при проверки на данный тип отрезка. Если проверка всех условий дала положительный ответ, тогда говорим, что рассматриваемое изображение есть д.о.ц.о. наклонного типа с углом наклона не равным 45 градусов. Проверка локальных условий: 1. Поиск концевых вершин. Их должно быть ровно 2 по Теореме 1. 2. Проверка Теорем 2-9. Проверка глобальных условий: 1. Проверка однозначности канонического обхода, а именно его единственности и того, что в его результате все клетки изображения будут пройденными. 2. Применение процедуры проверки с помощью подобия треугольников. Т.е. проверка теоремы 11. Распознавание наклонных на примере. Допустим есть пример Нужно определить доцо или нет. Само распознавание будет идти с помощью применения подобия треугольников для каждого вертикального слоя. Т.е., 1 шаг. Взятие размеров треугольника всего изображения – (7х3) с учетом начала и конца отрезка в центре каждой клетки. 38 0 0,5 1,5 2 шаг. Проходим по каждому слою захватывая единичные клетки, применяем подобие треугольников. Т.е. 1) 0 0 0,5 1,5 0,5 1,5 Смотрим соотношение 0,5 к 7 по х 0,5 к 3 по у Не соотносимы, следовательно дальше не должен идти диагональный переход, а будет либо вертикальный, либо горизонтальный. Как определить какой именно? По отношению 7/05, и 3/0,5. Т.е. 14 и 6, 14>6, следовательно дальше должен быть переход горизонтальный, т.е. единичная клетка правее рассматриваемой клетки. 39 Если верно, то переходим к ней и смотрим дальше, а именно: 2) 0 0,5 1,5 Опять высчитываем 1,5 к 7 0,5 к 3 Не соотносимы. Т.е. опять не должен быть диагональный переход. Смотрим 7/1,5=4,66 и 3/0,5=6. Здесь наоборот уже, т.е. 4,66<6. следовательно должен быть вертикальный переход. Перешли, смотрим дальше. 3) 0 0,5 1,5 Смотрим опять. Те же рассуждения. … Если случай : 0 0,5 1,5 То очевидно соотношения 3,5 к 7, 1,5 к 3, т.е. есть соотношение верное, поэтому диагональный переход. Вот, доказать надо теперь еще. Т.о. мы распознаем доцо без проектирования поверх еще какого-то целочисленного отрезка, зная концевые клетки (как за40 давали коварные вопросы Вам тогда), а только лишь используем данное изображение, проверяем необходимые условия, достаточные для горизонтальных, вертикальных и наклонных с углом наклона в 45, а для наклонных не в 45, можно делать эту проверку подобия треугольников (глобальной получается проверкой), причем не понадобиться вовсе сравнивать это изображение с точно знаемым по концевым клеткам доцо, строемым отдельно. 41