Поиск по базе сайта:
Пояснительная записка к дипломной работе на тему icon

Пояснительная записка к дипломной работе на тему




НазваПояснительная записка к дипломной работе на тему
Сторінка6/21
Дата конвертації08.07.2013
Розмір1.22 Mb.
ТипПояснительная записка
1   2   3   4   5   6   7   8   9   ...   21

3.2. Описание алгоритма «Поиск сегментов»




^ 3.2.1. Назначение и характеристика


Алгоритм «Поиск сегментов» предназначен для определения в составе обрабатываемого графического изображения сегментов линий. Алгоритм позволяет, основываясь на узлах, полученных в результате работы алгоритма «Поиск узлов», выделить структурные элементы изображения с целью получения описания исходного графического изображения, подвергая его кодированию и/или последующей обработке, в том числе и в подсистемах синтеза графических изображений. Алгоритм «Поиск сегментов» позволяет определить все типы сегментов, которые различаются способом описания (отдельный сегмент, сегмент с одним узлом, сегмент, определяемый двумя узлами).

3.2.2. Используемая информация


При работе данного алгоритма используются следующие массивы:

- массив точек исходного изображения;

- массив узлов.

3.2.3. Результаты решения


Алгоритм формирует значения элементов массива сегментов, содержащихся на изображении с указанием номера каждого сегмента для последующей их идентификации. Данная информация позволяет производить описание сегментов трех типов, описанных в пункте 3.1.4 с целью дальнейшего описания, формирования файла и передачи в подсистему цепного кодирования.

3.2.4. Алгоритм решения


Алгоритм решения составлен с учетом математического описания, приведенного в пункте 3.1.4. Алгоритм представляется в текстовом виде следующим образом:

  1. Начало;

  2. Инициализация массива сегментов;

  3. i=0; j=0; nsegs =0;

  4. Если j>=N, то переход к п.11;

  5. Если i>=M, то переход к п.10;

  6. Если (apix[i][j]=1)и(apix1[i][j]<0)и((NeigCount(i,j)=1)или(NeigCount(i,j)=2)), то переход к п.7, иначе к п.9;

  7. nsegs = nsegs +1;

  8. NeigLine(i,j, nsegs);

  9. i=i+1; переход к п.5;

  10. i=0; j=j+1; переход к п.4;

  11. Конец.



3.2.5. Требования к контрольному примеру


Для контрольного примера необходимо подготовить такое изображение, чтобы оно содержало все рассмотренные типы сегментов:

- отдельно расположенные сегменты, начало и конец которых являются обычными точками - такие сегменты представляют собой отдельные линии;

- сегменты, одна из начальных точек которых является узловой (входит в область пересечения с другими сегментами) – это сегменты, являющиеся началом какой-либо линии;

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

3.2.6. Условные обозначения


В таблице 3.1 представлены условные обозначения, введенные в тексте подраздела

Таблица 3.1

Условные обозначения


Условные обозначения

Расшифровка

M

ширина входного изображения

N

высота входного изображения

apix[M][N]

исходный массив точек

apix1[M][N]

массив сегментов

NeigCount

функция вычисления количества соседних точек

NeigLine(x,y,n)

рекурсивная функция выделения узловых точек, x,y – координаты начала выделения, n – номер узла

nsegs

номер текущего сегмента


3.3. Описание программы «Поиск сегментов»

3.3.1. Вводная часть


Программа «Поиск сегментов», обозначаемая как AnalyzeSeg, предназначена для обработки исходного изображения с целью поиска сегментов линий. Программа использует массив узлов, получаемый в результате работы программы AnalyzeNode, описанной в пункте 2.3, и на основании данных массива узлов и исходного изображения осуществляет заполнение массива сегментов, элементы которого представляют собой описание принадлежности какой-либо точки какому-либо сегменту линии.

3.3.2. Функционально назначение


Программа AnalyzeSeg предназначена для обработки исходного изображения с целью поиска сегментов линий. Программа использует предварительно обработанный и заполненный массив узлов. В процессе работы с программой пользователь осуществляет формирование значений массива сегментов линий, значения элементов которого представляют собой описание принадлежности какой-либо точки какому-либо сегменту линии. Данные массива сегментов сохраняются и используются в дальнейшем при выводе кодов линий для последующей передачи в подсистему цепного кодирования и, при необходимости, в другие подсистемы.

3.3.3. Описание информации


Программа AnalyzeSeg на входе использует следующие данные:

- массив точек;

- массив узлов;

На выходе программа формирует следующие данные:

- массив сегментов;

3.3.4. Используемые подпрограммы


В процессе работы программа обращается к следующим подпрограммам:

- wlog – подпрограмма вывода сообщений в журнал вычислений;

- NeigCount – подпрограмма получения количества соседних точек;

- NeigLine – подпрограмма рекурсивной обработки точек одного сегмента линии;

- DrawGrid – подпрограмма вывода сетки изображения.

3.3.5. Описание логики


Схема программы AnalyzeSeg представлена на рис. 3.4. Здесь представлено текстовое описание схема программы:

  1. Начало;

  2. Инициализация массива сегментов;

  3. i=0; j=0; nsegs =0;

  4. Если j>=N, то переход к п.11;

  5. Если i>=M, то переход к п.10;

  6. Если (apix[i][j]=1)и(apix1[i][j]<0)и((NeigCount(i,j)=1)или(NeigCount(i,j)=2)), то переход к п.7, иначе к п.9;

  7. nsegs = nsegs +1;

  8. NeigLine(i,j, nsegs);

  9. i=i+1; переход к п.5;

  10. i=0; j=j+1; переход к п.4;

  11. Конец.



3.3.6. Настройка программных средств


Для работы программы необходимо наличие операционной системы Windows 95/Windows NT или более поздней версии. Для работы программы с данными, размещенными в сети, необходима настройка сетевых подключений операционной системы к рабочей группе. Дополнительная настройка программы не требуется.

Схема программы AnalyzeSeg

Рис. 3.4
1   2   3   4   5   6   7   8   9   ...   21



Схожі:




База даних захищена авторським правом ©lib.exdat.com
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації