- •Глава 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
(* расширение кривой *)
for j := 1 to 2m do
begin xj+N := xj; yj+N := yj end;
(* подсчет кривизны *)
for i := 1 to N do
Найти кривизну ki в точке (xi, yi) по формуле
end
При этом в алгоритме приняты следующие обозначения:
т — порядок кривизны;
N — число граничных точек дискретной кривой;
Аi — длина отрезка между точками (xi, yi) и (xi-m, yi-m);
Bi — длина отрезка между точками (xi, yi) и (xi+m, yi+m);
Сi— длина отрезка между точками (xi-m, yi-m) и (xi+m, yi+m);
ki — значение кривизны порядка т в точке (xi, yi).
В [31] предложен болей точный способ определения кривизны, основанный на использовании матриц рассеяния подмножеств точек дискретной кривой. Пусть DC=={c1, c2, ..., cN} — дискретная кривая; т = 2п + 1; т, n - целые числа. Кривизной кривой DC порядка т в точке называют величину
,
где ,— соседние точки кривой; — евклидово расстояние между ними; DC(1) и DC(2) — участки кривой DC длиной в m точек с центрами в точках ,, — угол между главными направлениями DC(1) и DC(2), задаваемыми собственными векторами матриц рассеяния DC(i), i = 1, 2, которые соответствуют максимальным собственным числам (см. рис. 3.10,6).
Для выделения точек контура, соответствующих вершинам углов на кривой, последовательность значений кривизны, полученную в результате работы алгоритма вышеприведенного типа, обычно подвергают двухшаговой обработке:
полученные значения кривизны сравнивают с некоторым пороговым значением;
оставшиеся точки проходят проверку на выполнение условия, являются ли соответствующие им значения кривизны локальными максимумами на достаточно большом подмножестве точек контура.
Наличие проверочной стадии связано с эффектом сглаживания, степень которого зависит от величины т при вычислении значений кривизны.
Существуют альтернативные методы отыскания вершин (углов) на дискретной кривой. Один из них основан на вычислении величин отклонений касательной к замкнутой дискретной кривой. При вычислении угла относительного отклонения касательной используют нормализованную матрицу рассеяния множества точек кривой
,
где и— соответственно средние значения по координатам x и у, а сама касательная к кривой в точке понимается как главное направление дискретной дуги с центром в данной точке, задаваемое собственным вектором матрицы рассеяния точек дуги; вектор соответствует максимальному собственному числу.
Пусть дискретная замкнутая кривая задана упорядоченным набором точек с декартовыми координатами: {(xi, yi), i = 1, ..., N}. Входными параметрами алгоритма, вычисляющего координаты «угловых» точек кривой, являются:
порог отклонения касательной , задаваемый в пределах 525° [15];
число точек m, используемых в вычислении матрицы рассеяния (аналог порядка кривизны дискретной кривой); обычно 515; фактически величинат отражает степень сглаживания кривой: большие значения т приводят к устранению ложных вершин в «зашумленных» данных, но одновременно могут способствовать удалению малых по глубине впадин и коротких пиков на кривых высокого качества;
параметр приемлемости условной оси отсчета обычно выбирают в пределах 0,7< <0,9; параметр характеризует «прямолинейность» выбранной оси, от которой ведется отсчет отклонений касательной;
минимальное число d точек данных между последовательными точками по условной оси отсчета.
Выходными параметрами алгоритма служат идентификаторы вершин исходной кривой и помеченные в зависимости от способа их определения (либо с помощью сравнения с порогом отклонения касательной , либо в результате превышения параметраd), а также количество вершин с.