Скачиваний:
113
Добавлен:
01.05.2014
Размер:
964.61 Кб
Скачать

Алгоритм прослеживания границ для построения дерева связности

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].

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

Соседние файлы в папке LECTURE12