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

116



28







Федеральное агентство по образованию

Государственное образовательное учреждение

высшего профессионального образования

«ИЖЕВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

Факультет «Информатика и вычислительная техника»

Кафедра «Программное обеспечение»





ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к дипломной работе на тему:

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



	Дипломник

	студент группы 10-19-2.......................................................Е.В. Балобанова

	Руководитель	

	вед. инженер кафедры ПО.................................................. Л.Н. Левицкая

	Консультант по экономической части

	к.э.н., доцент.....................................................................И.И. Радыгина

		Консультант по безопасности

	и экологичности....................................................................Г.Ф. Якименко

	Нормоконтроль.......................................................................В.П. Соболева

	Рецензент

	вед. Инженер АО «Аксион».................................................. В.Н. Захаров

	Заведующий кафедрой

	«Программное обеспечение»

	д.т.н., профессор....................................................................А.И. Мурынов

	

	ИЖЕВСК 2006


РЕФЕРАТ



Пояснительная записка к дипломной работе на тему «Система автоматизированного анализа пространственной структуры изображений. Подсистема центроидной релаксации» оформлена на 101 листах, содержит 42 рисунка, 16 таблиц.

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

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

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

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

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

Разработанное программное обеспечение является исследовательским, оно направлено на изучение и анализ методов обработки изображений. С его помощью были получены экспериментальные данные, использованные в данной работе. Конечным программным продуктом может являться оболочка, представляющая в значительной мере автоматизированный интерфейс для проведения структурного анализа изображений.


СОДЕРЖАНИЕ



ВВЕДЕНИЕ	3

1.	РАЗРАБОТКА СИСТЕМЫ АВТОМАТИЗИРОВАННОГО АНАЛИЗА ПРОСТРАНСТВЕННОЙ СТРУКТУРЫ ИЗОБРАЖЕНИЙ	3

1.1.	Обоснование целесообразности разработки системы автоматизированного анализа пространственной структуры изображений	3

1.1.1.	Назначение системы	3

1.1.2.	Характеристика функциональной структуры системы	3

1.1.3.	Обоснование цели создания системы	3

1.1.4.	Обоснование состава автоматизируемых задач	3

1.2.	Аналитический обзор	3

1.3.	Основные требования к системе	3

1.3.1.	Основные цели создания системы и критерии эффективности ее функционирования	3

1.3.2.	Функциональное назначение системы	3

1.3.3.	Особенности системы и условия ее эксплуатации	3

1.3.4.	Требования к функциональной структуре	3

1.3.5.	Требования к техническому обеспечению	3

1.3.6.	Требования к информационному обеспечению	3

1.3.7.	Требования к программному обеспечению	3

1.4.	Основные технические решения проекта системы	3

1.4.1.	Решение по комплексу технических средств	3

1.4.2.	Описание системы программного обеспечения	3

2.	РАЗРАБОТКА ЗАДАЧИ «ПОДСИСТЕМА ЦЕНТРОИДНОЙ РЕЛАКСАЦИИ»	3

2.1.	Описание постановки задачи	3

2.1.1.	Характеристика задачи	3

2.1.2.	Входная информация	3

2.1.3.	Выходная информация	3

2.1.4.	Математическая постановка задачи	3

2.2.	Описание алгоритма построения кольцевого фильтра	3

2.2.1.	Назначение и характеристика алгоритма	3

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

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

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

2.2.5.	Список условных обозначений	3

2.3.	Описание алгоритма вычисления центра масс	3

2.3.1.	Назначение и характеристика алгоритма	3

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

2.3.3.	Список условных обозначений	3

2.4.	Описание алгоритма вычисления кривизны	3

2.4.1.	Назначение и характеристика алгоритма	3

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

2.4.3.	Список условных обозначений	3

2.5.	Описание алгоритма обработки изображения	3

2.5.1.	Назначение и характеристика алгоритма	3

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

2.5.3.	Список условных обозначений	3

2.6.	Описание программы «Центроидная релаксация»	3

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

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

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

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

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

2.7.	Описание контрольного примера	3

2.7.1.	Назначение	3

2.7.2.	Исходные данные	3

2.7.3.	Результаты расчета	3

2.7.4.	Результаты испытания	3

3.	ОРГАНИЗАЦИОННО-ЭКОНОМИЧЕСКАЯ ЧАСТЬ	3

3.1.	Обоснование необходимости разработки подсистемы центроидной релаксации	3

3.2.	Планирование разработки	3

3.3.	Расчет расходов на создание системы	3

4.	БЕЗОПАСНОСТЬ И ЭКОЛОГИЧНОСТЬ ПРОЕКТА	3

4.1.	Анализ вредных и опасных производственных факторов	3

4.2.	Техника безопасности при работе с компьютером	3

4.3.	Электробезопасность при работе с компьютером	3

4.4.	Требования к освещению рабочего места и его расчет	3

4.4.1.	Требования к освещению рабочего места	3

4.4.2.	Расчет освещенности рабочего места	3

4.5.	Параметры микроклимата, загрязнение воздуха рабочей зоны вредными веществами	3

4.6.	Пожаробезопасность при работе с компьютером	3

ЗАКЛЮЧЕНИЕ	3

СПИСОК ЛИТЕРАТУРЫ	3

ПРИЛОЖЕНИЕ 1 ТЕКСТ ПРОГРАММЫ	3

ПРИЛОЖЕНИЕ 2 РЕЗУЛЬТАТЫ РАБОТЫ ПРОГАММЫ	3

ПРИЛОЖЕНИЕ 3 РУКОВОДСТВО ПРОГРАММИСТА	3

ПРИЛОЖЕНИЕ 4 РУКОВОДСТВО ОПЕРАТОРА	3




ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ, СОКРАЩЕНИЙ, СИМВОЛОВ И СПЕЦИАЛЬНЫХ ТЕРМИНОВ С ИХ ОПРЕДЕЛЕНИЯМИ

ААПСИ – автоматизированный анализ пространственной структуры изображений

ОС – операционная система

ЭВМ – электронно-вычислительная машина

ПО – программное обеспечение

ВВЕДЕНИЕ



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

Графические образы, представляемые окружающим миром человеку, обладают большим разнообразием. Под этим названием объединены и топографическая карта, и фотография. При этом неотъемлемым атрибутом изображения является его пространственная структура. Способность реконструировать эту структуру при визуальном восприятии и обеспечивает предметность восприятия.

Отличительными признаками и характеристиками графических изображений являются:

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

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

Образно-знаковый характер (семантическая определенность).  Изображение составляется из элементов и их агрегатов в соответствии с некоторой заранее заданной легендой (номенклатурой), предусматривающей определенное графическое наполнение в форме условных знаков. За счет использования условных знаков обеспечивается передача семантики изображения при визуальном восприятии.

Цифровая графическая информация имеет две формы представления:

	растровая;

	векторная.

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

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

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

	искажение тоновых и цветовых шкал носителя изображения;

	пространственно-частотные искажения;

	шумы и помехи носителя изображения;

	собственные искажения процессов цифровой регистрации изображений.

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

Векторная форма представления определяет  структуру размещения графических элементов на изображении. В векторном формате изображение задается как совокупность отдельных объектов, описанных математически (например, как векторы на плоскости), а в растровом - по точкам, как мозаика.  К примеру, один и тот же отрезок прямой будет описан так: 

			в векторном формате - заданы координаты начала и конца прямой, цвет и толщина; 

	в растровом формате - заданы координаты каждой точки прямой, входящей в этот отрезок, и ее цвет. 

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

			изменение масштаба без потери качества и практически без увеличения размеров исходного файла; 

			огромная точность (до сотой доли микрона); 

			небольшой размер файла по сравнению с растровыми изображениями; 

			прекрасное качество печати; 

			отсутствие проблем с экспортом векторного изображения в растровое; 

			возможность редактирования каждого элемента изображения в отдельности. 

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

Работать с векторными изображениями: редактировать их, перемещать элементы, менять их размер, поворот – намного легче. Возникает необходимость экспортировать изображение из растрового формата – в  векторный. 

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

РАЗРАБОТКА СИСТЕМЫ АВТОМАТИЗИРОВАННОГО АНАЛИЗА ПРОСТРАНСТВЕННОЙ СТРУКТУРЫ ИЗОБРАЖЕНИЙ



Обоснование целесообразности разработки системы автоматизированного анализа пространственной структуры изображений



		Назначение системы

Система автоматизированного анализа пространственной структуры изображений предназначена для структурного анализа и обработки графических изображений. ААПСИ применяется для получения кодированного описания изображения, обнаружения и определения характеристик структурных элементов изображения. Обработка изображения с помощью системы позволяет понизить количество шумов и искажений, выделить осевые линии на изображении, и сегментировать полученные линии. В результате обработки удается значительно уменьшить объем изображения по сравнению с исходным растром.

		Характеристика функциональной структуры системы

Обработка изображений состоит из следующих этапов:

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

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

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

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

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

		в подсистеме цепного кодирования  разработан алгоритм более эффективного представления структурных элементов изображения, происходит кодирование сегментов посредством использования методики цепных и дифференциальных цепных кодов;

Функциональная схема системы приведена на рис. 1.1.



		Обоснование цели создания системы

Задачи структурного анализа изображений имеют широкий спектр применения, начиная от векторизации растров и заканчивая распознаванием образов. Структурный анализ изображений подразумевает выделение из них структурных элементов, таких, например, как линия, область, компактный элемент (буква) и т.д. На настоящий момент разработано много алгоритмов, выделяющих структурные элементы на монохромных изображениях. Однако практика показывает что, разработанные методы допускают много ошибок. Для их устранения требуется большой объем времени. Поэтому возникает проблема нахождения оптимальных методов структурного анализа, позволяющих наиболее точно выделять структурные элементы.

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




Функциональная схема системы автоматизированного анализа пространственной структуры изображений



Рис. 1.1



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

		Обоснование состава автоматизируемых задач

Реализация системы ААПСИ позволит интегрировать в едином интерфейсе все этапы обработки изображений:

			создание, изменение, выбор фильтра для сканирования изображения;

			фильтрация изображения и выделение осевых линий посредством обработки центроидным фильтром;

			обработка изображения кольцевым фильтром, вычисление кривизны структурных элементов изображения методом центроидной релаксации;

			выявление узлов и сегментов структурных элементов изображения;

			эффективное представление сегментов линий и непрерывных кривых посредством цепного кодирования;

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

Аналитический обзор

Как уже было указано во введении, модели представления изображений в ЭВМ можно разделить на два типа: растровые и векторные. Работа с растровыми и векторными моделями изображений реализована во многих программных продуктах.

Microsoft Paint

Простейший редактор растровых изображений, входящий в состав стандартной поставки ОС Microsoft Windows. Основные возможности:

		проведение прямых и кривых линий различной толщины и цвета;

		использование кистей различной формы, ширины и цвета;

		построение различных фигур: прямоугольников, многоугольников, овалов, эллипсов - закрашенных и не закрашенных;

		помещение текста на рисунок;

		использование преобразований: поворотов, отражений, растяжений и наклона;

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

		Недостатки:

		отсутствуют средства по улучшению качества изображения, подавлению шумов;

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

Продукт предназначен для простейшей обработки изображений, в которых отсутствуют искажения (например, полученных или создаваемых искусственным путем).

Adobe Photoshop

Профессиональный редактор растровых изображений. Основные возможности:

		контроль цвета и тона компонент изображения: возможность подбора палитры, замены цветов, поддержка 32-битного цвета (прозрачности), возможность построения гистограмм распределения цвета;

		интеллектуальное редактирование изображений: инструменты контекстной коррекции растра, позволяющие достичь фотореалистичности;

		широкий набор фильтров, позволяющих модифицировать и улучшить изображение;

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

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


