Исследование систем управления манипулятором MR-999Е

Диссертация - Компьютеры, программирование

Другие диссертации по предмету Компьютеры, программирование

массив CHAIN.

Цепная запись и основной алгоритм. В настоящей работе точка матрицы, соответствующей образу, считается связанной с другой точкой, если последняя находится в одной из восьми позиций, непосредственно смежных с первой точкой.

 

Таблица 1.1 - Параметры, определяемые процедурой EDGETRACE

ПеременнаяЗначениеPERIMETERДлина прослеженного контура, положительное целое числоAREAПлощадь, ограниченная контуром, положительное целое числоХМАХ XMIN YMAX YMINМаксимальное и минимальное значения координат точек, принадлежащих контуру, отрицательные целые числаXCENTROID YCENTROIDКоординаты центра площади, ограниченной контуром, отрицательные целые числаCHA1NCOUNTКоличество элементарных векторов, составляющих контур, совпадающее с количеством просмотренных граничных точек, отрицательное целое числоCHAINУпорядоченный массив значений, задающих направления элементарных векторов, составляющих контур. Массив состоит из элементов CHA1NCOUNT

Соединение любой пары связанных точек может быть представлено одним из восьми элементарных векторов (рис 1.3), направления которых помечены значениями от -8 до -1 (отрицательные значения взяты для совмещения со схемой индексации ЭВМ PL-516).

 

Рисунок 1.3 - Определение элементарных векторов [8]

 

Алгоритм прослеживания границы "обнуляет" значение найденной точки, принадлежащей контуру, до перехода к следующей точке. Таким образом, из матрицы FRAME удаляются прослеженные очерки. Базовая точка поиска перемещается по контуру против часовой стрелки, что при поиске контуров с помощью развертки обеспечивает первое вхождение в контур извне. Войти в контур изнутри можно только в том случае, если он пересекает границу матрицы. При этом процедура EDGETRACE выдаст сообщение об ошибке.

Нет необходимости проверять в каждой точке контура объекта все восемь соседних точек - некоторые из них уже были проверены на предыдущем шаге, когда базовой точкой поиска была предыдущая. До начала локального поиска в зависимости от направления предыдущего вектора устанавливаются переменные SEARCHDIRN (первое проверяемое направление) и ENDDIRN (последнее проверяемое направление).

На каждом шаге поиска просматривается до шести точек, но обычно их число меньше. На прямолинейных участках контура до нахождения следующей его точки чаще всего достаточно просмотреть одну-две точки.

Полное описание очеркового контура формируется в виде списка направлений векторов, соединяющих каждую точку контура с последующей в том порядке, в котором они были найдены (массив CHAIN). Результат применения процедуры прослеживания границы к простому контуру и полученное "цепное" описание показаны на рис. 1.4.

Параллельно с определением точек контура проводятся вычисления периметра, площади и моментов площади первого порядка [16].

Вычисление периметра. Параметр представляет собой сумму длин элементарных векторов, составляющих контур. Эти векторы имеют длину 1 (направления с четными номерами) или единицы растра (направления с нечетными номерами). Предполагается, что расстояние между точками в матрице равно размеру элемента растра.

 

Рисунок 1.4 - Описание контура простой формы

Таблица 1.2 - Номера и значения цепочки

Номер элемента цепочкиЗначение элемента цепочки-1-2-2-2-3-2-4-8-5-1-6-2-7-8-8-8-9-8-10-8-11-6-12-6-13-6-14-6-15-5-16-5-17-4-18-4-19-3-20-4

По мере нахождения новой точки контура в зависимости от того, каким было направление последнего вектора, увеличивается на единицу значение одной из переменных - EVENPERIM или ODDPERIM. В конце процедуры вычисляется и округляется до ближайшего целого значение периметра:

 

PERIMETER = EVENPERIM + ODDPERIM

 

Вычисление площади. Площадь, ограниченная контуром, вычисляется как сумма площадей, ограниченных элементарным вектором, вертикалями, проведенными через его концы, и подходящей горизонтальной линией (ей приписывают значение Y = 0). С учетом нумерации направлений векторов получается, что элементарные векторы с уменьшающейся компонентной х (-5, -4, -3) вносят в общую сумму положительные значения, а векторы с увеличивающейся компонентой х (-7, -8, -1) - отрицательные (из рис. 1.4 видно, что Y имеет отрицательные значения). При таких условиях площадь, ограниченная контуром, прослеживаемым против часовой стрелки, будет иметь положительное значение.

На рис. 1.6 показан простой пример. Во избежание лишних манипуляций с коэффициентом 1/2 процедура EDGETRACE накапливает удвоенное значение площади (AREA2) и в конце вычислений делит его пополам.

Определение первых моментов площади и центроидов. Аналогичный метод используется для вычисления моментов ограниченной площади первого порядка относительно осей х и у. На рис. 1.7 показаны восемь элементарных векторов и первые моменты для площадей, заключенных между векторами и осью х (AWX). Сумма всех компонент ДЛ/Х для контура даст отрицательное целое число, которое после деления на значение ограниченной площади даст координату ее центра по оси у.

Выражение для АМХ в случае векторов с направлениями, имеющими нечетные номера, содержит постоянный член 1/6 или -1/6. В замкнутом контуре, состоящем из большого числа элементарных векторов, можно считать количества векторов всех направлений приблизительно одинаковым. Это приводит к взаимному уничтожению постоянных членов. Кроме того, постоянный член достаточно мал по сравнению с Y2 и с площадью, особенно в том случае, когда объект рассматривается вблизи и его образ занимает большую часть поля зрения [17]. Поэтому можно упростить вычисления, пренебрегая постоянным