Система автоматизированного анализа пространственной структуры изображений. Подсистема линейной сегм...

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

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

Скачать Бесплатно!
Для того чтобы скачать эту работу.
1. Пожалуйста введите слова с картинки:

2. И нажмите на эту кнопку.
закрыть



ВМ с процессором не ниже Intel Pentium. Но желательно использовать ЭВМ с процессором не ниже класса Intel Pentium II, который работает более эффективно.

 

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 или более поздней версии. Для рабо

s