Corel Draw

Программный продукт, предназначенный для создания и обработки изображений в векторной модели. Основные возможности:

		объектность и структурность, свойственные векторной модели, позволяют добиться большого удобства при создании и изменении изображений;

		поддержка импорта и экспорта в большое количество форматов, в том числе и преобразования в растр;

		возможность рисования линий, фигур, текста.

	Недостатки:

		невозможность импорта растровых изображений, полученных сканометрически;

		сложность в контроле цвета – практически невозможно добиться, чтобы цвета в экспортированном растровом изображении совпадали со стандартной палитрой.

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

Consistance Software Spotlight

Гибридный редактор. Основные возможности:

		изображение состоит из растра, на который наложены структурные элементы, это позволяет редактировать растровые изображения так же легко, как и векторные;

		векторизация сканированных изображений в полуавтоматическом и автоматическом режимах;

		возможность работы с цветными и монохромными входными растрами, наличие инструментов и фильтров, улучшающих изображение;

		инструменты автокоррекции векторных структур.

Среди недостатков программного продукта можно упомянуть:

		недостаточная эффективность фильтров, производящих редукцию цвета (уменьшение количества цветов);

		недостаточная эффективность инструментов по разделению цветов (уменьшение цветовых компонент до одной тоно-цветовой шкалы)/13/.

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

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

Среди программных продуктов, посвященных обработке искусственных изображений, можно проследить несколько тенденций:

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

		векторные изображения гораздо проще редактировать, при этом сложен процесс их получения из реального мира;

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

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


Основные требования к системе



		Основные цели создания системы и критерии эффективности ее функционирования

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

Для оценки эффективности работы системы ААПСИ можно использовать структурную целостность исходных и получаемых на выходе изображений.



		Функциональное назначение системы

Автоматизация процесса анализа пространственной структуры изображений подразумевает реализацию в системе определенных средств и функций. Следует выделить ряд функциональных особенностей, которыми должна обладать система ААПСИ:

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

		фильтрация изображения от шумов и различных искажений;

		выделение осевых линий структурных элементов изображения;

		автоматизированный анализ кривизны структурных элементов изображения;

		выявление сегментов и узлов структурных элементов изображения;

		кодирование структурных элементов изображения цепным и дифференциальным цепным кодом;

		сжатие изображения для более компактного хранения  с последующей возможностью извлечения;

		визуализация полученных результатов работы с возможностью их сохранения.

		Особенности системы и условия ее эксплуатации

Система ААПСИ предназначена для работы с цифровыми монохромными изображениями, полученными посредством сканирования или растровых редакторов. Для получения приемлемого качества при сканировании необходимо разрешение сканера минимум 600 dpi (точек на дюйм). Полученные таким образом изображения имеют размер порядка нескольких мегапикселей и должны сохраняться в формате без сжатия, чтобы избежать искажений. Изображение должно быть в формате GreyScale (цвета от белого до черного, промежуточные – оттенки серого). Таким образом, объем графической информации, обрабатываемый системой, достаточно велик и составляет десятки мегабайт. Эти особенности накладывают ограничения на использование непроизводительных и медленных алгоритмов.



		Требования к функциональной структуре

Построение системы автоматизированного анализа пространственной структуры изображений предполагает модульную структуру. Общий интерфейс и возможность доступа ко всем модулям в составе системы должна обеспечивать оболочка. Из оболочки системы ААПСИ вызываются следующие модули: подсистема формирования центроидных фильтров, подсистема центроидной фильтрации, подсистема центроидной релаксации, подсистема сегментации, подсистема цепного кодирования, подсистема визуализации данных. Обмен данными между подсистемами происходит посредством файлов.

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

Подсистема центроидной фильтрации служит для автоматизированной обработки изображения различными фильтрами для выделения осевых линий на изображении. Результатом обработки является файл структурного описания изображения.

Подсистема центроидной релаксации  служит для анализа изображения посредством вычисления кривизны структурных элементов с применением кольцевого фильтра. Результатом обработки является файл структурного описания изображения.

Подсистема сегментации служит для выявления сегментов и узлов структурных элементов изображения. Результатом обработки является файл описания сегментов и узлов изображения.

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

Подсистема визуализации данных служит для графического представления полученных результатов на каждом этапе обработки изображения. Результатом работы подсистемы является файл цветного изображения.



		Требования к техническому обеспечению

Задача обработки изображений в системе ААПСИ связана с автоматическим анализом больших массивов графической информации. Преобразования, проводимые в системе, должны проводиться в процессе интерактивного взаимодействия с пользователем, поэтому паузы на обработку не должны превышать нескольких минут. Исходя из этого, сформулированы требования к техническим характеристикам персонального компьютера, на котором будет функционировать система. Требования сведены в табл. 1.1.


Таблица 1.1

Технические характеристики персонального компьютера

Наименование

Значение

Частота процессора, МГц

от 900

Объем оперативной памяти, Мб

от 128

Разрешение экрана монитора

не менее  1024x768



		Требования к информационному обеспечению

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

Основным видом информации, обрабатываемом в системе ААПСИ, является графическая информация в растровом представлении. Такой вид данных воспринимается человеком непосредственно и целостно, поэтому необходимо обеспечить средства наглядной визуализации изображений на различных этапах обработки.



		Требования к программному обеспечению

Систему ААПСИ целесообразно разрабатывать для функционирования под операционной системой семейства Windows, так как ОС данного класса наиболее широко распространены в современном мире. Платформами для разработки выбраны среды Borland C++ Builder 6 и Microsoft Visual C++. Эти среды поддерживают алгоритмический язык C++ и обладают при этом возможностями быстрой разработки и проектирования визуальных интерфейсов, что особенно важно при работе с графической информацией.



Основные технические решения проекта системы



		Решение по комплексу технических средств

Как уже отмечалось в п. 1.3.5 «Требования к техническому обеспечению», для достижения удобного пользователю режима функционирования системы необходимо следующая минимальная конфигурация персонального компьютера: частота процессора 900 МГц, объем оперативной памяти 128 Мб, монитор, поддерживающий разрешение 1024x768 точек.  Также желательно наличие следующих периферийных технических средств: планшетный сканер с разрешающей способностью не менее 600x600 dpi (точек на дюйм), цветной струйный принтер для вывода на печать результатов обработки изображений.



		Описание системы программного обеспечения

Для реализации и функционирования проекта необходимо следующее общесистемное программное обеспечение: ОС Windows XP, в основе которой лежит ядро, характеризуемое 32-разрядной вычислительной архитектурой и полностью защищенной моделью памяти, что обеспечивает надежную вычислительную среду.

Разработка системы ААПСИ и ее подсистем будет вестись с использованием сред для разработки приложений Borland C++ Builder 6 и Microsoft Visual Studio C++. Среды разработки включают в себя высокопроизводительный 32-битный компилятор, что позволяет оптимизировать создаваемый код. В состав каждой среды включен обширный набор средств, которые повышают производительность труда программистов и сокращают продолжительность цикла разработки. Удобство разработки и эффективность созданных в данных средах разработки программ делают их оптимальным выбором для построения исследовательской системы, какой является система ААПСИ.

РАЗРАБОТКА ЗАДАЧИ «ПОДСИСТЕМА ЦЕНТРОИДНОЙ РЕЛАКСАЦИИ»

	

	Описание постановки задачи

	

	Характеристика задачи

Задача «Центроидная релаксация» входит в состав системы «Автоматизированный анализ пространственной структуры изображений» и предназначена для автоматизации процесса анализа геометрических характеристик структурных элементов изображения. Целесообразность автоматизации задачи обусловлена необходимостью изучения выделенных структурных элементов изображения. Изучению сопутствует процесс автоматизированных вычислений, который сложно и долго выполнять без ЭВМ, так как объем рассматриваемых данных достаточно велик. Дополнительно в задаче существует необходимость  выполнения некоторых преобразований изображения для дальнейшего использования в системе ААПСИ.

Задача включает в себя следующие подзадачи:

	построение фильтра для исследования изображения;

	вычисление центра масс для каждого пиксела изображения;

	вычисление кривизны структурных элементов;

Каждая задача описывается отдельным алгоритмом.

Входная информация

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

Формат входного файла приведен в приложении 3. 

Выходная информация

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

 Формат выходного файла описан в приложении 3. 



Математическая постановка задачи

Математическое описание построения кольцевого фильтра

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

Алгоритм вычисления точек кольцевого фильтра основан на соотношении сторон прямоугольного треугольника.





Ox

Oy

x

y

r

R

P













Рис. 2.1



Исходя из рисунка, точка P(x,y) – является точкой фильтра, если выполняется следующее условие:

 					(2.1)	



Математическое описание  вычисления центра масс

Под “массой пиксела” в данной работе понимается  значение цвета пиксела/9/. Для вычисления центра масс относительно текущей точки,  необходимо вычислить сумму “масс” пикселей попавших в фильтр, центр которого находится в текущей точке.



 ,                                                       (2.2)



где N – количество пикселов в фильтре, 

       p(i, j) – “вес” пиксела.

Рассчитываются вес пикселей по оси Ox:



 ,                                                    (2.3)



и вес по оси Oy:



 ,                                             (2.4)



Смещение по оси Оx  к центру “тяжести” пикселей,  относительно текущей точки: 



 ,                                                      (2.5)



Смещение по оси Оy  к центру “тяжести” пикселей,  относительно текущей точки: 



,                                                       (2.6)



Координаты центра тяжести P(i, j):

    ,                                                     (2.7)



    ,                                                     (2.8)



где  u,v – координаты центра фильтра.

Математическое описание алгоритма вычисления кривизны

Кривизна вычисляется для точки, принадлежащей линии. Поэтому необходимое условие выполнения алгоритма – совпадение центра фильтра и точки на линии. Геометрическое расположение фильтра и линии показано на рис. 2.2



Вычисление кривизны



P1

R

l

r

h

h

R



R

r

h

h

R



R

r

h

h

R



Cf

M

P2

O



Cf – центр фильтра; P1,P2 – точки линии, попавшие в фильтр; 

r – радиус фильтра; h – смещение центра масс от центра фильтра; 

l - расстояние от центра масс до точки пересечения линии рисунка и фильтра; M – центр масс; О – центр окружности на изображении; 

R – радиус окружности на изображении;

Рис.2.2



Рассмотрим треугольник ΔСfMP2 .Из соотношения гипотенузы и катетов в прямоугольных треугольниках, следует:

                                                                                              (2.9)



Из прямоугольного треугольника ΔOMP2  следует:



                                                                                    (2.10)



Из (2.9) выразим l2 , получим:



                                                                                              (2.11)



Подставив в (2.10), получим:



                                                                            (2.12)



Раскроем  скобки:



                                                                                 (2.13)



Для получения h, сделаем несколько преобразований:



                                              ,                                                   (2.14)



                                               ,                                                     (2.15)



                                                ,                                                    (2.16)



Нормируем h по r : 



                                                                                             (2.17) 



Дифференцируем (2.17) по r /10/ :



                                                                                          (2.18)



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

Окружность. При обработке фильтрами различных радиусов (рис 2.3), кривизна остается постоянной (рис.2.4), т.к.  радиус окружности – величина постоянная. 




Окружность





a) обработка фильтром большого  радиуса;

б) обработка фильтром маленького  радиуса;

Рис.2.3

График зависимости кривизны от радиуса фильтра для окружности





Радиус фильтра

Кривизна

Рис.2.4



Кривая. При обработке фильтрами различных радиусов (рис 2.5), кривизна постоянно меняется (рис.2.6), т.к.  изменяется радиус окружности, которую можно вписать между центром фильтра и точками линии, попавшими в фильтр. 

