- •Глава 3
- •3.1. Задача описания
- •3. 1.1. Содержательная
- •3.1.2. Общие подходы
- •3.2. Методы и алгоритмы
- •3.2.1. Категории признаков.
- •3.2.2. Методы и алгоритмы
- •Сканирующий алгоритм определения связности
- •3.2.2. Методы и алгоритмы
- •Методы и алгоритмы подсчета признаков
- •Алгоритм подсчета метрических признаков на пирамидах
- •Сканирующий алгоритм вычисления метрических признаков
- •3.3. Методы вычисления
- •3.4. Структурные методы
- •3. 4. 1. Структурные методы
- •Методы сегментации кривых
- •Алгоритм оценки кривизны дискретной кривой через кусочно-линейную аппроксимацию кривой
- •Алгоритм вычисления углов дискретной кривой через анализ поведения угла отклонения касательной к кривой
- •3. 4. 1. Синтез структурных
- •1) , 4) ,
- •2) , 5) ,
- •3) , 6) ,
- •Алгоритм построения «дерева полосок»
- •3. 4. 3. Структурные методы
- •Построение реляционные дескриптивных структур на основе разбиения области
- •Алгоритм разбиения многоугольника на выпуклые составляющие
- •Алгоритм построения дерева вогнутостей
- •Алгоритм прослеживания границ для построения дерева связности
- •Построение реляционных дескриптивных структур на основе декомпозиции области через покрытие
3.2.2. Методы и алгоритмы
вычисления топологических признаков
Топологические признаки NC, NH, NE обозначают число связных компонент, число дыр и число Эйлера соответственно, отражают так называемые топологические свойства объектов-областей, которые инвариантны к резинообразным искажениям плоскости [14, 17]. Эти признаки дают информацию о наиболее общих свойствах областей и поэтому топологические описания множеств малоинформативны в обсуждавшемся выше смысле. Топологические признаки и описания, получаемые на их основе, как правило, используются не самостоятельно, а лишь в сочетании с другими характеристиками (табл. 3.1).
Существует несколько методов подсчета топологических признаков дискретных объектов [14]: на основе использования сканирующих алгоритмов анализа поля изображения; на основе использования перцептронных вычислительных схем; на основе использования иерархических представлений изображений в виде пирамид и квадродеревьев.
В первом случае осуществляется регулярный просмотр элементов дискретного изображения слева-направо и сверху-вниз с анализом соседей текущей исследуемой точки и присвоением этой точке метки того или иного связного подмножества в зависимости от меток просмотренных соседей слева и сверху от нее. Перцептронные вычислительные схемы основаны на теории линейных булевых неравенств и специальных предикатах, позволяющих, по крайней мере теоретически, вычислять признаки NC, NH, NE. Применительно к обсуждаемой задаче наиболее важным является, по-видимому, тот факт, что никакой перцептрон, ограниченный по диаметру и порядку, не способен определить связность некоторого дискретного объекта [17]. В то же время ограниченные по порядку и диаметру перцептроны могут вычислять оценку снизу для признака NE (число Эйлера), а также определить признак выпуклости объекта CNV [17, 19]. Важно отметить, что перцептронные вычислительные схемы являются по своей сути схемами параллельных вычислений, и их реализация на последовательных ЭВМ, как правило, неэффективна. Наконец, третий метод подразумевает использование представления изображений в виде пирамид и квадродеревьев. Полученные после сегментации дискретные объекты составлены из квадратных блоков (областей), специальным образом локализованных па дискретной решетке [10]. Подсчет числа связных компонент NC, числа дыр NH и числа Эйлера NE сводится в этим случае к следующим алгоритмам.
Сканирующие алгоритмы определения связности дискретных объектов. Данный класс алгоритмов использует матричное представление изображений, при котором дискретное изображение s(i, j) имеет NROW строк и NPIX столбцов. Без потери общности рассматривается случай бинарного изображения, единичные элементы которого обозначают дискретные объекты, а нулевые фоновую составляющую. Типичный алгоритм этого класса имеет следующий вид:
Сканирующий алгоритм определения связности
begin
fori: = 1 toNROW do
begin
forj: = 1to NPIX do
if (s(i, j) = 1)then
if (для имеющихся соседей элемента s(i, j) выполняется s(i, j — 1) = 0 & s(i — 1, j) = 0) then назначить элементу s(i, j) новую метку else if (соседи элемента s (i, j) имеют одну и ту же метку) then назначить элементу s(i, j) метку соседа else назначить элементу s(i, j) метку одного из соседей и установить эквивалентность меток соседей end; объединить метки в классы эквивалентности; переразметить связные компоненты в соответствии с полученными классами эквивалентности с одновременным подсчетом количества связных компонент end.
В приведенном алгоритме отношение соседства понимается в смысле 4-х соседств (см. прил.). В отличие от вышеприведенного алгоритма, реализующего принцип «разметки», алгоритм, изложенный в работе [19], осуществляет проверку связности некоторого дискретного объекта DB на основе специального способа прослеживания границы этого объекта.
Алгоритмы вычисления топологических признаков на пирамидах и квадродеревьях. Как уже отмечалось, использование пирамид и квадродеревьев на этапе сегментации порождает разбиение изображения на квадратные однородные блоки [14]. Вообще говоря, каждая связная однородная область получает в результате сегментации с использованием алгоритмов слияния-расщепления свою метку. Таким образом, в этом случае нет необходимости применять специальные алгоритмы определения связных компонент и подсчета их числа. В то же время распространенными являются задачи, когда объект определяют как «все то, что не фон». Здесь этап сегментации порождает бинарное изображение, объекты которого могут содержать несколько связных компонент. Для вычисления топологических характеристик объекта могут использоваться алгоритмы, известные из [14, 62].
Данные алгоритмы свидятся к переразметке связных компонент изображения в соответствии с классами эквивалентности меток, которые формируются в процессе их функционирования. Классы эквивалентности меток в свою очередь выделяются на основе анализа двух множеств, определяемых на бинарном сегментированном изображении s(u, v): множества блоков BL = {bli}, i = 1, ..., MB и множества ребер этих блоков ED = {edj}, j = 1, ..., ME. «Белые» и «черные» блоки порождают три типа ребер: «черные» (в случае отделения черных блоков), «белые» (в случае отделения белых блоков) и «серые» (в случае отделения черного блока от белого). Для идентификации типа ребра используется процедура — функция вида
Процедура TOUCH (X) дает на выходе список блоков, имеющих в качестве одного из ребер ребро X. Пусть — множество меток для разметки связных компонент некоторого изображения s(u, v). С учетом введенных обозначений алгоритм разметки и определения числа связных компонент имеет вид:
Алгоритм определения связности на основе переразметки
begin
Установить номер начальной метки k;
for j:= 1 to ME do if(VALUE (edj = 1) then beginLIST: = TOUCH (edj); блокам списка LISTназначить метку; k: = k + 1 end;
анализируя смежность блоков, объединить метки в классы эквивалентности; переразметить связные компоненты в соответствии с полученными классами эквивалентности с одновременным подсчетом количества связных компонент end (алгоритма).
На рис. 3.1 ,а показан пример изображения s(u, v), такого что MB = 31, ME = 76.
Проиллюстрируем работу алгоритма на примере этого изображения. На рис. 3.1 ,б,в отображены этапы выделения «черных» ребер и назначения меток. В силу того, что одинаковые метки назначаются только паре блоков, разделенных «черным» ребром, общее количество меток равняется числу «черных» ребер, а каждый черный блок имеет столько меток, сколько у него смежных черных блоков. После объединения меток в классы эквивалентности на основе анализа смежности получим два класса: и. Окончательный результат получается после переразметки связных компонент в соответствии с классами эквивалентности (рис. 3.1, г).
Топологические признаки, как отмечалось, являются наиболее общими признаками изображений, и поэтому их подсчет — подготовительный этап, предшествующий вычислению более информативных характеристик. К таким характеристикам относится категория метрических признаков.