- •Глава 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. Структурные методы
- •Построение реляционные дескриптивных структур на основе разбиения области
- •Алгоритм разбиения многоугольника на выпуклые составляющие
- •Алгоритм построения дерева вогнутостей
- •Алгоритм прослеживания границ для построения дерева связности
- •Построение реляционных дескриптивных структур на основе декомпозиции области через покрытие
Алгоритм прослеживания границ для построения дерева связности
begin
Найти первую точку i0, j0, для которой значение функции VAL отлично от 0;
m1:do case of (значение функции VAL)
[1]: i:=i+ 1;
[2]: j := j + 1;
[3]: begin
запись в список граничных точек точки (i, j);
j:= j + 1
end;
[4]: i:=i - 1
[6]: begin
запись в список граничных точек точки (i + 1, j + 1);
i:=i- 1
end;
[7]: begin
запись и список граничных точек точки (i + 1, j + 1);
j:=j- 1
end;
[8]: j: =j+ l
[9]: begin
запись в список граничных точек точки (i, j);
i:=i + 1end;
[11]: begin
запись в список граничных точек точек (i, j), (i + 1, j);
end;
[12]: begin
эапись в список граничных точек точки (i, j + 1);
end;
[13]: begin
запись в список граничных точек точек (i, j + 1), (i, j);
end;
[14]: begin
запись в список граничных точек точек (i + 1, j + 1), (i, j + 1);
j := j - 1
end;
[5, 10]: begin
(* PVAL – предыдущее значение функции VAL *)
if (PVAL = 9 or PVAL = 4 or PVAL = 7) then
begin j := j - 1
if (VAL = 5)
then запись в список точки (i, j+ 1)
else запись точки (i + 1, j+ 1)
end;
if (PVAL = 6or PVAL = 4 or PVAL = 7) then
begin j := j + 1;
if (VAL = 5)
then запись точки (i + 1, j)
else запись точки (i, j)
end;
if (PVAL = 12or PVAL = 8 or PVAL = 14) then
begin i := i - 1;
if(VAL = 5)
then запись точки (i+ 1, j)
else запись точки (i, j)
end;
if (PVAL = 2or PVAL = 11 or PVAL = 3) then
begin
i := i + 1;
if(VAL = 5)
then запись точки (i, j + 1)
else запись точки (i, j)
end
end
end
case;
if (координаты последней записанной граничной точки не совпадают с координатами первой точки) then
begin
PVAL := VAL;
go to m1
end;
end.
Метод на основе операции расширения/сжатия. Для описания объектов со сложной структурой (имеющих большое количество «лепестков», удлинений) целесообразно использовать дескриптивную структуру, отражающую наличие упомянутых частей, т. е. частей, измерение которых по одному направлению намного больше, чем по другому. Один из подходов — применение методов математической морфологии, в частности операций расширения и сжатия дискретного объекта [32, 41].
Операция расширения бинарного объекта DB заключается в замене всех элементов изображения со значением 0 на элементы со значением 1, если они имеют «единицы» в качестве соседей (0 соответствует элементам фона, 1 — элементам объекта); DB(k) —результат последовательного применения операции расширения «k» раз. Обратная операция сжатия бинарного объекта есть замена всех «единиц» на «нули», если их соседями являются нулевые элементы. Результат последовательного применения операции сжатия «k» раз обозначим DB(-k).
Отметим, что для любых l и k выполняется неравенство , где DB(0)=DB. Из этого неравенства следует, что «лепестковые» части объектов могут исчезать при повторении операции сжатия и не восстанавливаться при последующем расширении. Таким образом, можно выделить «сердцевину» объекта. Удлинения объекта выделяются в процессе вычитания множества точек «сердцевины» из множества точек оригинального объекта (рис. 3.15) [41].
Полученное в результате рекурсивного применения указанных операций разбиение объекта на удлиненные части и сердцевину может служить основой для построения древовидной дескриптивной структуры.