Угол. При обработке фильтрами различных радиусов (рис 2.7), кривизна меняется пропорционально изменению радиуса фильтра (рис.2.8), т.к. пропорционально изменяется радиус окружности, которую можно вписать между центром фильтра и точками линии, попавшими в фильтр. 



Кривая





a) обработка фильтром большого  радиуса;

б) обработка фильтром маленького  радиуса;

Рис.2.5

График зависимости кривизны от радиуса фильтра для кривой



Радиус фильтра

Кривизна













Рис.2.6



Угол





a) обработка фильтром большого  радиуса;

б) обработка фильтром маленького  радиуса;

Рис.2.7





Радиус фильтра

КривизнаГрафик зависимости кривизны от радиуса фильтра для угла













Рис.2.8

Описание алгоритма построения кольцевого фильтра



Назначение и характеристика алгоритма

Алгоритм описывает метод вычисления координат кольцевого фильтра. Математическое описание  алгоритма приведено в подразделе 2.1.4.



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

В алгоритме используются значения внешнего и внутреннего радиуса кольца.



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

В результате реализации алгоритма формируется массив координат точек кольцевого фильтра. При этом центр координат совпадает с центром фильтра.



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

i=-MASK_SIZE;

j=MASK_SIZE;

s=sqrt(i*i+j*j);

Если ((s<=outsideR)&&(s>=insideR)), то к.п.5, иначе переход к п.7

FltArr[FltArr_index].x=i;

FltArr[FltArr_index++].y=j;

j--;

Если j>=-MASK_SIZE, то переход к п.3

i++;

Если i<=MASK_SIZE, то переход к п.2

Конец


Список условных обозначений

Условные обозначения, используемые в описании алгоритма, приведены в табл. 2.1.



Таблица 2.1

Список условных обозначений

Обозначение

Расшифровка

MASK_SIZE

Радиус максимального фильтра в пикселях

i, j

Координаты текущего пиксела 

FltArr

Массив координат

FltArr_index

Индекс текущего элемента в массиве FltArr

s

Расстояние от центра фильтра до текущего пиксела



Описание алгоритма вычисления центра масс



Назначение и характеристика алгоритма

