1. Если (CF.mass==0), то к п.2, иначе переход к п.3
2. С= 140; переход к п.6
3. P=CentrMass(CF);
4. h=sqrt( (P.x-CF.x)^2 + (P.y-CF.y)^2 );
5. C=(h / insideR^2+0.005)*100;
6. Конец;
2.4.3. Список условных обозначений
Условные обозначения, используемые в описании алгоритма, приведены в табл. 2.3.
Таблица 2.3
Список условных обозначений
Обозначение | Расшифровка |
CF | Центр фильтра ( поле mass – масса пиксела, x,y – соответственно, координаты) |
С | Кривизна |
CentrMass | Функция, вычисляющая центр масс |
P | Центр масс |
h | Смещение центра масс от центра фильтра |
insideR | Внутренний радиус кольца |
sqrt | Функция, вычисляющая корень квадратный |
^ | Операция возведения в степень |
2.5. Описание алгоритма обработки изображения
2.5.1. Назначение и характеристика алгоритма
Алгоритм описывает обработку изображения кольцевым фильтром. В алгоритме используются кольцевой фильтр. В результате решения алгоритма выполняется прохождение фильтра по изображению и сохранение результата в файл.
1. Name = FormNewFileName(OpenDialog1->FileName);
2. outIm=fopen(Name,"wb");
3. fwrite(&Width,sizeof(Width),1, outIm);
4. fwrite(&Height,sizeof(Height),1, outIm);
5. RingFiltrPoint(insideR,outsideR);
6. i=outsideR;
7. j=outsideR;
8. CrArr[i][j]=CentroidRelax(i,j,insideR,outsideR);
9. j++;
10. Если j<Height-outsideR, то переход к п. 8
11. i++;
12. Если i< Width-outsideR, то переход к п. 7
13. i=0;
14. j=0;
15. fwrite(&CrArr[i][j],sizeof(CrArr[i][j]),1, outIm);
16. j++;
17. Если j<Height, то переход к п. 15
18. i++;
19. Если i<Width, то переход к п. 14
20. fclose(outIm);
21. Конец;
2.5.3. Список условных обозначений
Условные обозначения, используемые в описании алгоритма, приведены в табл. 2.4.
Таблица 2.4
Список условных обозначений
Обозначение | Расшифровка |
outIm | Выходной файловый поток |
Name | Имя выходного файла |
FormNewFileName | Функция, формирующая новое имя выходного файла |
OpenDialog1-> FileName | Имя файла, открытого с помощью диалога “Открыть” |
fopen | Функция открытия файла |
outsideR | Внешний радиус кольца |
insideR | Внутренний радиус кольца |
RingFiltrPoint | Функция вычисления точек фильтра |
Обозначение | Расшифровка |
CrArr | Массив кривизны линий |
CentroidRelax | Функция вычисления кривизны |
fwrite | Функция записи в файл |
sizeof | Функция вычисления размера переменной |
fclose | Функция закрытия файла |
2.6. Описание программы «Центроидная релаксация»
2.6.1. Вводная часть
Программа «Центроидная релаксация» применяется для автоматизации процесса структурного анализа графического изображения. При этом программа использует человеко-машинный интерфейс: человек выбирает, чем оперировать и параметры обработки данных, а программа выполняет все необходимые расчеты.
Для начала работы следует загрузить файл изображения или выходной файл подсистемы центроидной фильтрации (изображение, обработанное центроидным фильтром), и задать параметры кольцевого фильтра для его обработки. После этого программа обнаруживает линии и вычисляет их кривизну. Результаты работы сохраняются в файл.
Программа имеет обозначение Relax, разработана в среде программирования Borland C++ Builder 6.0.
2.6.2. Функциональное назначение
Программа выполняет анализ структурного описания изображения, полученного в результате центроидной фильтрации. Программа использует алгоритмы, описанные в подразделах 2.2-2.5.
Для функционирования программы необходим следующий комплекс технических средств:
– процессор Intel Pentium 900 MHz;
– подсистема «Центроидная релаксация» занимает около 15 Мб оперативной памяти. Оболочка системы ААПСИ занимает около 5 Мб оперативной памяти. Дополнительно к этому и оболочка и программа выделяют память под рабочее изображение. Таким образом, оболочка использует дополнительную память, соответствующую размерам изображения, а программа использует память, соответствующую двум размерам изображения;
– для размещения ОС Windows XP и прикладных задач на жестком диске необходимо минимально 1,5 Гб свободного пространства. Система ААПСИ занимает около 10 Мб на жестком диске. Программа занимает около 1 Мб на жестком диске. Дополнительное место на диске занимают файлы изображений используемых программой, а также файлы создаваемые программой. С учетом этого на диске необходимо выделить достаточное пространство для всех файлов (от 100 Мб и выше);
– видеоподсистема с объемом памяти 32 Мб;
– цветной SVGA монитор с диагональю не менее 15’’ и разрешением не ниже 800x600 (рекомендуется 1024x768);
– русифицированная клавиатура;
– манипулятор «мышь».
При возможных сбоях, программа после устранения сбоя может оперировать с имеющимися сохраненными данными.
2.6.3. Описание информации
Вся входная и выходная информация, используемая и создаваемая программой, находится в каталоге проекта системы ААПСИ. Структура файлов описана в подразделах 2.1.2 и 2.1.3. Программа использует входные данные из этих файлов, обозначенные следующими идентификаторами:
– Width – ширина исходного изображения;
– Height – ширина исходного изображения;
– ImArr – исходное изображение подготовленное для дальнейшей обработки;
Программа создает выходные данные, обозначенные следующими идентификаторами:
– СrArr – матрица кривизны структурных элементов изображения;
2.6.4. Используемые подпрограммы
В программе используются следующие подпрограммы:
– RingFiltrPoint – вычисление точек кольцевого фильтра;
– CenrMass – определение центра масс;
– CentroidRelax – расчет кривизны структурного элемента;
– Imaging – обработка входного изображения;
– OpenFLD – открытие и подготовка файла описания изображения, полученного после центроидной фильтрации, к работе.
2.6.5. Описание логики
Описание логики программы «Центроидная релаксация» приведено на рис. 2.9.
Логика программы «Центроидная релаксация»
Рис. 2.9
2.7. Описание контрольного примера
2.7.1. Назначение
Контрольный пример предназначен для проверки корректности работы подсистемы «Центроидная релаксация».
2.7.2. Исходные данные
В качестве исходных данных использовался файл изображения, приведенный на рис. П.2.7.
2.7.3. Результаты расчета
После обработки должны быть сформированы все необходимые файлы структурного описания обработанных изображений. К ним относятся файлы одного и того же изображения, обработанного разными фильтрами, а также файлы различных изображений в зависимости от выбора пользователя. Для наблюдения эффекта релаксации необходимо обработать исходное изображение серией кольцевых фильтров различных радиусов. В результате проведения серии экспериментов должна наблюдаться картина постоянства кривизны структурных элементов при использовании фильтров различных радиусов. В этом и состоит эффект релаксации.
2.7.4. Результаты испытания
В результате обработки данных контрольного примера получены изображения, представленные на рис. П.2.8 – П.2.26. Результаты полностью соответствуют ожиданиям. Программа справляется с решением задачи «Центроидной релаксации».
3. ОРГАНИЗАЦИОННО-ЭКОНОМИЧЕСКАЯ ЧАСТЬ
3.1. Обоснование необходимости разработки подсистемы центроидной релаксации
Подсистема центроидной релаксации является частью системы автоматизированного анализа пространственной структуры изображений, предназначенной для структурного анализа различных графических изображений. Разрабатываемая система носит исследовательский характер и предназначена для поиска и отладки наиболее эффективных алгоритмов обработки изображений.
Подсистема центроидной релаксации позволяет получить структурное описание изображения, посредством вычисления кривизны линий исследуемого рисунка. При этом значительно уменьшается размер обрабатываемого изображения, что дает следующие преимущества:
– увеличение скорости передачи полученного описания по каналам связи;
– уменьшение занимаемого объема памяти машины.