Для работы программы необходимо наличие операционной системы Windows 95/Windows NT или более поздней версии. Для работы программы с данными, размещенными в сети, необходима настройка сетевых подключений операционной системы к рабочей группе. Дополнительная настройка программы не требуется.
Описание контрольного примера
Назначение
Контрольный пример предназначен для проверки программ подсистемы линейной сегментации, осуществляющих поиск узлов, сформированных в результате пересечения линий исходного графического изображения, поиск сегментов этих линий, их обработку и кодирование.
Схема программы SegCode
|
Рис. 4.1
Исходные данные
В качестве исходных данных используется графическое изображение размером 32x32 точки, приведенное на рис. 4.2.
Данное изображение содержит рассмотренные типы сегментов линий и узлов, которые могут быть выделены для дальнейшей обработки. Координаты точек изображения находятся в интервале [0..31].
|
Рис. 4.1. Продолжение
Исходное изображение
Рис. 4.2
Результаты расчета
В результате анализа исходных данных определим точки, формирующие узлы. В данном случае изображение содержит 3 узла, отмеченных на рис. 4.3.
Узлы изображения
Рис. 4.3
Выделенные узлы имеют координаты
1: (14,25)
2: (25,22)
3: (10,11)
Разобьем линии на изображении на сегменты. В результате разбиения можно выделить 11 сегментов линий.
На рис. 4.4 выделен сегмент, не имеющий пересечений. Ни одна из образующих его точек не является узловой. Для передачи координат точек такого сегмента в подсистему цепного кодирования достаточно указания одной из координат.
На рис. 4.5 выделены 8 сегментов, одна из крайних точек которых является узлом. Для идентификации такого сегмента линии необходимо указать координаты начала сегмента и координаты узла, в котором завершается данных сегмент.
На рис. 4.6 выделены 2 сегмента, обей крайних точки которых являются узлами. При кодировании такого сегмента в подсистеме цепного кодирования возникает неопределенность направления кодирования, поэтому для устранения данной проблемы было принято указывать еще одну точку, определяющую направление кодирования сегмента.
Сегмент, не имеющий пересечений
Рис. 4.4
Сегменты с одним узлом
Рис. 4.5
Сегменты, образованные двумя узлами
Рис. 4.6
Координаты точек сегментов представлены в таблице 4.2
Таблица 4.2
Координаты точек сегментов
Номер сегмента | Начальная точка | Конечная точка | Количество узлов в сегменте |
1 | 30,11 | 13,2 | 0 |
2 | 14,30 | 14,25 | 1 |
3 | 25,30 | 25,22 | 1 |
4 | 7,27 | 14,25 | 1 |
5 | 28,22 | 25,22 | 1 |
6 | 5,16 | 10,11 | 1 |
7 | 1,7 | 10,11 | 1 |
8 | 14,7 | 10,11 | 1 |
9 | 25,9 | 25,22 | 1 |
10 | 14,25 | 10,11 | 2 |
11 | 14,25 | 25,22 | 2 |
Точки, определяющие направления для кодирования сегментов 10 и 11, образованных двумя узлами имеют координаты, представленные в таблице 4.3.
Таблица 4.3
Точки, определяющие направление
Номер сегмента | Координаты первой точки | Координаты точки направления | Координаты второй точки |
10 | 14,25 | 14,24 | 10,11 |
11 | 14,25 | 15,25 | 25,22 |