Алгоритм описывает процесс вычисления центра масс относительно центра фильтра. Математическое описание  алгоритма приведено в подразделе 2.1.4. В результате решения алгоритма вычисляются координаты центра масс.  



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

	M=0,Wx=0,Wy=0;

	Cx=0,Cy=0; k=0;

	Если (k>=FltArr_index), то переход  к п.8

	M=M+ImArr[CF.x+FltArr[k].x][CF.y+FltArr[k].y:

	Wx=Wx+

              +(CF.x+FltArr[k].x)*ImArr[CF.x+FltArr[k].x][CF.y+FltArr[k].y]; 

	Wy=Wy+

              +(CF.y+FltArr[k].y)*ImArr[CF.x+FltArr[k].x][CF.y+FltArr[k].y];

	k++; переход к п.3

	M=M/255;

	Wx=Wx/255;

	Wy=Wy/255;

	 Если (M==0), то переход к п.14

	Cx=Wx/M;

	 Cy=Wy/M;

	 Конец 



Список условных обозначений

Условные обозначения, используемые в описании алгоритма, приведены в табл. 2.2.



Таблица 2.2

Список условных обозначений

Обозначение

Расшифровка

M

Общая масса пикселей попавших в фильтр

Wx, Wy

Вес пикселей по осям Ox и Oy соответственно.

FltArr_index

Количество точек фильтра

k

Порядковый номер точки фильтра

FltArr

Массив координат точек фильтра

ImArr

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

CF

Точка, относительно которой вычисляется центр масс

Cx, Cy

Координаты центра масс



Описание алгоритма вычисления кривизны



Назначение и характеристика алгоритма

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


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

		Если (CF.mass==0), то к п.2, иначе переход к п.3

		 С= 140; переход к п.6  

		 P=CentrMass(CF);

		 h=sqrt( (P.x-CF.x)^2 + (P.y-CF.y)^2 );

		 C=(h / insideR^2+0.005)*100;

		 Конец;



Список условных обозначений

Условные обозначения, используемые в описании алгоритма, приведены в табл. 2.3.



Таблица 2.3

Список условных обозначений



Обозначение

Расшифровка

CF

Центр фильтра ( поле mass – масса пиксела, x,y – соответственно, координаты)

С

Кривизна

CentrMass

Функция, вычисляющая центр масс

P

Центр масс

h

Смещение центра масс от центра фильтра

insideR

Внутренний радиус кольца

sqrt

Функция, вычисляющая корень квадратный

^

Операция возведения в степень

Описание алгоритма обработки изображения



Назначение и характеристика алгоритма

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


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

		Name = FormNewFileName(OpenDialog1->FileName);

		outIm=fopen(Name,"wb");

		fwrite(&Width,sizeof(Width),1, outIm);

		fwrite(&Height,sizeof(Height),1, outIm);

		RingFiltrPoint(insideR,outsideR);

		i=outsideR;

		j=outsideR;

		CrArr[i][j]=CentroidRelax(i,j,insideR,outsideR);

		j++;

		 Если j<Height-outsideR, то переход  к п. 8

		 i++;

		 Если i< Width-outsideR, то переход  к п. 7

		  i=0;

		  j=0;

		  fwrite(&CrArr[i][j],sizeof(CrArr[i][j]),1, outIm);

		 j++;

		 Если j<Height, то переход  к п. 15

		 i++;

		 Если i<Width, то переход  к п. 14

		 fclose(outIm);

		 Конец;




Список условных обозначений

Условные обозначения, используемые в описании алгоритма, приведены в табл. 2.4.



Таблица 2.4

Список условных обозначений

Обозначение

Расшифровка

outIm

Выходной файловый поток

Name

Имя выходного файла

FormNewFileName

Функция, формирующая новое имя выходного файла

OpenDialog1->

FileName

Имя файла, открытого с помощью диалога “Открыть”

fopen

Функция открытия файла

outsideR

Внешний радиус кольца

insideR

Внутренний радиус кольца

RingFiltrPoint

Функция вычисления точек фильтра

Обозначение

Расшифровка

CrArr

Массив кривизны линий

CentroidRelax

Функция вычисления кривизны

fwrite

Функция записи в файл

sizeof

Функция вычисления размера переменной

fclose

Функция закрытия файла



Описание программы «Центроидная релаксация» 



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

Программа «Центроидная релаксация» применяется для автоматизации процесса структурного анализа графического изображения. При этом программа использует человеко-машинный интерфейс: человек выбирает, чем оперировать и параметры обработки данных, а программа выполняет все необходимые расчеты. 

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

Программа имеет обозначение Relax, разработана в среде программирования Borland C++ Builder 6.0.



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

Программа выполняет анализ структурного описания изображения, полученного в результате центроидной фильтрации. Программа использует алгоритмы, описанные в подразделах 2.2-2.5.

Для функционирования программы необходим следующий комплекс технических средств:

			процессор Intel Pentium 900 MHz;

			подсистема «Центроидная релаксация» занимает около 15 Мб оперативной памяти. Оболочка системы ААПСИ занимает около 5 Мб оперативной памяти. Дополнительно к этому и оболочка и программа выделяют память под рабочее изображение. Таким образом, оболочка использует дополнительную память, соответствующую размерам изображения, а программа использует память, соответствующую двум размерам изображения;

			для размещения ОС Windows XP и прикладных задач на жестком диске необходимо минимально 1,5 Гб свободного пространства. Система ААПСИ занимает около 10 Мб на жестком диске. Программа занимает около 1 Мб на жестком диске. Дополнительное место на диске занимают файлы изображений используемых программой, а также файлы создаваемые программой. С учетом этого на диске необходимо выделить достаточное пространство для всех файлов (от 100 Мб и выше);

			видеоподсистема с объемом памяти 32 Мб;

			цветной SVGA монитор с диагональю не менее 15’’ и разрешением не ниже 800x600 (рекомендуется 1024x768);

			русифицированная клавиатура;

			манипулятор «мышь».

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



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

Вся входная и выходная информация, используемая и создаваемая программой, находится в каталоге проекта системы ААПСИ. Структура файлов   описана в подразделах 2.1.2 и 2.1.3. Программа использует входные данные из этих файлов, обозначенные следующими идентификаторами:

			Width –  ширина исходного изображения;

			Height –  ширина исходного изображения;

			ImArr – исходное изображение подготовленное для дальнейшей обработки;

	Программа создает выходные данные, обозначенные следующими идентификаторами:

			СrArr – матрица кривизны структурных элементов изображения;



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

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

			RingFiltrPoint – вычисление точек кольцевого фильтра;

			CenrMass – определение центра масс;

			CentroidRelax – расчет кривизны структурного элемента;

			Imaging – обработка входного изображения;

			OpenFLD – открытие и подготовка файла описания изображения, полученного после центроидной фильтрации, к работе.



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

Описание логики программы «Центроидная релаксация» приведено на рис. 2.9.


Логика программы «Центроидная релаксация»



Рис. 2.9

Описание контрольного примера



Назначение

Контрольный пример предназначен для проверки корректности работы подсистемы «Центроидная релаксация».



Исходные данные

В качестве исходных данных использовался файл изображения, приведенный на рис. П.2.7. 



Результаты расчета

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



Результаты испытания

В результате обработки данных контрольного примера получены изображения, представленные на рис. П.2.8 – П.2.26. Результаты полностью соответствуют ожиданиям. Программа справляется с решением задачи «Центроидной релаксации».

ОРГАНИЗАЦИОННО-ЭКОНОМИЧЕСКАЯ ЧАСТЬ

	

			Обоснование необходимости разработки подсистемы центроидной релаксации



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

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

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

– уменьшение занимаемого объема памяти машины.

Таким образом, разработка системы позволит, помимо выполнения основной задачи, сэкономить на объеме устройств хранения информации и снизить нагрузку  и требования по скорости передачи к каналам связи.



			Планирование разработки



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

Расчет трудоемкости разработки задачи приведен в табл.3.1.



Таблица 3.1 

Расчет трудоемкости разработки задачи

Наименование этапа разработки

Исполнители

Трудоемкость работ, чел-ч



Должность

Кол-во



			Изучение постановки задачи и методов решения

инженер-программист

  1

84

			Разработка алгоритмов

	инженер-программист

	1

	       168

			Реализация и отладка алгоритмов

инженер-программист

   1

168

			Документирование системы

инженер-программист

  1

84

ИТОГО



  1

504

	

			Расчет расходов на создание системы



Для определения величины расходов на создание системы, используем метод прямого счета. Расчет расходов осуществляется по следующим статьям:

			расходы на материалы;

			расходы на оплату труда исполнителей;

			социальные налоги;

			расходы на содержание ВТ;

			накладные расходы;

			прочие расходы.



В статью “Расходы на материалы” включают стоимость основных и вспомогательных материалов, покупных изделий, а также затраты энергии и запчастей необходимых для создания системы. Расходы по статье приведены  в табл. 3.2.


   Таблица 3.2

Расходы на материалы

Наименование материала

Количество

Цена ед, руб

Расходы

Бумага писчая

1 пачка (500л)

100.00

100.00

Диск перезаписываемый CD-RW

1 шт.

40.00

40.00

Картридж для принтера Canon BJC-1000

1 шт.

150.00

150.00

Прочие канцелярские товары





50.00

ИТОГО





340.00



Расчет расходов по оплате труда исполнителей.

Оклад инженера-программиста на период разработки (Пм=3 месяца) составляет в среднем ЗПм=4500.00 рублей в месяц. Тогда расходы на оплату труда:

			Роттариф=ЗПм*Пм	(3.1)

Роттариф=4500.00*3 =13500.00 руб.

С учетом уральского коэффициента (15%) общие расходы на оплату труда исполнителей составят:



			Рот=Зп+Кур	(3.2)

		

Кур=13500.00*0.15= 2025.00 руб.



Рот=13500.00+2025.00 = 15525.00 руб.



Отчисления в фонды резерва отпусков (10%) от расходов на оплату труда исполнителей:



			РРезО=Рот*0.1	(3.3)

		

РРезО=15525.00 *0.1=1552.50 руб.



Статья “Социальные налоги” составляет 26,2 % от оплаты труда и предназначена для перечисления во внебюджетные государственные фонды:

			пенсионный (20%);

			обязательного медицинского страхования (3,1%);

			социального страхования (2,9%);

			обязательное страхование от несчастных случаев (0,2%).

Сумма по статье составляет:



			Рсоц нал=(Рот+РРезО)*26.2/100	(3.4)

		

Рсоц нал=(15525.00 +1552.50)*26.2/100=4474.31 руб.



Статья “Расходы на содержание ВТ” включает расходы, связанные с арендой ВТ и обслуживанием ВТ. Эти расходы включают в себя амортизационные отчисления, процент за аренду (комиссионные), затраты на запчасти, стоимость электроэнергии (если они не включены в материальные расходы), а также другие расходы, связанные с содержанием ВТ.

Стоимость одного машинного часа рассчитывается по формуле:



			Ач = Сисп / (Чм * Кч),	(3.5)

		

где     Ач  - аренда за час использования;

Сисп	- общая стоимость использования оборудования (рассчитывается по формуле);

Чм	- число месяцев в году;

Кч	- количество рабочих часов в месяце.



			Сисп=Акомп+Апо+ЗПобсл+Сзч+Сэл,	(3.6)

		

где    Акомп – амортизация компьютера и принтера за год эксплуатации;

АПО – амортизация программного обеспечения;

ЗПобсл – расходы обслуживающего персонала за год эксплуатации;

Сзч – стоимость запчастей для компьютера за год эксплуатации;

Сэл – стоимость израсходованной электроэнергии за год эксплуатации.



			Акомп=Скомп/Спи,	(3.7)

		

где    Скомп – стоимость компьютера и принтера;

Спи – срок полезного использования (5 лет).



Акомп=34000/5=6800 руб.



			Апо=Спо/Спи,	(3.8)

		

где    Спо – стоимость программного обеспечения;

Спи – срок полезного использования (5 лет).



Апо=10000/5=2000 руб.



Затраты на потребляемую от сети электроэнергию определяются по формуле:



			Сэл=N*Тэксп*Сэ,	(3.9)

		

где    N – потребляемая мощность, кВт.; (220*(0.24+1.5+4)/√2=0.893 кВт)

Тэксп – продолжительность эксплуатации за год; (1920 ч.)

Cэ – стоимость 1 кВт.-ч. силовой энергии. (1.26 р./кВт)

Сэл=0.893*1920*1.26=2160.35 руб.



Стоимость годового использования составляет:



Сисп=6800+2000+2000+1000+2160.35 =13960.35 руб.



Соответственно аренда за час использования:



Ач=13960.35/(12*160)=7.27 руб.



ВТ использовалась на всех этапах разработки системы (см. табл. 3.1) Общее время эксплуатации ВТ составила Тисп=504 часа. Следовательно, сумма расходов на ВТ, т.е. на аренду составляет:



			Рвт=А=Тисп*Ач	(3.10)

		

Рвт=504*7.27 =3664.08 руб.



Статья  “Накладные расходы” включает в себя затраты, связанные с содержанием управленческого персонала, на предприятии составляет до 130% основной заработной платы:



			Нр=Рот*1.30	(3.11)

		

Нр=15525.00*1.30=20182.5 руб.



Статья “Прочие расходы” включает в себя расходы, неучтенные в предыдущих статьях (до 10% от основной заработной платы):



			Пр=Рот*0.10	(3.12)

Пр=15525.00*0.10=1552.5 руб.



Табл. 3.3 отражает затраты по статьям и долю этих затрат в общей сумме. Долевое соотношение затрат представлено на рисунке 3.1



Таблица 3.3

Смета затрат на разработку системы

Статьи затрат

Сумма затрат, руб.

Расходы на материалы

340

Расходы на оплату труда исполнителей

17080

Социальные налоги

4470

Расходы на содержание ВТ

3660

Накладные расходы

20190

Прочие расходы

1550

Итого

47290

	

Рис. 3.1

Структура затрат на разработку

Рис. 3.1

БЕЗОПАСНОСТЬ И ЭКОЛОГИЧНОСТЬ ПРОЕКТА



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

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

В данном разделе дипломного проекта освещаются основные вопросы техники безопасности и экологии труда. 



			Анализ вредных и опасных производственных факторов



Постоянное напряжение глаз

Работа с компьютером характеризуется высокой напряженностью зрительной работы. Постоянное напряжение глаз может привести к снижению остроты зрения. Экран видеомонитора должен находиться от глаз пользователя на оптимальном расстоянии 600…700 мм, но не ближе 500 мм с учетом размеров алфавитно-цифровых знаков и символов. Также для снижения утомляемости рекомендуется делать 15-минутные перерывы в работе за компьютером в течение каждого часа.

Влияние электростатических и электромагнитных полей

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

Допустимые значения параметров неионизирующих электромагнитных излучений от монитора компьютера представлены в табл. 4.1. 

Максимальный уровень рентгеновского излучения на рабочем месте оператора компьютера обычно не превышает 10 мкбэр/ч, а интенсивность ультрафиолетового и инфракрасного излучений от экрана монитора лежит в пределах 10…100 мВт/м2 /18/.



Таблица 4.1 

Допустимые значения параметров неионизирующих электромагнитных излучений (в соответствии с СанПиН 2.2.2.542-96)

Наименование параметра

Допустимые значения

Напряженность электрической составляющей электромагнитного

поля на расстоянии 50см от поверхности видеомонитора

10В/м

Напряженность магнитной составляющей электромагнитного

поля на расстоянии 50см от поверхности видеомонитора

0,3А/м

Напряженность электростатического поля не должна превышать:

для взрослых пользователей

для детей дошкольных учреждений и учащихся

средних специальных и высших учебных заведений





20кВ/м

15кВ/м



Для снижения воздействия этих видов излучения рекомендуется применять мониторы с пониженным уровнем излучения (MPR-II, TCO-92, TCO-99), устанавливать защитные экраны, а также соблюдать регламентированные режимы труда и отдыха.

	Длительное неизменное положение тела

Работа с компьютером характеризуется значительным умственным напряжением и нервно-эмоциональной нагрузкой операторов, высокой напряженностью зрительной работы и достаточно большой нагрузкой на мышцы рук при работе с клавиатурой ЭВМ. Большое значение имеет рациональная конструкция и расположение элементов рабочего места, что важно для поддержания оптимальной рабочей позы человека-оператора.

Шум

Шум ухудшает условия труда оказывая вредное действие на организм человека. Работающие в условиях длительного шумового воздействия испытывают раздражительность, головные боли, головокружение, снижение памяти, повышенную утомляемость, понижение аппетита, боли в ушах и т. д. В табл. 4.2 указаны предельные уровни звука в зависимости от категории тяжести и напряженности труда, являющиеся безопасными в отношении сохранения здоровья и работоспособности/21/.



Таблица 4.2 

Предельные уровни звука, дБ, на рабочих местах

Категория

напряженности труда

Категория тяжести труда



I. Легкая

II. Средняя

III. Тяжелая

IV. Очень тяжелая

I. Мало напряженный

80

80

75

75

II. Умеренно напряженный

70

70

65

65

III. Напряженный

60

60

-

-

IV. Очень напряженный

50

50

-

-



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



			Техника безопасности при работе с компьютером



Принцип защиты расстоянием

Основную опасность при работе с компьютером представляет электромагнитное излучение. Наиболее сильно оно проявляется в зоне до 30 см от экрана, а также от задней и боковых поверхностей. Поэтому монитор необходимо располагать так, чтобы глаза находились на расстоянии не ближе 60-70 см от экрана. Между боковыми поверхностями соседних компьютеров должно быть не менее 1,2м. При расположении рядами: между тыльными сторонами компьютеров должно быть не менее 2м. Рекомендуется располагать компьютеры вдоль стены.

Принцип защиты временем

По санитарным правилам и нормам СанПиН 2.2.2.542-96 «Гигиенические требования к видеодисплейным терминалам, персональным электронным вычислительным машинам и организации работы» /18/ виды трудовой деятельности подразделяются на три группы:

	группа А - работа по считыванию информации с экрана;

	группа Б - работа по вводу информации;

	группа В - творческая работа в режиме диалога с ЭВМ.

Деятельность разработчика программного обеспечения относится к группе В. При выполнении работ, относящихся к разным видам трудовой деятельности, за основную работу с ЭВМ принимают такую, которая занимает не менее 50% времени в течение рабочей смены или рабочего дня. 

Для видов трудовой деятельности устанавливаются три категории тяжести и напряженности работ с ЭВМ и видеотерминалом (см. табл. 4.3).

При 8-ми часовой рабочей смене и работе на ПК регламентированные перерывы следует устанавливать:

			для I-ой категории работ через 2 часа от начала рабочей смены и через 2 часа после обеденного перерыва продолжительностью 15 минут каждый;

			для II-ой категории работ через 2 часа от начала рабочей смены и через 1,5 - 2 часа после обеденного перерыва продолжительностью 15 минут каждый или 10 минут через каждый час работы;




Таблица 4.3

Категории тяжести и напряженности работ

Категория работы с ПК

Уровень нагрузки за рабочую смену при работе с ПК (max)

Суммарное время регламентированных перерывов, мин.



Группа А, 

кол-во знаков

Группа Б, 

кол-во знаков

Группа В,

кол-во часов

При 8-ми часовой смене

При 12-ти часовой смене

I

20 000

15 000

2

30

70

II

40 000

30 000

4

50

90

III

60 000

40 000

6

70

120



			для III-ой категории работ через 1,5 - 2 часа от начала рабочей смены и через 1,5 - 2 часа после обеденного перерыва продолжительностью 20 минут каждый или 15 минут через каждый час работы.

При 12-ти часовой смене и работе на ПК регламентированные перерывы следует устанавливать: в первые 8 часов работы аналогично перерывам при 8-ми часовом рабочей смене, а в течении последующих 4-х часов работы не зависимо от категории и вида работ 15 минут через каждый час.



			Электробезопасность при работе с компьютером



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

Любое воздействие тока может привести к электрической травме, то есть к повреждению организма, вызванному действием электрического тока или электрической дуги /19/.

При рассмотрении вопроса обеспечения электробезопасности разработчика необходимо выделить три основных фактора:

			электроустановки рабочего места программиста;

			вспомогательное электрооборудование;

			окружающая среда помещения.

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

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

Помещения, оборудованные вычислительной техникой, как правило, относятся к категории помещений без повышенной опасности так как:

			относительная влажность воздуха не превышает 75%;

			нет токопроводящей пыли;

			температура не превышает длительное время 30 °С;

			отсутствует возможность одновременного прикосновения человека с имеющими соединение с землей металлическими конструкциями;

			отсутствие  доступа  к токоведущим частям оборудования;

			нет токопроводящих полов.

Таким образом, для предотвращения электротравматизма пользователя, необходимо соблюдать требования безопасности, как при работе с обычной бытовой техникой.



			
Требования к освещению рабочего места и его расчет

	

Требования к освещению рабочего места

К современному освещению помещений, где работают с вычислительной техникой, предъявляют высокие требования как гигиенического, так и технического характера. Правильно спроектированное и выполненное освещение обеспечивает высокий уровень работоспособности, оказывает положительное психологическое воздействие, способствует повышению производительности труда. Условия деятельности пользователя в системе "человек-машина" связаны с явным преобладанием зрительной информации - до 90% общего объема.

В помещениях с компьютерной техникой применяется совмещенная система освещения/17/. К таким системам предъявляют следующие требования:

			соответствие уровня освещенности рабочих мест характеру выполняемых зрительных работ;

			достаточно равномерное распределение яркости на рабочих поверхностях и в окружающем пространстве;

			отсутствие резких теней, прямой и отраженной блеклости;

			постоянство освещенности во времени;

			оптимальная направленность излучаемого осветительными приборами светового потока;

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

Для искусственного освещения помещений с вычислительной техникой следует использовать главным образом люминесцентные лампы, у которых высокая световая отдача (до 75 лм/Вт и более); продолжительный срок службы (до 10 000 ч), малая яркость светящейся поверхности, близкий к естественному спектр излучения, что обеспечивает хорошую цветопередачу. Наиболее приемлемыми являются люминесцентные лампы белого света и тепло-белого света мощностью 20, 40, 80 Вт.

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

Рекомендуемая освещенность для работы с экраном дисплея составляет 150 лк, а при работе с экраном в сочетании с работой над документами - 300 лк. Рекомендуемая яркость в поле зрения программиста должна лежать в пределах 1:5-1:10.



Расчет освещенности рабочего места

Расчет освещенности рабочего места сводится к выбору системы освещения, определению необходимого числа светильников, их типа и размещения. Процесс работы программиста в таких условиях, когда естественное освещение недостаточно или отсутствует. Исходя из этого, рассчитаем параметры искусственного освещения. 

Расчет освещения производится для комнаты площадью 42 м2: длина – 7 м, ширина - 6 м, высота - 3 м. Равномерное освещение горизонтальной рабочей поверхности достигается при определенных отношениях расстояния между центрами светильников L, м (L=1,75*Н) к высоте их подвеса над рабочей поверхностью Н, м (в расчетах Н=Н).



     L = 1,75*Н = 1,75*3 = 5,25 м.



Число светильников с люминесцентными лампами (ЛЛ)

	
,                                                    (4.1.)

	

где    S – площадь помещения, м; 

         М – расстояние между параллельными рядами, м.



М0,6 Н 

М0,6*3=1,8 принимаем М=2;

	;

	

		Для достижения равномерной горизонтальной освещенности светильники с ЛЛ рекомендуется располагать сплошными рядами, параллельно стенам с окнами или длинным сторонам помещения. 

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

Для определения количества светильников определим световой поток, падающий на поверхность по формуле: 



                                                        ,                                                  (4.2)



где Fp - рассчитываемый световой поток, Лм; 

      Еn - нормированная минимальная освещенность, Лк (определяется по таблице). Работу программиста, в соответствии с этой таблицей, можно отнести к разряду точных работ, следовательно, минимальная освещенность будет Е = 300 Лк при газоразрядных лампах; 

S - площадь освещаемого помещения ( в нашем случае S = 42 м2 );

Z - отношение средней освещенности к минимальной (обычно принимается равным 1.1-1.2 , пусть Z = 1.1); 

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

η - коэффициент использования, (выражается отношением светового потока, падающего на расчетную поверхность, к суммарному потоку всех ламп и исчисляется в долях единицы; зависит от характеристик светильника, размеров помещения, окраски стен и потолка, характеризуемых коэффициентами отражения от стен (Рс) и потолка (Рп)), значение коэффициентов Рс и Рп определим по таблице зависимостей коэффициентов отражения от характера поверхности: Рс=30%, Рп=50%. Значение η определим по таблице коэффициентов использования различных светильников. Для этого вычислим индекс помещения по формуле: 



  ,	                              		(4.3)



где  S - площадь помещения, S = 42 м2; 

h - расчетная высота подвеса, h = 3 м; 

A - ширина помещения, А = 6 м; 

В - длина помещения, В =7 м. 

Подставив значения получим:



	                             		



Зная индекс помещения I, Рс и Рп, по таблице находим η = 0.3 

Подставим все значения в формулу для определения светового потока F: 


 Лм              	



Учитывая, что в светильнике по 4 лампы, световой поток одной лампы будет равен  .  Для освещения выбираем люминесцентные лампы типа ЛБ20, световой поток которых  Fл = 1180 Лм. 

Рассчитываем потребляемую мощность осветительной установки в соответствии с формулой:

	,                                                    (4.4.)



где  р – мощность лампы, Вт; 

       N – число светильников, шт. N=4; 

       n – число ламп в светильнике; для ЛЛ  n=4.



P=20*4*4=320 Вт=0,32 кВт.



Рассчитаем действительное освещение.

В рабочем  помещении имеется 4 светильников, в каждом из которых используется по 4 лампы ЛДЦ20. Рассчитаем световой поток:



Ф= 820*4*4 = 3280 лк;



Рассчитаем значение нормированной освещенности:



Е  = (Ф*N*η)/(S*Z*K) = 227 лк ≤ 300 лк.



Полученное значение нормированной освещенности оказалось меньше нормированной минимальной освещенности. Рекомендуется заменить используемые лампы, на  лампы с большим световым потоком. 

			
Параметры микроклимата, загрязнение воздуха рабочей 

	зоны вредными веществами



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

Температура воздуха является одним из основных параметров, характеризующих тепловое состояние микроклимата. Суммарное тепловыделение в помещении поступает от следующих источников:

			ЭВМ;

			вспомогательного оборудования;

			приборов освещения;

			людей;

			внешних источников. 

Наибольшее количество теплоты выделяют ЭВМ и вспомогательное оборудование. Средняя величина тепловыделения от компьютеров колеблется до 100 Вт/м2 . Тепловыделения от приборов освещения также велики. Удельная величина их составляет 35 Вт/м2. При этом, чем больше уровень освещенности, тем выше удельные величины тепловыделений. Количество теплоты от обслуживающего персонала незначительно. Оно зависит от числа работающих в помещении, интенсивности работы, выполняемой человеком. 

К внешним источникам поступления теплоты относят теплоту, поступающую через окна от солнечной радиации, приток теплоты через непрозрачные ограждения конструкций. Интенсивность этих источников зависит от расположения здания, ориентации по частям света, цветовой гаммы и прочее/15/.

С целью создания нормальных условий труда программиста установлены оптимальные и допустимые значения всех параметров микроклимата (см табл. 4.4.).

Таблица 4.4

Параметры микроклимата производственных помещений

Параметры

Значения параметров



оптимальные

допустимые

Температура

20-22 °С

17-22 °С

Относительная влажность

40-60 %

до 75%

Скорость движения воздуха

0,1 м/с

не более 0,3 м/с



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

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



			Пожаробезопасность при работе с компьютером



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

Пожары в помещении, в котором находится ЭВМ, представляют особую опасность, так как сопряжены с большими материальными потерями. Площадь помещения, в котором ведется проектирование, невелика и составляет 8 м2. Как известно пожар может возникнуть при взаимодействии горючих веществ, окисления и источников зажигания. В помещении присутствуют все три основные фактора, необходимые для возникновения пожара. Горючими компонентами являются: строительные материалы для акустической и эстетической отделки помещений, двери, полы, бумага, изоляция кабелей и др. 

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

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

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

Одной из наиболее важных задач пожарной защиты является защита строительных помещений от разрушений и обеспечение их достаточной прочности в условиях воздействия высоких температур при пожаре. Учитывая высокую стоимость электронного оборудования, а также категорию его пожарной опасности, здания, в которых предусмотрено размещение ЭВМ, должны быть 1 и 2 степени огнестойкости. 

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

В соответствии с “Типовыми правилами пожарной безопасности для промышленных предприятий” залы ЭВМ, помещения для внешних запоминающих устройств, подготовки данных, сервисной аппаратуры, архивов, копировально-множительного оборудования и т.п. необходимо оборудовать дымовыми пожарными извещателями. Так как в этих помещениях при возгорании различных пластмассовых, изоляционных материалов и бумажных изделий выделяется значительное количество дыма и мало теплоты. 

Помещение, в котором производится разработка данного проекта, необходимо оборудовать средствами оповещения о пожаре, а также средствами для тушения пожара.

Электрические установки представляют для человека большую потенциальную опасность, так как в процессе эксплуатации или проведении профилактических работ человек может коснуться частей, находящихся под напряжением. Специфическая опасность электроустановок: токоведущие проводники, корпуса стоек ЭВМ и прочего оборудования, оказавшегося под напряжением в результате повреждения (пробоя) изоляции, не подают каких-либо сигналов, которые предупреждают человека об опасности. Реакция человека на электрический ток возникает лишь при протекании последнего через тело человека. Разрядные токи статического электричества чаще всего возникают при прикосновении к любому из элементов ЭВМ. Такие разряды опасности для человека не представляют, но кроме неприятных ощущений они могут привести к выходу из строя ЭВМ. Для снижения величины возникающих зарядов статического электричества покрытие технологических полов следует выполнить из однослойного поливинилхлоридного антистатического линолеума.

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

ЗАКЛЮЧЕНИЕ



 В ходе дипломной работы было разработано ПО, позволяющее решать задачу вычисления геометрических характеристик структурных элементов изображения. Программа была написана на языке C++ в среде разработки Borland C++ Builder 6.0.

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

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



СПИСОК ЛИТЕРАТУРЫ

	

	Прэтт У. Цифровая обработка изображений. Т. 1. - М.: Мир, 1982. – 312 с.

	Дуда Р., Харт П. Распознавание образов и анализ сцен. - М.: Мир, 1976. – 511 с.

	Павлидис Т. Алгоритмы машинной графики и обработки изображений. - М.: Радио и связь, 1986.

	Ту Дж., Гонсалес Р. Принципы распознавания образов. - М.: Мир, 1976.

	Розенфельд А. Распознавание и обработка изображений с помощью ЭВМ. - М.: Мир, 1972.

	Хуанг Г.С. Быстрые алгоритмы цифровой обработки изображений. – М.: Радио и связь, 1984.

	Лялин В.Е., Мурынов А.И., Шибаева И.В. Модели представления и кодирования пространственных объектов для передачи изображений сцен по цифровым каналам связи // Информационные технологии в науке, образовании, телекоммуникациях и бизнесе: Материалы 31 Междунар. конф. – Украина, Крым, Ялта–Гурзуф: Ж. «Успехи современного естествознания», №5, 2004, Прилож. №1. - С. 123-125.

	Шибаева И.В., Мурынов А.И. Применение кластерного анализа для обработки и анализа графических изображений // Проблемы техники и технологии телекоммуникаций: Материалы Пятой Междунар. научн.-техн. конф.- Самара: Изд-во ПГАТИ, 2004.- С. 50-54.

	Шибаева И.В., Мурынов А.И., Пивоваров И.В. Математические и программные средства распознавания графических изображений для передачи по цифровым каналам связи // Информационные технологии в науке, образовании, телекоммуникациях и бизнесе: Материалы 31 Междунар. конф. – Украина, Крым, Ялта–Гурзуф: Ж. «Успехи современного естествознания» №5, 2004, Прилож. №1. - С. 114-117.

	 Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. - М.: Наука, 1979. – 720с.

	П.Бойер, Д.Флостер. Использование Adobe Photoshop 7. Специальное издание. – М.: Вильямс, 2004.

	Мельниченко В.В., Легейда А.В. Corel Draw Graphic 12. Практическое руководство. – М.: Корона принт, 2004.

	Кажберов В.О. Использование программ Spotlight и RasterDesk в ОАО «Институт Нефтепродуктпроект» // CADMaster. - 2005. - № 1. - С. 32-35.

ГОСТ 12.0.002-80. Система стандартов безопасности труда. Термины и определения. – М.: ИПК Издательство стандартов, 2002

 СанПиН 2.2.4. 548 – 96. Гигиенические требования к микроклимату производственных помещений. – М.: Госкомсанэпиднадзор, 1996.

	 ГОСТ 12.1.006–84. ССБТ. Электромагнитные поля радиочастот. Допустимые уровни на рабочих местах и требования к проведению контроля.

	 СНиП 23-05–95. Естественное и искусственное освещение.

 СанПиН 2.2.2. 542-96. Гигиенические требования к видеодисплейным терминалам, персональным электронно-вычислительным машинам и организации работы. – М.: Госкомсанэпиднадзор, 1996.

 ГОСТ 12.1.038-83. Система стандартов безопасности труда.  Электробезопасность. Термины и определения. – М.: Издательство стандартов, 1983.

 ГОСТ 12.1.004-91. Система стандартов безопасности труда. Пожарная  безопасность. Общие положения. – М.: Издательство стандартов, 1991.

ГОСТ 12.1.003–83. ССБТ. Шум. Общие  требования безопасности (с изменениями по И-1-III-89).

Почерняев С.В., Килин И.В., Сенилов М.А. Методические указания по дипломному  проектированию. – Ижевск: Издательство ИжГТУ, 1994.

ГОСТ 19.701-90 ЕСПД. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения. – М.: Издательство стандартов, 1991

 ГОСТ 19.105-78 ЕСПД. Общие требования  к  программным документам. – М.: Издательство стандартов, 1988

 ГОСТ 19.401-78 ЕСПД. Текст программы. Требования  к содержанию и оформлению. – М.: Издательство стандартов, 1988

 ГОСТ 19.404-79 ЕСПД. Пояснительная записка. Требования к содержанию и оформлению. – М.: Издательство стандартов, 1988

 ГОСТ 19.504-79 ЕСПД. Руководство программиста. Требования  к содержанию и оформлению. – М.: Издательство стандартов, 1988

 ГОСТ 19.505-79 ЕСПД. Руководство оператора. Требования к содержанию и оформлению. – М.: Издательство стандартов, 1988

ПРИЛОЖЕНИЕ 1



ТЕКСТ ПРОГРАММЫ

П.1.1. Файл «Relax.cpp» 

//---------------------------------------------------------------------------



#include <vcl.h>

#pragma hdrstop

//---------------------------------------------------------------------------

USEFORM("ParamCentroid.cpp", FormParam);

USEFORM("About.cpp", FormAbout);

USEFORM("seria.cpp", FormSeria);

//---------------------------------------------------------------------------

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

{

        try

        {

                 Application->Initialize();

                 Application->CreateForm(__classid(TFormParam), &FormParam);

                 Application->CreateForm(__classid(TFormAbout), &FormAbout);

                 Application->CreateForm(__classid(TFormSeria), &FormSeria);

                 Application->Run();

        }

        catch (Exception &exception)

        {

                 Application->ShowException(&exception);

        }

        catch (...)

        {

                 try

                 {

                         throw Exception("");

                 }

                 catch (Exception &exception)

                 {

                         Application->ShowException(&exception);

                 }

        }

        return 0;

}

//---------------------------------------------------------------------------





П.1.2. Файл «ParamCentriod.cpp»

//---------------------------------------------------------------------------



#include <vcl.h>

#pragma hdrstop

#include "Seria.h"

#include "ParamCentroid.h"

#include "CentroidRelax.h"

#include "About.h"

#include <dir.h>

#include <stdlib.h>

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TFormParam *FormParam;

HDC dc;

//---------------------------------------------------------------------------

__fastcall TFormParam::TFormParam(TComponent* Owner)

        : TForm(Owner)

{

}



//---------------------------------------------------------------------------

//     Открытие входного файла и подготовка его к работе

//---------------------------------------------------------------------------

void __fastcall TFormParam::OpenBtnClick(TObject *Sender)

{

  char buffer[MAXPATH];



  if (OpenDialog1->Execute())

   {

    if (ExtractFileExt(OpenDialog1->FileName)==".bmp")

    {

      OpenBMP();

      RelaxBtn->Enabled=true;

      }

    else

      if (ExtractFileExt(OpenDialog1->FileName)==".fld")

       {

        OpenFLD();

        RelaxBtn->Enabled=true;

        }

       else

        Application->MessageBoxA("Недопустимый тип файла", "Ошибка", MB_OK | MB_ICONEXCLAMATION);

  }

}



//---------------------------------------------------------------------------

//  Обработка нажатия кнопки "О программе..."

//---------------------------------------------------------------------------

void __fastcall TFormParam::AboutBtnClick(TObject *Sender)

{

   FormAbout->Show();

}



//---------------------------------------------------------------------------

//  Обработка нажатия кнопки "Релаксация"

//---------------------------------------------------------------------------

void __fastcall TFormParam::RelaxBtnClick(TObject *Sender)

{

  string Name;

  AnsiString FileSafeName;

  int index;

   if ((insideR && outsideR)&& (insideR <= outsideR))

      {

       for(int i=0;i<=exp;i++)

       {

        // показ имени открытого файла

        FormParam->Caption=ExtractFileName("Обработка изображения....");

        Imaging(insideR,outsideR);

        // BEGIN DEBUG

         dc=bmp->Canvas->Handle;

         BitBlt(dc,0,0,Width,Height,bmp->Canvas->Handle,0,0,SRCCOPY);

         // формирование имени файла

         index=AnsiPos(ExtractFileExt(OpenDialog1->FileName),ExtractFileName(OpenDialog1->FileName));

         Name = ExtractFileName(OpenDialog1->FileName).c_str();

         Name = Name.substr(0,index-1);

         Name = Name.substr(0,4)+"_" ; //вырезать первые 4 символа

         FileSafeName=StrPas(Name.c_str()) + IntToStr(outsideR)+"_"+ IntToStr(insideR)+".bmp";



         bmp->SaveToFile(FileSafeName);

        // END DEBUG

         insideR+=step;

         outsideR+=step;

        } // for

       Application->MessageBoxA("Обработка завершена", "Информация", MB_OK | MB_ICONINFORMATION);

       // показ имени открытого файла

       FormParam->Caption=ExtractFileName(OpenDialog1->FileName);

       }

   else

      Application->MessageBoxA("Внешний и внутренний радиусы заданы неверно", "Ошибка", MB_OK | MB_ICONEXCLAMATION);

}



//---------------------------------------------------------------------------

//  Создание формы

//---------------------------------------------------------------------------

void __fastcall TFormParam::FormCreate(TObject *Sender)

{

   char buffer[MAXPATH];

   RelaxBtn->Enabled=false;

   bmp=new Graphics::TBitmap;

   // получение текущей директории проекта

   OpenDialog1->InitialDir=getcwd(buffer, MAXPATH);

   step=0;

   exp=0;

}



//---------------------------------------------------------------------------

//  Обработка ввода внешнего радиуса

//---------------------------------------------------------------------------

void __fastcall TFormParam::OutsideREditChange(TObject *Sender)

{

   outsideR=StrToIntDef(OutsideREdit->Text,0);

   if (outsideR==0) OutsideREdit->Text='0';

   if (outsideR>=25)

    {

     Application->MessageBoxA("Значение внешнего радиуса должно быть не более 24", "Ошибка", MB_OK | MB_ICONEXCLAMATION);

     OutsideREdit->Text='0';

    }

}



//---------------------------------------------------------------------------

//  Обработка ввода внутреннего радиуса

//---------------------------------------------------------------------------

void __fastcall TFormParam::InsideREditChange(TObject *Sender)

{

  insideR=StrToIntDef(InsideREdit->Text,0);

  if (insideR==0) InsideREdit->Text='0';

  if (insideR>=25)

  {

   Application->MessageBoxA("Значение внутреннего радиуса должно быть не более 24", "Ошибка", MB_OK | MB_ICONEXCLAMATION);

   InsideREdit->Text='0';

   }

}



//---------------------------------------------------------------------------

//  Выделение памяти массиву ImArr

//---------------------------------------------------------------------------

void __fastcall TFormParam::ImArrTakeMemory(  unsigned short int Width, unsigned short int Height)

{

  if (ImArr!=NULL)

  {

   // удаляем предыдущий массив

   for (int i=0;i<=LastWidth;i++)

       delete[] ImArr[i];

   delete[] ImArr;

  }

  LastWidth= Width;

  // выделяем память

  ImArr = new unsigned short int*[Width];

  for (int i=0;i<=Width;i++)

       ImArr[i] = new unsigned short int [Height];

  // обнуление массива

   for (int i=0;i<=Width;i++)

     {

      for (int j=0;j<=Height;j++)

        {

          ImArr[i][j]=0;

         }

      }

}



//---------------------------------------------------------------------------

//  Выделение памяти массиву СкArr

//---------------------------------------------------------------------------

void __fastcall TFormParam::CrArrTakeMemory(unsigned short int Width, unsigned short int Height)

{



  if (CrArr!=NULL)

  {

   // удаляем предыдущий массив

   for (int i=0;i<=LastWidth;i++)

       delete[] CrArr[i];

   delete[] CrArr;

  }

  LastWidth= Width;

  // выделяем память

  CrArr = new unsigned short int*[Width];

  for (int i=0;i<=Width;i++)

       CrArr[i] = new unsigned short int [Height];

   // обнуление массива

  for (int i=0;i<=Width;i++)

    {

     for (int j=0;j<=Height;j++)

       {

         CrArr[i][j]=0;

        }

      }

}



//---------------------------------------------------------------------------

//    Серия

//---------------------------------------------------------------------------

void __fastcall TFormParam::SeriaBtnClick(TObject *Sender)

{

     FormSeria->Show();

}



//---------------------------------------------------------------------------

//  Открытие файла *.bmp

//---------------------------------------------------------------------------

void TFormParam::OpenBMP()

{

    bmp->LoadFromFile( OpenDialog1->FileName);

    Width=bmp->Width;

    Height=bmp->Height;

    ImArrTakeMemory(Width,Height);

    CrArrTakeMemory(Width,Height);

    // Transform coordinate

    for (int i=0;i<=Width;i++)

     {

      for (int j=0;j<=Height;j++)

        {

          ImArr[i][j]=bmp->Canvas->Pixels[i][bmp->Height-j];

         }

      }

    // показ имени открытого файла

    FormParam->Caption=ExtractFileName(OpenDialog1->FileName);

}



//---------------------------------------------------------------------------

// Открытие файла *.fld

//---------------------------------------------------------------------------

void TFormParam::OpenFLD()

{

   FILE *InFile;

   void *data;

   //FFileName = ;

    if((InFile=fopen(OpenDialog1->FileName.c_str(), "rb"))==NULL)

       {

       Application->MessageBoxA("Ошибка открытия файла", "Ошибка", MB_OK | MB_ICONEXCLAMATION);

       }

    else

       {

         fread(&data,sizeof(unsigned short int),1, InFile);

         Width=(unsigned short int)data;//ширина изображения

         fread(&data,sizeof(unsigned short int),1, InFile);

         Height=(unsigned short int)data;// длина изображения

         ImArrTakeMemory(Width,Height);

         CrArrTakeMemory(Width,Height);

         for (int i=0;i<Width;i++)

            {

             for (int j=0;j<Height;j++)

             {

               fread(&data,sizeof(unsigned short int),1, InFile);

               ImArr[i][j]=(unsigned short int)data;

              } // for (j)

            } // for (i)

         // показ имени открытого файла

        FormParam->Caption=ExtractFileName(OpenDialog1->FileName);

        }

}



//---------------------------------------------------------------------------

// Закрытие программы

//---------------------------------------------------------------------------

void __fastcall TFormParam::FormClose(TObject *Sender,

      TCloseAction &Action)

{

    //освобождаем используемую память

  if (Width!=0)

  {

   for (int i=0;i<=Width;i++)

       {

        delete[] ImArr[i];

        delete[] CrArr[i];

        }

   delete[] ImArr;

   delete[] CrArr;

   }

   delete(bmp);

  FormSeria->Close();

}

//---------------------------------------------------------------------------



П.1.3.Файл «ParamCentriod.h»

//---------------------------------------------------------------------------



#ifndef ParamCentroidH

#define ParamCentroidH

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <Buttons.hpp>

#include <Dialogs.hpp>

#include <ExtCtrls.hpp>

//---------------------------------------------------------------------------

class TFormParam : public TForm

{

__published:	// IDE-managed Components

        TGroupBox *GroupRadius;

        TLabel *Label1;

        TEdit *OutsideREdit;

        TLabel *Label2;

        TEdit *InsideREdit;

        TBitBtn *OpenBtn;

        TBitBtn *RelaxBtn;

        TOpenDialog *OpenDialog1;

        TBitBtn *AboutBtn;

        TBitBtn *SeriaBtn;

        void __fastcall OpenBtnClick(TObject *Sender);

        void __fastcall AboutBtnClick(TObject *Sender);

        void __fastcall RelaxBtnClick(TObject *Sender);

        void __fastcall FormCreate(TObject *Sender);

        void __fastcall OutsideREditChange(TObject *Sender);

        void __fastcall InsideREditChange(TObject *Sender);

        void __fastcall SeriaBtnClick(TObject *Sender);

        void __fastcall FormClose(TObject *Sender, TCloseAction &Action);

private:	// User declarations

        int insideR;//внутренний

        int outsideR;//внешний

public:		// User declarations

        // Global variable

         unsigned short int **ImArr; // считанное изображение из файла *.bmp или *.mass

         unsigned short int **CrArr; // массив кривизны

         unsigned short int Width;

         unsigned short int Height;

         unsigned short int LastWidth;

         int step;// шаг

         int exp; // эксперименты

         Graphics::TBitmap *bmp;

        __fastcall TFormParam(TComponent* Owner);

         void __fastcall ImArrTakeMemory( unsigned short int Width,unsigned short int Height);

        void OpenBMP();

        void OpenFLD();

        void __fastcall CrArrTakeMemory(unsigned short int Width, unsigned short int Height); // выделение памяти динамическому массиву

};

//---------------------------------------------------------------------------

extern PACKAGE TFormParam *FormParam;

//---------------------------------------------------------------------------

#endif



П.1.4.Файл «CentriodRelax.cpp»

//---------------------------------------------------------------------------

#pragma hdrstop

#include "ParamCentroid.h"

#include "CentroidRelax.h"

// definitions

#define MASK_SIZE   24

#define PI   3.1415926535897932384626433832795

//---------------------------------------------------------------------------



COORDINATE FltArr[MASK_SIZE*MASK_SIZE]; // массив координат точек фильтра

int FltArr_index;



#pragma package(smart_init)



// Piksels Filter

void ClearFltArr(void);



//---------------------------------------------------------------------------

// Вычисление центра масс

//---------------------------------------------------------------------------

COORDINATE CentrMass(PIXEL CF)

{

  COORDINATE P;

  int M=0,Wx=0,Wy=0;

  int Cx=0,Cy=0;

  // работа с маской

  for (int k=0;k<FltArr_index;k++)

   {

    M+= FormParam->ImArr[CF.x+FltArr[k].x][CF.y+FltArr[k].y]; // масса пикселей в фильтре

    Wx+=(CF.x+FltArr[k].x)*FormParam->ImArr[CF.x+FltArr[k].x][CF.y+FltArr[k].y]; //веса пикселей по x

    Wy+=(CF.y+FltArr[k].y)*FormParam->ImArr[CF.x+FltArr[k].x][CF.y+FltArr[k].y];//веса пикселей по y

   }

   // масса пикселей

   M=M/255;

   // масса пикселей по оси Ox

   Wx=Wx/255;

   // масса пикселей по оси Oy

   Wy=Wy/255;

   if (M!=0)

    {

     Cx=(int)Wx/M + 0.5;

     Cy=Wy/M;

     }

   //центр масс

   P.x=Cx;

   P.y=Cy;

  return P;

}



//--------------------------------------------------------------------------

//   Вычисление кривизны в точке i,j

//--------------------------------------------------------------------------

int CentroidRelax(int i,int j,int insideR,int outsideR)     

{ COORDINATE P;

  double h;

  int C;

  PIXEL CF;

  CF.mass=FormParam->ImArr[i][j];

  if ((CF.mass==0)||(CF.mass==140))

      return 140;  // точка не на линии  - фон цвет серый

  else

    {

      CF.x=i;

      CF.y=j;

      P=CentrMass(CF);//определить координаты центра масс

      // определить длину вектора h

      h=sqrt(pow(P.x-CF.x,2.0)+pow(P.y-CF.y,2.0));

      // вычислить кривизну для текущей точки изображения

      //*100, потому что кривизна находится в промежутке  [0;1)

      C=(h/pow(insideR,2.0)+0.005)*100;

      //C=h/insideR+0.5;

      // сохранить в массив

     }

  return C;

}



//--------------------------------------------------------------------------

//   Вычисление точек фильтра

//--------------------------------------------------------------------------

void  RingFiltrPoint(int insideR,int outsideR)

{

  float s;

  ClearFltArr();

  for(int i=-MASK_SIZE;i<=MASK_SIZE;i++)

  {

    for(int j=MASK_SIZE;j>=-MASK_SIZE;j--)

    {

     s=sqrt(i*i+j*j);

     if ((s<=outsideR)&&(s>=insideR))

       {

        FltArr[FltArr_index].x=i;

        FltArr[FltArr_index++].y=j;

       }

    } //for

  } //for

}



//--------------------------------------------------------------------------

//   Очистка массива точек фильтра

//--------------------------------------------------------------------------

void ClearFltArr(void)

{

 FltArr_index=0;

 for(int i=0;i<=MASK_SIZE*MASK_SIZE;i++)

   {

     FltArr[i].x=0;

     FltArr[i].y=0;

   }

}



//--------------------------------------------------------------------------

//   Обработка изображения

//--------------------------------------------------------------------------

void Imaging(int insideR,int outsideR)

{

  int C,index;



  string Name;

  AnsiString FileSafeName;



  FILE *outIm;

  // формирование имени файла

  index=AnsiPos(ExtractFileExt(FormParam->OpenDialog1->FileName),

                       ExtractFileName(FormParam->OpenDialog1->FileName));

  Name = ExtractFileName(FormParam->OpenDialog1->FileName).c_str();

  Name = Name.substr(0,index-1);

  Name = Name.substr(0,4)+"_" ; //вырезать первые 4 символа

  FileSafeName=StrPas(Name.c_str()) + IntToStr(outsideR)+"_"+ IntToStr(insideR)+".rlx";



  outIm=fopen(FileSafeName.c_str(),"wb"); // открываем бинарный файл

  fwrite(&FormParam->Width,sizeof(FormParam->Width),1, outIm);//ширина изображения

  fwrite(&FormParam->Height,sizeof(FormParam->Height),1, outIm);//ширина изображения

  // вычисляем точки фильтра

  RingFiltrPoint(insideR,outsideR);

  for (int i=outsideR;i<FormParam->Width-outsideR;i++)

   {

    for (int j=outsideR;j<FormParam->Height-outsideR;j++)

     {

      FormParam->CrArr[i][j]=CentroidRelax(i,j,insideR,outsideR);

      FormParam->bmp->Canvas->Pixels[i][FormParam->Height-outsideR-j]=FormParam->CrArr[i][j]; // debug

      }

   }

  // сохранение результатов в файл

  for (int i=0;i<FormParam->Width;i++)

   {

    for (int j=0;j<FormParam->Height;j++)

     {

     fwrite(&FormParam->CrArr[i][j],sizeof(FormParam->CrArr[i][j]),1, outIm);//

     }

   }

   fclose(outIm);

}



П.1.5 Файл «CentriodRelax.h»

//---------------------------------------------------------------------------



#ifndef CentroidRelaxH

#define CentroidRelaxH

#include <Math.h>

#include <fstream.h>

#include <ExtCtrls.hpp>

typedef struct

{

  int mass;

  int x;

  int y;

} PIXEL;

typedef struct

{

  int x;

  int y;

} COORDINATE;



//function

//int CentroidRelax(PIXEL CF);

int CentroidRelax(int i,int j,int insideR,int outsideR) ;

void Imaging(int insideR,int outsideR);



#endif



П.1.6. Файл «Seria.cpp»

//---------------------------------------------------------------------------



#include <vcl.h>

#pragma hdrstop



#include "seria.h"

#include "ParamCentroid.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TFormSeria *FormSeria;

//---------------------------------------------------------------------------

__fastcall TFormSeria::TFormSeria(TComponent* Owner)

        : TForm(Owner)

{

}



//---------------------------------------------------------------------------

//  обработка нажатия кнопки -ОК

//---------------------------------------------------------------------------

void __fastcall TFormSeria::Button1Click(TObject *Sender)

{

  if (seria)

    {

     FormParam->exp=StrToInt(EditExp->Text);

     FormParam->step=StrToInt(EditStep->Text);

     }

  FormSeria->Hide();

}



//---------------------------------------------------------------------------

//  обработка CheckBox1 - разрешить серию вычислений

//---------------------------------------------------------------------------

void __fastcall TFormSeria::CheckBox1Click(TObject *Sender)

{

 if (CheckBox1->Checked)

   {

    seria=true;

    this->Label1->Enabled=true;

    this->Label2->Enabled=true;

    this->UpDownExp->Enabled=true;

    this->EditExp->Enabled=true;

    this->UpDownStep->Enabled=true;

    this->EditStep->Enabled=true;

    }

 else

   {

    seria=false;

    this->Label1->Enabled=false;

    this->Label2->Enabled=false;

    this->UpDownExp->Enabled=false;

    this->EditExp->Enabled=false;

    this->UpDownStep->Enabled=false;

    this->EditStep->Enabled=false;

    FormParam->exp=0;

    FormParam->step=0;

    }



}



//---------------------------------------------------------------------------

//  Создание формы

//---------------------------------------------------------------------------

void __fastcall TFormSeria::FormCreate(TObject *Sender)

{

    this->Label1->Enabled=false;

    this->Label2->Enabled=false;

    this->UpDownExp->Enabled=false;

    this->EditExp->Enabled=false;

    this->UpDownStep->Enabled=false;

    this->EditStep->Enabled=false;

}

//---------------------------------------------------------------------------





П.1.7. Файл «Seria.h»

//---------------------------------------------------------------------------



#ifndef seriaH

#define seriaH

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ComCtrls.hpp>

//---------------------------------------------------------------------------

class TFormSeria : public TForm

{

__published:	// IDE-managed Components

        TButton *Button1;

        TLabel *Label1;

        TLabel *Label2;

        TEdit *EditExp;

        TUpDown *UpDownExp;

        TEdit *EditStep;

        TUpDown *UpDownStep;

        TCheckBox *CheckBox1;

        void __fastcall Button1Click(TObject *Sender);

        void __fastcall CheckBox1Click(TObject *Sender);

        void __fastcall FormCreate(TObject *Sender);

private:	// User declarations

public:		// User declarations

        bool seria; // true - серия

        __fastcall TFormSeria(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TFormSeria *FormSeria;

//---------------------------------------------------------------------------

#endif



ПРИЛОЖЕНИЕ 2 



РЕЗУЛЬТАТЫ РАБОТЫ ПРОГРАММЫ

При запуске программы, появляется главное окно, представленное на рис. П.2.1.



Главное окно программы



Рис. П.2.1



При нажатии на кнопку «Открыть» появляется диалог, представленный на рис. П.2.2.

Диалог «Отрыть»



Рис. П.2.2

При выборе файла в заголовке главного окна программы отображается имя открытого файла и кнопка «Релаксация » становится доступной (см рис. П.2.3).



Главное окно программы после открытия файла



Рис. П.2.3



При нажатии на кнопку «Серия» появляется диалог, представленный на рис. П.2.4.



Диалог «Серия»



Рис. П.2.4


При нажатии на кнопку  «О программе…» появляется сообщение о версии программы и разработчике, представленное на рис. П.2.5.



Сообщение «О программе…»



Рис. П.2.5



Результаты релаксации изображения сериями кольцевых фильтров  представлены на рис. П.2.6 – П.2.26.  Изображения получены используя следующие  параметры:

Максимальное кольцо: 

– внешний радиус – 24 пиксела;

– внутренний радиусами – 20 пиксела.

Минимальное кольцо: 

– внешний радиус – 5 пикселов;

– внутренний радиусами – 1 пиксел.

Шаг изменения колец – 1 пиксел.




Исходное изображение



Рис. П.2.6



Изображение, обработанное  кольцевым фильтром Rвнеш=24, Rвнутр=20



































Рис. П.2.7

Изображение, обработанное  кольцевым фильтром Rвнеш=23, Rвнутр=19



Рис. П.2.8

Изображение, обработанное  кольцевым фильтром Rвнеш=22, Rвнутр=18



Рис. П.2.9

Изображение, обработанное  кольцевым фильтром Rвнеш=21, Rвнутр=17



Рис. П.2.10

Изображение, обработанное  кольцевым фильтром Rвнеш=20, Rвнутр=16



Рис. П.2.11

Изображение, обработанное  кольцевым фильтром Rвнеш=19, Rвнутр=15



Рис. П.2.12

Изображение, обработанное  кольцевым фильтром Rвнеш=18, Rвнутр=14



Рис. П.2.13

Изображение, обработанное  кольцевым фильтром Rвнеш=17, Rвнутр=13



Рис. П.2.14

Изображение, обработанное  кольцевым фильтром Rвнеш=16, Rвнутр=12



Рис. П.2.15

Изображение, обработанное  кольцевым фильтром Rвнеш=15, Rвнутр=11



Рис. П.2.16

Изображение, обработанное  кольцевым фильтром Rвнеш=14, Rвнутр=10



Рис. П.2.17

Изображение, обработанное  кольцевым фильтром Rвнеш=13, Rвнутр=9



Рис. П.2.18

Изображение, обработанное  кольцевым фильтром Rвнеш=12, Rвнутр=8



Рис. П.2.19

Изображение, обработанное  кольцевым фильтром Rвнеш=11, Rвнутр=7



Рис. П.2.20

Изображение, обработанное  кольцевым фильтром Rвнеш=10, Rвнутр=6



Рис. П.2.21

Изображение, обработанное  кольцевым фильтром Rвнеш=9, Rвнутр=5



Рис. П.2.22

Изображение, обработанное  кольцевым фильтром Rвнеш=8, Rвнутр=4



Рис. П.2.23

Изображение, обработанное  кольцевым фильтром Rвнеш=7, Rвнутр=3



Рис. П.2.24

Изображение, обработанное  кольцевым фильтром Rвнеш=6, Rвнутр=2



Рис. П.2.25

Изображение, обработанное  кольцевым фильтром Rвнеш=5, Rвнутр=1



Рис. П.2.26



ПРИЛОЖЕНИЕ 3 



РУКОВОДСТВО ПРОГРАММИСТА



П.3.1. Назначение программы

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

Программа позволяет: 

			рассчитывать кривизну линии в каждой точке;

			проводить серию экспериментов, указав начальные параметры фильтра, шаг, и количество экспериментов;

			обрабатывать изображения, отфильтрованные подсистемой «Центроидная фильтрация», а также изображения, не подвергнутые какой-либо предварительной обработке.

			документировать результаты;

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

П.3.2. Условия применения программы

Разработанная программа является приложением MS Windows. Для ее работы требуется наличие на компьютере операционной системы MS Windows NT4.0/2000/XP и все вытекающее отсюда техническое обеспечение. 

Кроме того, требуется:

			физическая память 1Mб + память на используемые и создаваемые изображения (не менее 500 Мб);

			оперативная память 2*размер используемого изображения. При нехватке оперативной памяти может использоваться виртуальная память. А за счет того, что все данные находятся в памяти, сильно сокращается время решения задач.

Для написания программы использовалась среда разработки Borland C++ Builder 6.0.

П.3.3. Характеристики программы

После запуска программы пользователь может запускать решение задачи в следующей последовательности:

			выбор изображения;

			ввод радиусов кольцевого фильтра;

			при необходимости задать параметры серии экспериментов;

			расчет кривизны (релаксация).

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

Размер изображения влияет на время выполнения задачи релаксации и открытия файла. При серийной обработке изображения на время выполнения задачи релаксации дополнительно оказывает влияние количество  необходимых экспериментов. Остальные задачи выполняются относительно быстро.

П.3.4. Обращение к программе

Запустить программу можно из оболочки системы ААПСИ, выбрав пункт «Центроидная релаксация» в разделе «Преобразования» меню, предварительно открыв проект.

Альтернативный способ запуска подсистемы – выполнение файла Relax.exe. 

П.3.5. Входные и выходные данные

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



Входные и выходные данные:

			файл структурного описания осевых линий изображения (*.fld);

			файл структурного описания кривизны линий изображения (*.rlx);

Файл структурного описания осевых линий изображения является двоичным файлом и содержит данные о размере изображения, матрицу весов пикселей исходного изображения после обработки подсистемой центроидной фильтрации. Формат файла представлен в табл. П.3.1.



Таблица П.3.1

 Формат файла структурного описания осевых линий изображения







0

1

y

…

Height

Width

Height

0

P0,0

P0,1

P0,y

…

P0,Height

1

P1,0

P1,1

P1,y

…

P1,Height

2

P2,0

P2,1

P2,y

…

P2,Height

x

Px,0

Px,1

Px,y

…

Px,Height

…

…

…

…

…

…

Width

PWidth,0

PWidth,1

PWidth,y

…

PWidth,Height



где    Width – ширина изображения;

Height – высота изображения;

Px.y – вес пиксела, находящегося на изображении в точке с координатами x, Height -y 



Файл структурного описания кривизны линий изображения является двоичным файлом и содержит данные о размере изображения, матрицу кривизны точек линий. Формат файла представлен в табл. П.3.2.


Таблица П.3.2

 Формат файла структурного описания кривизны линий изображения







0

1

y

…

Height

Width

Height

0

С0,0

C0,1

C0,y

  …

C0,Height

1

C1,0

C1,1

C1,y

…

C1,Height

2

C2,0

C2,1

C2,y

…

C2,Height

x

Cx,0

Cx,1

Cx,y

…

Cx,Height

…

…

…

…

…

…

Width

CWidth,0

CWidth,1

CWidth,y

…

CWidth,Height



где    Width – ширина изображения;

Height – высота изображения;

Cx.y – кривизна линии в точке, находящейся на изображении в точке с координатами x, Height -y 

П.3.6. Сообщения

Сообщения, выдаваемые оператору приведены в табл. П.3.3



Таблица П.3.3

Сообщения оператору

Вид сообщения

Описание

Действие

«Внешний и внутренний радиусы заданы неверно»

Информационное сообщение о неверно заданных радиусах фильтра. 

Ознакомиться с сообщением и закрыть. Задать радиусы так, чтобы внешний радиус был больше внутреннего(при этом ни один не должен быть равен 0). 

Вид сообщения

Описание

Действие

«Обработка изображения…»

Сообщение о том, что программа обрабатывает изображение.

Не предпринимать никаких действий

«Обработка завершена.»

Программа обработала изображения и готова к дальнейшей работе.

Ознакомиться с сообщением и нажать кнопку «ОК»





ПРИЛОЖЕНИЕ 4



РУКОВОДСТВО ОПЕРАТОРА

П.4.1. Назначение программы

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

Программа позволяет: 

			рассчитывать кривизну линии в каждой точке;

			проводить серию экспериментов, указав начальные параметры фильтра, шаг, и количество экспериментов;

			обрабатывать изображения, отфильтрованные подсистемой «Центроидная фильтрация», а также изображения, не подвергнутые какой-либо предварительной обработке.

			документировать результаты;

Для визуализации данные передаются в подсистему «Визуализации данных».

П.4.2. Условия выполнения программы

Разработанная программа является приложением MS Windows. Для ее работы требуется наличие на компьютере операционной системы MS Windows NT4.0/2000/XP и все вытекающее отсюда техническое обеспечение. 

Кроме того, требуется:

			физическая память 1Mб + память на используемые и создаваемые изображения (не менее 500 Мб);

			оперативная память 2*размер используемого изображения. При нехватке оперативной памяти может использоваться виртуальная память. А за счет того, что все данные находятся в памяти, сильно сокращается время решения задач.

Для написания программы использовалась среда разработки Borland C++ Builder 6.0.

П.4.3. Выполнение программы

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

Для запуска программы оператор из оболочки системы ААПСИ должен произвести выбор пункта «Центроидная релаксация» меню «Преобразования». На экране будет отображено главное окно подсистемы (рис П.4.1).



Главное окно подсистемы «Центроидная релаксация»



Рис.П.4.1



Далее оператор открывает файл структурного описания изображения, для этого ему необходимо нажать на кнопку «Открыть» и в диалоге (рис.П.4.2) выбрать нужный файл, затем нажать кнопку «Открыть». 


Диалог открытия файла



Рис.П.4.2



После загрузки открываемого файла в оперативную память в заголовке формы появляется название открытого файла (рис.П.4.3). 



Главное окно подсистемы после открытия файла



Рис.П.4.3



Далее оператор вводит параметры фильтра: внешний и внутренний радиусы.

Теперь оператор получает возможность воспользоваться функциями программы для выполнения центроидной релаксации.

По нажатию кнопки “Серия” вызывается диалог (рис.П.4.4), позволяющий задать параметры серии: количество экспериментов, шаг изменения фильтра, флажок разрешения/запрещения серии вычислений. 



Диалог «Серия экспериментов»



Рис.П.4.4



По нажатию кнопки “Релаксация” программа начинает обработку изображения указанным фильтром, с учетом параметров, заданных при вызове диалога  “Серия” (рис.П.4.5).

Вид главного окна программы при обработке изображения





Рис.П.4.5



 По окончании обработки программа выдаст соответствующее сообщение (рис.П.4.6). 


Сообщение о завершении обработки изображения



Рис.П.4.6



Все полученные результаты сохраняются в файлы, имена которых включают первые 4 символа – из названия открытого файла, затем внешний радиус фильтра, и внутренний. 

Для завершения работы с программой оператору необходимо нажать на кнопку   системного меню, или комбинацию клавиш Alt+F4.

П.4.5. Сообщения оператору

Сообщения, выдаваемые оператору приведены в табл. П.4.1



Таблица П.4.1

Сообщения оператору

Вид сообщения

Описание

Действие

«Внешний и внутренний радиусы заданы неверно»

Информационное сообщение о неверно заданных радиусах фильтра. 

Ознакомиться с сообщением и закрыть. Задать радиусы так, чтобы внешний радиус был больше внутреннего(при этом ни один не должен быть равен 0). 

 «Обработка изображения…»

Сообщение о том, что программа обрабатывает изображение.

Не предпринимать никаких действий

«Обработка завершена.»

Программа обработала изображения и готова к дальнейшей работе.

Ознакомиться с сообщением и нажать кнопку «ОК»