Разработка программных средств по распознаванию образов

 















Дипломная работа

Разработка программных средств по распознаванию образов


Содержание


ВВЕДЕНИЕ

. РАСПОЗНАВАНИЕ ОБРАЗОВ: ИДЕИ, ТЕХНОЛОГИИ, ПРОБЛЕМЫ И ПЕРСПЕКТИВЫ

.1 Теория распознавания образов

1.2 Методики распознавания образов: преимущества и недостатки

1.2.1 Интенсиональные методы

.2.2 Методы, основанные на оценках плотностей распределения значений признаков

.2.3 Методы, основанные на предположениях о классе решающих функций

.2.4 Логические методы

.2.5 Лингвистические (структурные) методы

.2.6 Экстенсиональные методы

.2.7 Метод сравнения с прототипом

.2.8 Метод k ближайших соседей

.2.9 Алгоритмы вычисления оценок

.2.10 Коллективы решающих правил

.3 Проблемы и перспективы распознавания образов

2. ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ И ВЫБОР ТЕХНОЛОГИИ ПРОЕКТИРОВАНИЯ

.1 Характеристика предметной области

.2 Предмет разработки и функциональные требования

2.3 Информационное обеспечение программных средств

. РАЗРАБОТКА ПРОГРАММНЫХ СРЕДСТВ ПО РАСПОЗНАВАНИЮ ОБРАЗОВ

.1 Назначение и цель создания

.2 Требование к программным средствам

.3 Описание функциональных возможностей и схем диалога

4. ОБОСНОВАНИЕ ЭКОНОМИЧЕСКОЙ ЭФФЕКТИВНОСТИ ПРОЕКТА

4.1 Общие положения

.2 Методика расчета критериев эффективности

.3 Расчет затрат на создание и функционирование электронного ресурса дистанционного обучения

.4 Расчет экономии от функционирования электронного ресурса дистанционного обучения

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

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

.2 Безопасность, эргономика и техническая эстетика рабочего места инженера-программиста

.3 Создание условий для организации режима труда и отдыха при работе с ПЭВМ

5.4 Экологичность проекта

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

Приложение

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


ВВЕДЕНИЕ


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

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

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

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

Для достижения данной цели необходимо было решить следующие задачи:

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

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

-разработать программное средство по распознаванию образов;

-внедрить разработанное программное средство.

Разработанное программное средство по распознаванию образов позволит решать следующие задачи:

-загружать документы в электронном виде различных форматов;

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

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

-сохранять полученное изображение (образ) в новом виде.

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


1. РАСПОЗНАВАНИЕ ОБРАЗОВ: ИДЕИ, ТЕХНОЛОГИИ, ПРОБЛЕМЫ И ПЕРСПЕКТИВЫ


1.1 Теория распознавания образов


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

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

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

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

Одна из основных задач распознавания образа - выбор правила (решающей функции) D, в соответствии с которым по значению контрольной реализации Х устанавливается её принадлежность к одному из образов, т. е. указываются «наиболее правдоподобные» значения характеристики S для данного Х. Выбор решающей функции D требуется произвести так, чтобы стоимость самого распознающего устройства, его эксплуатации и потерь, связанных с ошибками распознавания, была минимальной. Примером задачи распознавания образа этого типа может служить задача различения нефтеносных и водоносных пластов по косвенным геофизическим данным. По этим характеристикам сравнительно легко обнаружить пласты, насыщенные жидкостью. Значительно сложнее определить, наполнены они нефтью или водой. Требуется найти правило использования информации, содержащейся в геофизических характеристиках, для отнесения каждого насыщенного жидкостью пласта к одному из двух классов - водоносному или нефтеносному. При решении этой задачи в обучающую выборку включают геофизические данные вскрытых пластов.

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

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

В основной задаче распознавания образа о построении решающих функций D используются закономерные связи между характеристиками Х и S, обнаруживаемые на обучающей выборке, и некоторые дополнительные априорные предположения, например следующие гипотезы: характеристики Х для реализаций образов представляют собой случайные выборки из генеральных совокупностей с нормальным распределением; реализации одного образа расположены «компактно» (в некотором смысле); признаки в наборе Х независимы и т.д.

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

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

Предположим, что известны n1 наблюдений из генеральной совокупности A1, n2 наблюдений из генеральной совокупности А2 и т.д., nm наблюдений из генеральной совокупности Am, m ? 2. Дана также выборка z = (z1, ..., zn). Задача Р. о. состоит в определении, какой из генеральных совокупностей Aj, j = 1, 2,..., m, принадлежит выборка z. При этом обычно принимается предположение о том, что распределения P (?) совокупностей Aj принадлежат некоторому семейству {P (?, )} распределений, зависящих от векторного параметра ?, так что Pj () = Р (?j,?), где ?j неизвестны.

Если заданы потери Lij, которые несёт наблюдатель, относя выборку 2 к совокупности (образу) Aj, когда она на самом деле принадлежит Ai, то сформулированная задача может рассматриваться и решаться с помощью методов теории статистических игр [стратегией природы здесь является набор (?1, ..., ?m, j), где j указывает номер совокупности, к которой относится z]. В этом случае возможно отыскание оптимальных «решающих функций», минимизирующих в том или ином смысле потери наблюдателя.

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

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


1.2 Методики распознавания образов: преимущества и недостатки


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

Основная типология методов распознавания образов:

-методы, основанные на принципе разделения;

-статистические методы;

-методы, построенные на основе «потенциальных функций»;

-методы вычисления оценок (голосования);

-методы, основанные на исчислении высказываний, в частности на аппарате алгебры логики.

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

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

Выделяют два основных способа представления знаний:

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

-экстенсиональное, с помощью конкретных фактов (объекты, примеры).

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

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

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

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

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

-экстенсиональные методы, основанные на операциях с объектами.

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

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


1.2.1 Интенсиональные методы

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

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


1.2.2 Методы, основанные на оценках плотностей распределения значений признаков

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

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

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


1.2.3 Методы, основанные на предположениях о классе решающих функций

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

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

Достаточно высокое качество решающего правила может быть достигнуто с помощью алгоритмов, не имеющих строгого математического доказательства сходимости решения к глобальному экстремуму. К таким алгоритмам относится большая группа процедур эвристического программирования, представляющих направление эволюционного моделирования. Эволюционное моделирование является бионическим методом, заимствованным у природы. Оно основано на использовании известных механизмов эволюции с целью замены процесса содержательного моделирования сложного объекта феноменологическим моделированием его эволюции. Известным представителем эволюционного моделирования в распознавании образов является метод группового учета аргументов (МГУА). В основу МГУА положен принцип самоорганизации, и алгоритмы МГУА воспроизводят схему массовой селекции.

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

1.2.4 Логические методы

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

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

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


1.2.5 Лингвистические (структурные) методы

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

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

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

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

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


1.2.6 Экстенсиональные методы

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

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


1.2.7 Метод сравнения с прототипом

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

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

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

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

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

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


1.2.8 Метод k ближайших соседей

Метод k ближайших соседей для решения задач дискриминантного анализа был впервые предложен еще в 1952 году. Он заключается в следующем.

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

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

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

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


1.2.9 Алгоритмы вычисления оценок

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

В отличие от всех ранее рассмотренных методов алгоритмы вычисления оценок принципиально по-новому оперируют описаниями объектов. Для этих алгоритмов объекты существуют одновременно в самых разных подпространствах пространства признаков. Класс АВО доводит идею использования признаков до логического конца: поскольку не всегда известно, какие сочетания признаков наиболее информативны, то в АВО степень сходства объектов вычисляется при сопоставлении всех возможных или определенных сочетаний признаков, входящих в описания объектов [118].

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

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

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

-правила вычисления близости объектов в подпространствах признаков;

-степень важности того или иного эталонного объекта как диагностического прецедента;

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

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

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

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

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

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


1.2.10 Коллективы решающих правил

В завершение обзора методов распознавания образов остановимся еще на одном подходе. Это так называемые коллективы решающих правил (КРП).

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

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

Сравним описанные выше методы распознавания образов и оценим степень их адекватности сформулированным в разделе 3.3.3 требованиям к моделям СОУ для адаптивных АСУ сложными системами.

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

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

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

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

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

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

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

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

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

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

Это задачи:

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

-кластерно-конструктивный анализ обобщенных образов;

-определение семантической нагрузки признака;

-семантический кластерно-конструктивный анализ признаков;

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

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

-классификация методов распознавания;

-области применения методов распознавания;

-классификация ограничений методов распознавания.


Таблица 1.1 Сводная таблица классификации методов распознавания, сравнения их областей применения и ограничений

Классификация методов распознаванияОбласть примененияОграничения (недостатки)Интенсиальные методы распознаванияМетоды, основанные на оценках плотностей распределения значений признаков (или сходства и различия объектов)Задачи с известным распределением, как правило, нормальным, необходимость набора большой статистикиНеобходимость перебора всей обучающей выборки при распознавании, высокая чувствительность к непредставительности обучающей выборки и артефактамМетоды, основанные на предположениях о классе решающих функцийКлассы должны быть хорошо разделяемыми, система признаков - ортонормированнойДолжен быть заранее известен вид решающей функции. Невозможность учета новых знаний о корреляциях между признакамиЛогические методыЗадачи небольшой размерности пространства признаковПри отборе логических решающих правил (коньюнкций) необходим полный перебор. Высокая вычислительная трудоемкостьЛингвистические (структурные) методыЗадачи небольшой размерности пространства признаковЗадача восстановления (определения) грамматики по некоторому множеству высказываний (описаний объектов), является трудно формализуемой. Нерешенность теоретических проблемЭкстенсиальные методы распознаванияМетод сравнения с прототипомЗадачи небольшой размерности пространства признаковВысокая зависимость результатов классификации от меры расстояния (метрики). Неизвестность оптимальной метрикиМетод k ближайших соседейЗадачи небольшой размерности по количеству классов и признаковВысокая зависимость результатов классификации от меры расстояния (метрики). Необходимость полного перебора обучающей выборки при распознавании. Вычислительная трудоемкостьАлгоритмы вычисления оценок (голосования) АВОЗадачи небольшой размерности по количеству классов и признаковЗависимость результатов классификации от меры расстояния (метрики). Необходимость полного перебора обучающей выборки при распознавании. Высокая техническая сложность методаКоллективы решающих правил (КРП)Задачи небольшой размерности по количеству классов и признаковОчень высокая техническая сложность метода, нерешенность ряда теоретических проблем, как при определении областей компетенции частных методов, так и в самих частных методах

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


1.3 Проблемы и перспективы распознавания образов


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

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

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

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

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

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

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

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

2. ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ И ВЫБОР ТЕХНОЛОГИИ ПРОЕКТИРОВАНИЯ


2.1 Характеристика предметной области


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

-выбор изображение (образа) в предложенном виде (текстовый файл, графическое изображение в электронном виде, различные данные на бумажном носителе);

-подготовка данных к обработке и анализу (сканирование, копирование);

-обработка данных (выполнение необходимых действий для распознавания образа для улучшения восприятия);

-анализ полученных данных.

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

Деятельность специалиста по распознаванию образов можно представить схематично (рисунок 2.1).

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


Рисунок 2.1. Этапы распознавания образа


2.2 Предмет разработки и функциональные требования


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

Функциональные требования:

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

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

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

- операционная система - не ниже MS WINDOWS 2000/NT/XP;

- наличие графических редакторов

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

-наличие видеокарты RADEON X1900 XTX или RADEON X1950 XTX;

-процессор Intel Core 2 Quad.

4)Требования к эргономике и технической эстетике. Программное средство должно быть оптимизировано для просмотра при разрешении 1024*768, 1280*1024 без горизонтальной полосы прокрутки и без пустых полей для основных типов разрешения. Результатом разработки должно стать программное средство, устанавливаемое на ПЭВМ без каких либо специфических требований к аппаратной и программной части компьютера. Удобство и простота в использовании предполагают комфортную и продуктивную работу с данным программным средством


2.3 Информационное обеспечение программных средств


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

(2.1)


где x, y, s,… - измерения пространства, в котором определяется точка, теоретически количество измерений ничем не ограничено; x1, y1, s1, … - значения параметров, определяющих в пространстве конкретную точку; [ ] - знак, обозначающий целую часть числа.

Для всех x, y, s,… больших нуля и при условии, что выполняются все равенства: x=x1, y= y1, s=s1, … z будет равно единице, а в противном случае будет принимать значение равное нулю. Если необходимо, что бы z могло принимать одно единственное значение, равное единице при выполнении выше, приведенных условий, то уравнение (2.1) необходимо переписать в виде уравнения (2.2). В этом уравнении при не выполнении хотя бы одного из равенств: x=x1, y= y1, s=s1, … будет возникать ситуация деления на ноль.


(2.2)


Необходимо обратить внимание на то, что производить сокращения в уравнении (2.2) нельзя, что связано с возможностью возникновения ситуации деления на ноль. Так, выражение: x/x можно заменить единицей для всех значений x кроме значения x равного нулю. Таким образом, если в ходе вычислений по выражению x/x возможна ситуация, когда x будет принимать значение равное нулю, то для избежания ошибок заменять выражение x/x на единицу нельзя. Аналогичную ситуацию мы имеем и с уравнением (2.2).

Сумма уравнений вида (2.1) или (2.2) способна описывать произвольную сумму точек в произвольном пространстве.

Используя уравнения вида (2.1) или (2.2) можно описывать любой образ без учета "фона" и формирования матрицы. Уравнения легко преобразуются при изменении системы отсчета, их вид зависит исключительно от свойств описываемого образа. Объем каждого из двух сравниваемых уравнений может быть любым и различие их объемов не влияет на процедуру сравнения.

Схема работы программы приведена на рисунке 2.2.


Рис.2.2. Схема работы программы распознавания образов


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

3. РАЗРАБОТКА ПРОГРАММНЫХ СРЕДСТВ ПО РАСПОЗНАВАНИЮ ОБРАЗОВ


3.1 Назначение и цель создания


Целью данной дипломной работы является разработка программного средства по распознаванию образов.

Основная цель программного средства - обработка и анализ графического изображения (образа), представленного в электронном виде и хранящемся на ПЭВМ. Задачи, решаемые программным средством:

-загрузка данных в нужном формате;

-обработка изображения (образа), настройка параметров для выполнения анализа;

-анализ изображения (образа) для выявления соответствия.

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

-сокращение времени обработки данных;

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

-увеличение степени обработки в несколько раз;

-увеличение скорости распознавания.

При создании программного средства по распознаванию образов использовался язык объектно-ориентированного программирования C++Builder 6.0.


3.2 Требование к программным средствам


Требования к функциям программного средства. Программные средства должны:

содержать необходимый инструментарий для работы с программой;

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

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

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

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

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

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

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

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

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

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

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

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

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

Требования к надёжности системы. Надежность системы подразумевает надежную работу ПК, на котором установлена проектируемая информационная система.

Необходимо предусмотреть резервное копирование накапливаемой информации в определенный интервал времени.


3.3 Описание функциональных возможностей и схем диалога


Общий вид программы представлен на рисунке 3.1.

Рисунок 3.1. Общий вид программы


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

2 - меню. С его помощью можно получить доступ к основным функциям приложения.

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

4 - панель инструментов, включающая в себя управление масштабом изображения и настройки фильтров - увеличение или уменьшение яркости при применении фильтра («Яркость») и количество применений выбранного фильтра к рисунку («Проходы»). Используется в том случае, когда однократное применение фильтра не дает требуемого результата. Действие команды можно заменить вызовом определенного фильтра нужное количество раз.

5 - изображение до применения фильтра.

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

7 - полоса прогресса обработки изображения. С помощью меню ее можно отображать и скрывать.

Описание команд меню.

Меню «Файл»

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

«Сохранить» - для выбора папки, в которую будет сохранен файл и названия файла. Соответствующая кнопка на панели задач - .

«Выход» - выход из программы. Все несохраненные изменения будут утеряны.

Меню «Правка»

«Отменить» - отменяет последнее действие. Соответствующая кнопка на панели задач - . Отменить можно только одно действие.

«Перезагрузить» - заново загружает последний открытый файл. Соответствующая кнопка на панели задач - . Все изменения будут утеряны.

Меню «Вид»

«Отдалить» - уменьшает изображение в 1,5 раза. Соответствующая кнопка на панели задач - .

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

«Приблизить» - увеличивает изображение в 1,5 раза. Соответствующая кнопка на панели задач - .

«Всегда наверху» - если эта опция установлена, приложение будет перекрывать другие открытые окна или программы, то есть будет поверх их.

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

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

Меню «Фильтры»

«Контур» - выделение контуров изображения одним из трех методов.

«Резкость» - увеличение или уменьшение резкости. Уменьшение можно реализовать одним из двух методов - первый более быстрый, но эффект менее заметен, второй дает больший эффект, но в ущерб скорости.

«Тиснение» - эффект дает результат, подобный тиснению на металле. Можно выбрать выпуклый или вогнутый способ тиснения.

«Кора» - придает изображению эффект «шершавости».

«В движении» - смазывает изображение. Такой эффект иногда возникает при съемке движущихся объектов.

«Негатив» - инвертирует цвета в изображении.

«Оттенки серого» - уравнивает три составляющие цвета, за счет чего исчезают все цвета, кроме оттенков серого.

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

Меню «Анализ»

«Отсеять цвет» - при выборе этого пункта меню панель масштабирования будет заменена на следующую:



Цвет - тот цвет, который будет отсеян. Чтобы произвести отсеивание нужно выбрать цвет и щелкнуть по изображению в области 5 правой кнопкой мыши.

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

Процент - предыдущая величина, представленная в процентах.

«Диаграмма» - отображение трех цветовых составляющих цвета в виде диаграммы. Имеется возможность увеличить или уменьшить каждую из составляющих, задав величину (положительную или отрицательную) и нажав кнопку «Выполнить коррекцию».

Меню «Помощь»

«Справка» - открыть этот документ. Соответствующая кнопка на панели задач - .

«О программе» - информация о программе.


4. ОБОСНОВАНИЕ ЭКОНОМИЧЕСКОЙ ЭФФЕКТИВНОСТИ ПРОЕКТА


4.1 Общие положения


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

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

До приобретения оборудования следует продумать и принять решение по следующим вопросам:

-для какой цели будет использовано;

-как построена действующая система информации и документооборота;

-как может быть улучшена система информации и документооборота;

-какие программные комплекты (пакеты прикладных программ) следует приобрести и что следует программировать вследствие специфики конкретной задачи;

-какие аппаратные средства необходимы для построения комплекса;

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

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

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

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

-улучшение показателей основной деятельности в результате использования автоматизированных систем управления;

-увеличение объемов и уменьшение сроков переработки информации;

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

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

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

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

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

Эффективность или качество систем в большинстве случаев желательно сопоставить с затратами в тех же единицах измерения.

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

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

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

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

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


4.2 Методика расчета критериев эффективности


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

К основным обобщающим показателям экономической эффективности относятся:

-годовой экономический эффект;

-коэффициент экономической эффективности функционирования

-программного продукта;

-срок окупаемости системы.

Годовой экономический эффект от разработки и внедрения программного продукта определяется как разность между годовой экономией (или годовым приростом прибыли) от функционирования системы и суммарными затратами на создание системы:


Э = П-К ,(4.1)


Где Э - годовой экономический эффект, тыс.тг.;

П - годовая экономия (годовой прирост прибыли), тыс.тг.;

К - суммарные затраты, тыс.тг.

Коэффициент экономической эффективности единовременных затрат (Ек) представляет собой отношение годовой экономии (годового прироста прибыли) к единовременным затратам (Р) на разработку и внедрение программного продукта:


Ек = П / Р (4.2)


Срок окупаемости (Т) представляет собой отношение единовременных суммарных затрат на разработку и внедрение программного продукта к годовой экономии (годовому приросту прибыли):


Т = Р / П (4.3)


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

-годовая экономия (годовой прирост прибыли);

-единовременные затраты на разработку и внедрение системы;

-длительность обработки информации;

-надежность технических средств;

-увеличение затрат вследствие ненадежности КТС (комплекса технических средств), тыс.тг.;

-достоверность и др.

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


П = (П1 + П2 + П3) (1 + Ен DТ), (4.4)


где П1 - экономия, получаемая в t - году в результате сокращения затрат трудовых и материальных ресурсов, тг/год;

П2 - экономия, получаемая в t - году в результате повышения качества новой техники, ее потребительских свойств, тг/год;

П3 - дополнительная прибыль в t - году от приоритетной новизны решения, полученного в автоматизируемой системе в кратчайшие сроки, тг/год;

Ен - норматив эффективности капитальных вложений (тг/год)/тг.

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

DТ - сокращение длительности автоматизируемого процесса, лет.

В соответствии со значением разрабатываемого программного продукта, (АРМ, САПР) расчет показателей П1, П2 и П3 имеет свои особенности и производится применительно к конкретным объектам автоматизации.

Суммарные затраты на создание и внедрение программного продукта (К), приведенные в формуле (1) определяются следующим образом:


К = Иг + (kр + Ен)*Р, (4.5)


где Иг - годовые текущие издержки на функционирование программного продукта (без учета амортизации на реновацию), тг.;

Р - единовременные затраты на создание программного продукта, тг.;р - норма реновации основных фондов функционирования программного продукта, определяемая с учетом фактора времени;


kр = Ен / [(1+ Ен)Тсл - 1 ], (4.6)


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

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

Если для коэффициента Ек в формуле (2) выполняется условие Ек >= Ен, капитальные вложения считаются экономически эффективными.

Значения коэффициента реновации kр в зависимости от срока службы приведены в таблице 3.1.


Таблица 4.1 Значение коэффициента реновации kр

Срок службыkрСрок службыkрСрок службыkр11,000060,1296110,054020,476270,1054120,046830,302180,0874130,040840,215590,0736140,035250,1638100,0627150,0315

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


Эо = По - Ко (4.7)


Суммарные по годам расчетного периода экономия и затраты рассчитываются следующим образом:

t=tk

По = S Пt * at(4.8)

t=tn

t=tk

Ко = S Кt * at , (4.9)

t=tn


где Пt и Кt - соответственно экономия и затраты в t -ом году расчетного периода, тг.; и tk - соответственно начальный и конечный годы расчетного периода;

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

Значения a для различных временных интервалов приведены в таблице 3.2.


Таблица 4.2 Значения коэффициентов приведения к расчетному году

Число лет, предшествующих расчетному году aЧисло лет, следующих за расчетным годом a5 4 3 2 1 01,6105 1,4641 1,3310 1,2100 1,1100 1,00001 2 3 4 5 60,9091 0,8264 0,7513 0,6830 0,6209 0,5645

Расчет единовременных затрат на создание программного продукта определяются по формуле:


Р = РП + РК,(4.10)

где РП - предпроизводственные затраты, тг.;

РК - капитальные затраты на создание, тг.

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


РП = РПР + РПО + РИО + РВВ,(4.11)


где РПР - затраты на проектирование, тг.;

РПО - затраты на программирование, создание программных изделий, образующих программное обеспечение продукта, тг.;

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

РВВ - затраты на отладку и ввод программного продукта в работу, тг.

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

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


С = tпр*Сд, (4.12)


где tпр - приведенная трудоемкость создания программного продукта, чел.-дн.;

Сд - стоимость 1 чел.-дн.,тг.

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


Рк = Рктс + Рмонт + Ринв + Рзд + Рос + Ртр + Рсоп + Рвысв,(4.13)


где Рктс - сметная стоимость КТС, тг.;

Рмонт - затраты на установку, монтаж и запуск КТС в работу, тг.;

Ринв - затраты на производственно-хозяйственный инвентарь, тг.;

Рзд - затраты на строительство и реконструкцию зданий для размещения КТС, тг.;

Рос - сумма оборотных средств, тг.;

Ртр - транспортно-заготовительные расходы, тг.;

Рсоп - сметная стоимость системы стандартного обеспечения применения КТС, тг.;

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

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


Рвысв = Рв*(1-а*Ттехн),(4.14)


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

а - годовая норма амортизации;

Ттехн - срок эксплуатации высвобожденного оборудования, лет.

Расчет затрат на создание программного обеспечения.

При расчете затрат на создание программного обеспечения (Рпо) используют следующие показатели:

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

-длительность разработки программного изделия.

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

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


t = 3,6 * (n)1,2(4.15)


где n - число тысяч исходных команд.

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


Т = 2,5 *(t)0,32(4.16)


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


Пр = 1000 * n / t(4.17)


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


Чn = t / Т(4.18)

Расчет текущих затрат.

Расчет годовых текущих затрат на функционирование программного продукта (Иг) может выполняться двумя методами.

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


Иг = Икса + Из,(4.19)


где Икса - годовые текущие затраты на эксплуатацию КСА, тг/год;

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

Затраты Икса определяются по формуле:


Икса = di * Иктс + Исоп + Ип + Из(4.20)


где di коэффициент использования КСА в данной автоматизированной системе;

Иктс - годовые затраты на эксплуатацию КТС без учета заработной платы персонала, тг/год;

Исоп - годовые затраты на поддержание и актуализацию системы обеспечения применения КТС (хранение, обновление, контроль данных и программ), тг/год;

Ип - годовые затраты на содержание и ремонт производственных помещений, тг/год;

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

n

Иг = S Иi + Исист,(4.21)

i = 1


где Иi - затраты, вызванные решением i-й задачи (тг/год);- число задач, решаемых в течение года;

Исист - общесистемные затраты за год, тг/год.

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

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

Пример оценки экономической эффективности создаваемого АРМ специалиста.

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


Таблица 4.3 Исходные данные

Наименование показателейУсл.обозн.Ед.измеренияЗначения показателябез АРМв условиях АРМ1. Количество задач решаемых за годNззадач/год50502. Трудоемкость обработки информации по одной задачеtзчас20 чел/час0,15 час (маш.времени)3. Количество документов-отчетовNдшт/год5005004. Время печати одного документа отчетаtдчас3 чел/час0,1 час (маш.вр)5. Стоимость одного часа машинного времениСМтенге-1506. Сметная стоимость КТСРКТСтенге-1085007.Эксплуатационные расходы на функционирование АРМ (% от сметной стоимости) - амортизация 5 % - текущий ремонт 2 % - содержание оборудования 2,5 % ИТОГО: Иктс тенге тенге тенге тенге - - - - 5425 2170 2712,5 10307,58. Удельная стоимость трудозатрат одной машинисткиСммтг/чел-ч33-Наименование показателейУсл. обозн.Ед.измеренияЗначения показателябез АРМв условиях АРМ9. Удельная стоимость трудозатрат специалиста отделаСстг/чел-ч67-10. Время создания БДtбдчас маш. вр.-711. Время отладки и ввода АРМtввчас маш. вр.-412. Высвобождение 1 штатной единицы секретаря-машиниста: - зарплата - социальный налог (21%); пенсионный фонд (10%) - расходы на охрану труда 10% ИТОГО: тенге тенге тенге тенге 8000 1470 700 10170 - - - -13. Программный продуктnтыс.исх. команд-114. Удельная стоимость трудодня программистаСпртенге50050015. Период функционирования АРМT лет-3

4.3 Расчет затрат на создание и функционирование электронного ресурса дистанционного обучения


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


Р = Рп + Рк

Рк = 0, т.к. используется старая вычислительная техника


Р = Рп = Рпо + Рио + Рвв


Трудоемкость разработки программного продукта определяется:


t = 3,6 * (1)1,2 = 3,6 (чел-мес)


Длительность разработки программного продукта Тп определяется:

Тп = 2,5 *(3,6)0,32 = 3,7 (мес)

Среднее число исполнителей (Чп) реализации программного продукта рассчитывается следующим образом:


Чп = t /Т = 3,6 / 3,7 = 1 (чел)


Определим затраты на программирование через стоимость затрат по созданию программного продукта:


Рпо = Спр * Тп * 24 = 500 * 3,7 * 24 = 44400 (тг)

Рио = См * tбд = 150 * 7 = 1050 (тг)

Рвв = См * tвв = 150 * 4 = 600 (тг)

Р = 44400 + 1050 + 600 = 46050 (тг)


Расчет текущих затрат на функционирование АРМ

а) годовые текущие затраты:

Иг = Иктс + Из = 10307,5 + 15000 * 12 = 303690 (тг)

(15000 - заработная плата специалиста отдела, тг/мес)

б) суммарные текущие затраты на функционирование АРМ за 3 года с приведением к расчетному году (первому году функционирования АРМ):

И = Иг * (a0 + a1 + a2)


И = 303690 * (1,0 + 0,91 + 0,83) = 832110,6 (тг)

(значения ai взяты из таблицы 18)

3 Расчет суммарных затрат на создание и функционирование АРМ:

Кг = Р + Иг = 46050 + 303690 = 349740 (тг)

Расчет суммарных затрат на создание и 3-х летнее функционирование программного продукта определяется как:

К = Р + И = 46050 + 832110,6= 878160,6 (тг)


4.4 Расчет экономии от функционирования электронного ресурса дистанционного обучения


Расчет экономии от сокращения штатной единицы:

П1 = 10170 * 12 = 122040 (тг/год)

4.4.2 Расчет экономии прибыли за счет сокращения сроков выполнения задач:

П2 = Сс*tз*Nз - См*0.15* Nз

П2 = 67*20*50 - 150*0,15*50 = 65875 (тг/год)

4.4.3 Расчет экономии прибыли за счет сокращения времени на печать документов:


П3 = Смм*tд*Nд - См*0.1 Nд


П3 = 33*3*500 - 150*0,1*500 = 42000 (тг/год)

Расчет годовой прибыли:


П = (П1 + П2 + П3) * (1 + Ен * DТ)

П = (122040+ 65875 + 42000) * (1 + 0,15 * 2) = 528804,5 (тг)

Расчет экономии от функционирования программного продукта за 3 года:


По = П * (a0 + a1 + a2 + a3)

По = 528804,5 * (1,0 + 0,91 + 0,83) = 1448924,33 (тг)


Оценка экономического эффекта, получаемого за год и за 3-х летнее функционирование АРМ:

Годовой экономический эффект:


Эг = П - Кг

Эг = 528804,5 - 349790 = 179014,5 (тг)


Экономический эффект за 3 года:


Э = По-К

Э = 1448924,33 - 878160,6 = 570763,73 (тг)


Коэффициент экономической эффективности единовременных затрат:


Ек = (П - Иг) / Р

Ек = (528804,5 - 303690) / 46050 = 4,88


Срок окупаемости


Т = Р / (П - Иг)

Т = 46050/ (528804,5 - 303690) = 0,2 (лет)


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


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


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

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

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

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

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

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

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

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

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

Опасным называется производственный фактор, воздействие которого на работающего в определенных условиях приводит к внезапному ухудшению здоровья. Если производственный фактор вызывает заболевание или снижает работоспособность, то его считают вредным (ГОСТ 12.0.002-80). В зависимости от уровня продолжительности воздействия вредный фактор может стать опасным.

В ГОСТ 12.0.003-74 "ССБТ. Опасные и вредные производственные факторы. Классификация" приводится классификация элементов условий труда, выступающих в роли опасных и вредных производственных факторов. Они подразделяются на четыре группы: физические, химические, биологические, психофизиологические.

При работе с ЭВМ мы сталкиваемся, в основном, с физическими и психофизиологическими - опасными и вредными производственными факторами. Биологические и химические - опасные факторы при этой работе не встречаются.

К физическим - опасным производственным факторам при работе с ЭВМ, можно отнести:

-электромагнитные излучения;

-повышенная напряженность электрических и магнитных полей;

-повышенная запыленность воздуха в рабочей зоне;

-повышенная температура воздуха в рабочей зоне;

-повышенный уровень шума на рабочем месте;

-недостаток или отсутствие естественного света;

-неправильное размещение источников искусственного освещения.

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

Рентгеновское излучение генерируется в результате торможения электронов в слое люминофора на поверхности экрана монитора. При ускоряющем анодном напряжении менее 25 кВ энергия рентгеновского излучения полностью поглощается стеклом экрана.

Электростатический потенциал вне монитора появляется вследствие высокого напряжения в электронно-лучевой трубке (ЭЛТ), а его природа аналогична электрическому полю кинескопа обычного телевизора. Напряжение, возникающее на теле человека, может достигать нескольких киловольт; его величина зависит от одежды, от влажности окружающего воздуха. При длительной работе с компьютером под воздействием заряженных частиц на теле человека может появиться аллергическая сыпь.

К опасным психофизиологическим и вредным производственным факторам относятся физические (статические и динамические), нервно-психические перегрузки (умственное перенапряжение, перенапряжение анализаторов, монотонность труда, эмоциональные перегрузки) [10].


5.2 Безопасность, эргономика и техническая эстетика рабочего места инженера-программиста


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

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

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

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

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

Если при работе на ПК необходимо одновременно пользоваться документами, то следует иметь в виду, что зрительная работа с печатным текстом и с изображением на экране имеет принципиального отличия: изображение светится, мелькает, дрожит, состоит из дискретных элементов, менее контрастно. Снизить или устранить утомление можно только правильным выбором режима воспроизведения изображения на экране, источника освещения (местного или общего), расположения материалов (в целях уменьшения длины или частоты перевода взгляда).

Человек должен так организовать свое рабочее место, чтобы условия труда были комфортными и соответствовали требованиям СНиП:

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

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

-необходимый обзор (центр экрана монитора должен быть расположен чуть ниже уровня глаз; монитор должен отстоять от глаз человека на расстоянии 45-60 сантиметров; должна регулироваться яркость и контрастность изображения);

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

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

-нормальные условия в отношении шума и вибрации;

-нормальный температурный режим;

-нормальная влажность воздуха;

-необходимая вентиляция.

К рабочему месту инженера-программиста предъявляются следующие требования:

  1. Требования к параметрам микроклимата и воздушной среды (ГОСТ 12.1.005-88. Общие санитарно-гигиенические требования к воздуху рабочей зоны).

Оптимальные параметры микроклимата приведены в таблице 5.1.


Таблица 5.1 Оптимальные параметры микроклимата

СезонТемпература воздуха, СОтносительная влажность, %Скорость движения воздуха,м/сХолодный и переходный (средне суточная температура меньше 10 ºС)22-2460-400.1Теплый (среднесуточная температура воздуха 10 ºС и выше)21-23 23-2460-40 60-400.1 0.2

Запылённость воздуха не должна превышать 0.75 мг/м3. На одного инженера - программиста должен приходиться объём помещения 15м3 при площади 4.5 м2 (без учёта проходов и оборудования). В течение трудового дня необходимо обеспечить воздухообмен помещения объёмом 25-50 м3, отвод влаги 350-500 г и тепла 50 кДж на каждый килограмм массы тела работающего.

  1. Требования к уровню шума (ГОСТ 12.1.003-83. Шум).

Уровень шума для инженера - программиста составляет не более 50 дБ.

  1. Требования к освещенности;

Нормативное значение коэффициента естественного освещения (КЕО) при боковом освещении равно 1.3 %, освещённость при работе с экраном дисплея - 200 лк, при работе с экраном дисплея и документом - 300 лк.

  1. Требования безопасности к излучению от дисплея.

В стандарт Р 50948-96 и в СНиП включены требования и нормы на параметры излучений дисплеев (они соответствуют шведскому стандарту): напряженность электромагнитного поля в 50 сантиметрах вокруг дисплея по электрической составляющей равна 2.5 В/м.

Плотность магнитного потока в 50 сантиметрах вокруг дисплея составляет 250 нТл в диапазоне частот 5 Гц-2КГц; поверхностный электростатический потенциал составляет 500 В. Время работы за дисплеем не должно превышать 4-х часов в сутки.

  1. Требования эргономики и технической эстетики (ГОСТ 12.2.032-78. Рабочее место при выполнении работ сидя).

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

Рабочее место оператора ЭВМ состоит из монитора, системного блока, клавиатуры, мыши, принтера. Клавиатура должна быть расположена непосредственно перед оператором. Расстояние от глаз оператора до монитора должно составлять 0.5 - 0.7 м. На столе, на котором расположена ПЭВМ, должно оставаться место для наглядного, графического материала, для возможности работать с литературой, делать какие-либо пометки.

К размерам рабочего места предъявляются требования:

-высота рабочей поверхности 655 мм;

-высота сидения 420 мм (желательно регулируемого);

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

-размеры пространства для ног 650x500x600.

  1. Требования к выполнению правил пожарной безопасности.

В случае пожара необходимо:

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

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

-приступить к тушению пожара имеющимися средствами (огнетушитель, песок и т.д.);

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

  1. Требования к электробезопасности.

Рассмотрим требования безопасности при работе с ЭВМ. Работа производится в лаборатории, где стоят точные приборы.

Следовательно, это подразделение можно отнести к 1 классу помещений по степени опасности поражения электрическим током. К 1 классу относятся помещения без повышенной опасности: сухие, беспыльные помещения с нормальной температурой воздуха, изолирующими (например, деревянными полами), не имеющими или имеющими очень мало заземленных предметов.

ГОСТ 12.2.007-75 подразделяет электрические изделия по способу защиты человека от поражения электрическим током на пять классов: 0, 01, 1, 2, 3.

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

Опасность поражения человека электрическим током определяется множеством факторов:

-индивидуальные особенности людей;

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

-путь тока в теле человека;

-род и частота тока.

Для данного случая определяющими факторами являются род тока в цепи и его величина.

Для обеспечения электробезопасности используется защитное заземление.

Каждому работающему в лаборатории следует помнить:

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

-с неисправным оборудованием не работать;

-не загромождать рабочее место посторонними предметами;

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

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

При поражении электрическим током следует:

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

-вызвать врача.

5.3 Создание условий для организации режима труда и отдыха при работе с ПЭВМ


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

Виды трудовой деятельности разделяются на 3 категории тяжести и напряженности, каждая из которых подразделяется на 3 группы:

-группа А - работа по считыванию информации с экрана ПЭВМ с предварительным запросом;

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

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

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

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

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

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

Для 8-часовой рабочей смены при работе с ПЭВМ регламентированные перерывы рекомендуется установить:

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

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

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

При работе с ПЭВМ в ночную смену (с 22 до 6 часов) независимо от вида и категории трудовой деятельности, продолжительность регламентированных перерывов увеличивается на 60 минут.

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

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


5.4 Экологичность проекта


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

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

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

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

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

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

Экологические проблемы человечества тесно сопряжены с экономическими и социальными проблемами. Региональные экологические проблемы часто становятся прямым источником имущественного неравенства, социальных и геополитических коллизий [13].

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

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

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

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

-Выработка критериев оптимизации - выбора наиболее согласованного с экологическим императивом и экологически ориентированного социально - экономического развития общества - экоразвития.

Формирование такой стратегии поведения человеческого общества, такой экономики и таких технологий, которые приведут масштабы и характер хозяйственной деятельности в соответствие с экологической выносливостью природы и остановят глобальный экологический кризис [13].

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

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

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

-материального стимулирования природоохранной деятельности, стремящегося сделать её экономически выгодной для предприятий;

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

Охране подлежат следующие объекты:

-естественные экологические системы, озоновый слой атмосферы;

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

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

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

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

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

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

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

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

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

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


ЗАКЛЮЧЕНИЕ


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

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

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

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


СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ


1. Айзерман М.А., Браверман Э.М., Розоноэр Л.И. Метод потенциальных функций в теории обучения машин. - М.: Наука, 2004. - 384 с.

. Горбань А., Россиев Д. Нейронные сети на персональном компьютере. //Новосибирск, Наука, 1996. - C 114 - 119.

. Журавлев Ю.И. Об алгебраическом подходе к решению задач распознавания или классификации // Проблемы кибернетики. М.: Наука, 2005. - Вып. 33. С. 5-68

. Журавлев Ю.И. Избранные научные труды. - Изд. Магистр, 2002. - 420 с.

. Мазуров В.Д. Комитеты систем неравенств и задача распознавания // Кибернетика, 2004, № 2. С. 140-146.

. Потапов А.С. Распознавание образов и машинное восприятие. - С-Пб.: Политехника, 2007. - 548 с

. Минский М., Пейперт С. Персептроны. - М.: Мир, 2007. - 261 с.

. Растригин Л. А., Эренштейн Р. Х. Метод коллективного распознавания. 79 с. ил. 20 см., М. Энергоиздат, 2006. - 80 с.

. Рудаков К.В. Об алгебраической теории универсальных и локальных ограничений для задач классификации // Распознавание, классификация, прогноз. Математические методы и их применение. Вып. 1. - М.: Наука, 2007. - С. 176-200.

. Фу К. Структурные методы в распознавании образов. - М.: Мир, 2005. - 144 с.


Приложение А


Листинг кода программы

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

#include <vcl.h>

#include <time.h>

#include <dir.h>

#include <string.h>

#pragma hdrstop

#include "n1.h"

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

#pragma package(smart_init)

#pragma link "CSPIN"

#pragma resource "*.dfm"*frm;file_name; //путь к изображениюDiagramm(void); //декларирование процедуры::TBitmap *im_s = new Graphics::TBitmap(); ::TBitmap *im_r = new Graphics::TBitmap();

float mx5[5][5]; //массив для фильтров, использующих матрицу 5*5mx3[3][3]; //массив для фильтров, использующих матрицу 3*3cR, cG, cB; //переменные-накопители составляющих цветаRasped[3][255]; //массив для построения графика цветового распределения

bool move, diag_vis;poz; //позиция объектов типа TImage

int iW, iH; //длина и высота рисунка

int i, j, xj, yi, steps, step; //переменные циклов

int add, add_user; //корректировка яркости при использовании фильтраprogress; //характеристика видимости полосы прогресса_t clockB, clockE; //время начала и окончания операции

//===========================================================================*current_directory(char *path) //функция формирования пути директории, в которой находится приложение

{(path, "X:\);[0] = 'A' + getdisk();(0, path+3);(path);

}

//===========================================================================

__fastcall Tfrm::Tfrm(TComponent* Owner) //инициализация приложения

: TForm(Owner)

{curdir[MAXPATH];

current_directory(curdir); //определить текущую директорию

TIniFile *ini;= new TIniFile(strcat(curdir, "\\settings.ini"));

//запись данных в файл настроек "settings.ini"

//позиция>Top = ini->ReadInteger("Форма", "Сверху", 100 );>Left = ini->ReadInteger("Форма", "Слева", 100 );

//размер>Width = ini->ReadInteger("Форма", "Длина", 700 );>Height = ini->ReadInteger("Форма", "Высота", 500 );


//пользовательские настройки>m_progress->Checked = ini->ReadBool( "Вид", "Прогресс", false);

frm->pBar->Visible = frm->m_progress->Checked;>m_ontop->Checked = ini->ReadBool( "Вид", "Поверх", false);(frm->m_ontop->Checked) frm->FormStyle = fsStayOnTop;>c_3d->Checked = ini->ReadBool( "Вид", "3d", false);>View3D = frm->c_3d->Checked;ini;

}

//===========================================================================__fastcall Tfrm::FormClose(TObject *Sender, TCloseAction &Action) //закрытие формы

{curdir[MAXPATH];_directory(curdir);*ini;= new TIniFile(strcat(curdir, "\\settings.ini"));

//запись данных в файл настроек "settings.ini"

if(frm->WindowState == wsMaximized) frm->WindowState = wsNormal;

//позиция>WriteInteger("Форма", "Сверху", frm->Top);>WriteInteger("Форма", "Слева", frm->Left);

//размер>WriteInteger("Форма", "Длина", frm->Width);>WriteInteger("Форма", "Высота", frm->Height);

//пользовательские настройки>WriteBool("Вид", "Прогресс", frm->m_progress->Checked);

ini->WriteBool("Вид", "Поверх", frm->m_ontop->Checked);>WriteBool("Вид", "3D", frm->c_3d->Checked);

delete ini;

}

//===========================================================================CheckRGB() //процедура проверки нахождения переменных-составляющих цвета в диапазоне допустимых значений

{(cR < 0) cR = 0;(cG < 0) cG = 0;(cB < 0) cB = 0;

//---------------------------------------(cR > 255) cR = 255;(cG > 255) cG = 255;(cB > 255) cB = 255;

}

//===========================================================================LoadBMP() //процедура загрузки изображения

{

im_s->LoadFromFile(file_name);_r->LoadFromFile(file_name);

if(im_s->PixelFormat == pf24bit) //проверка формата изображения

{>i_s->Picture->LoadFromFile(file_name);>i_r->Picture->LoadFromFile(file_name);= im_s->Width;= im_r->Height;>i_s->Width = iW;>i_s->Height = iH;>i_r->Width = iW;>i_r->Height = iH;>pBar->Position = 0;>pBar->Max = iH;>tb_realsize->Enabled = false;>m_realsize->Enabled = false;

if(diag_vis) //если отображается диаграмма распределения цветов

{= clock();();= clock() - clockB;>Caption = "Статус: ожидание. Время = " + IntToStr(clockE);

}

}(Application->Handle, "Данный цветовой формат не поддерживается. \nВыберите 24-х разрядный рисунок.", "Ошибка!", MB_OK | MB_ICONSTOP);

}

//===========================================================================GetR(int x, int y) //получение по координатам красной состовляющей пикселя цвета

{*ptr;Ret;= (Byte*)im_s->ScanLine[y];= ptr[3*x + 2];Ret;

}

//---------------------------------------------------------------------------GetG(int x, int y) //получение по координатам зеленой состовляющей пикселя цвета

{*ptr;Ret;= (Byte*)im_s->ScanLine[y];= ptr[3*x + 1];Ret;

}

//---------------------------------------------------------------------------GetB(int x, int y) //получение по координатам синей состовляющей пикселя цвета

{*ptr;Ret;= (Byte*)im_s->ScanLine[y];= ptr[3*x];Ret;

}

//===========================================================================SetR(int x, int y, Byte Color) //установка красной составляющей цвета по координатам

{*ptr;= (Byte*)im_r->ScanLine[y];[3*x + 2]=Color;

}

//---------------------------------------------------------------------------SetG(int x, int y, Byte Color) //установка зеленой составляющей цвета по координатам

{*ptr;= (Byte*)im_r->ScanLine[y];[3*x + 1] = Color;

}

//---------------------------------------------------------------------------SetB(int x, int y, Byte Color) //установка синей составляющей цвета по координатам

{*ptr;= (Byte*)im_r->ScanLine[y];

ptr[3*x]=Color;

}

//===========================================================================Paint3x() //процедура для фильтров, основанных на матрице 3*3

{= StrToIntDef(frm->c_steps->Text, 1); //получить количесво проходов= clock(); //получить время начала выполнения

progress = frm->m_progress->Checked;(step = 1; step <=steps; step++) //цикл, реализующий проходы

{_r->SaveToFile("temp.bmp");_s->LoadFromFile("temp.bmp");>i_s->Canvas->Draw(0, 0, im_s);>ProcessMessages(); //обработка внешних сообщений= StrToIntDef(frm->c_color_add->Text, 0) + add_user; //результирующая дополнительная яркость

for(i=2; i<iH-2; i++) //проход по высоте

{(j=2; j<iW-2; j++) //проход по длине

{= cB = cG = 0.0;(yi=-1; yi<2; yi++)

{(xj=-1; xj<2; xj++)

{+= float((GetR(j+xj, i+yi))) * mx3[1+yi][1+xj];+= float((GetG(j+xj, i+yi))) * mx3[1+yi][1+xj];+= float((GetB(j+xj, i+yi))) * mx3[1+yi][1+xj];

}

}

//---------------------------------------(add)

{+= add;+= add;+= add;

}

//---------------------------------------();

//---------------------------------------(j, i, cR);(j, i, cG);(j, i, cB);(progress) frm->pBar->Position = i;

}

}

}>i_r->Canvas->Draw(0, 0, im_r);

clockE = clock() - clockB; //расчет времени, за которое была выполнена операция>Caption = "Статус: ожидание. Время обработки = " + IntToStr(clockE) + " мСек.";>pBar->Position=0;

}

//===========================================================================Paint5x() //процедура для фильтров, основанных на матрице 5*5

{= StrToIntDef(frm->c_steps->Text, 1);= clock();= frm->m_progress->Checked;(step = 1; step <=steps; step++)

{_r->SaveToFile("temp.bmp");_s->LoadFromFile("temp.bmp");>i_s->Canvas->Draw(0, 0, im_s);>ProcessMessages();= StrToIntDef(frm->c_color_add->Text, 0) + add_user;(i=2; i<iH-2; i++)

{(j=2; j<iW-2; j++)

{= cB = cG = 0.0;(yi=-2; yi<3; yi++)

{(xj=-2; xj<3; xj++)

{+= float((GetR(j+xj, i+yi))) * mx5[2+yi][2+xj];+= float((GetG(j+xj, i+yi))) * mx5[2+yi][2+xj];+= float((GetB(j+xj, i+yi))) * mx5[2+yi][2+xj];

}

}

//---------------------------------------(add)

{+= add;+= add;+= add;

}

//---------------------------------------();

//---------------------------------------(j, i, cR);(j, i, cG);(j, i, cB);(progress) frm->pBar->Position = i;

}

}

}>i_r->Canvas->Draw(0, 0, im_r);= clock() - clockB;>Caption = "Статус: ожидание. Время = " + IntToStr(clockE);>pBar->Position=0;

}

//===========================================================================__fastcall Tfrm::FormActivate(TObject *Sender) //активация формы

{

im_s->PixelFormat = pf24bit;

im_r->PixelFormat = pf24bit;

}

//---------------------------------------------------------------------------__fastcall Tfrm::FormResize(TObject *Sender) //изменение размера формы

{

p_s->Width = frm->Width / 2 - 5;

}

//---------------------------------------------------------------------------__fastcall Tfrm::t_scaleChange(TObject *Sender) //изменение значения ползунка масштаба

{iPos = t_scale->Position;= iPos - iPos % 5;_scale->Position = iPos;_s->Width = iPos * iW / 100;_s->Height = iPos * iH / 100;_r->Width = iPos * iW / 100;_r->Height = iPos * iH / 100;_scale->Text = iPos;_scale->Position = iPos;

if(i_s->Width == iW && i_s->Height == iH) //если в результате изменения масштаба размер рисунка равен размеру изображения

{>tb_realsize->Enabled = false;>m_realsize->Enabled = false;

}

{>tb_realsize->Enabled = true;>m_realsize->Enabled = true;

}

}

//---------------------------------------------------------------------------__fastcall Tfrm::b_scaleClick(TObject *Sender) //установить масштаб вручную

{

t_scale->Position = StrToIntDef(e_scale->Text, 100);

}

//---------------------------------------------------------------------------__fastcall Tfrm::u_scaleClick(TObject *Sender, TUDBtnType Button) //выбрать масштаб при помощи стрелок

{_scale->Position = u_scale->Position;

}

//===========================================================================__fastcall Tfrm::i_sMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) //при нажатии кнопки мыши над рисунком

{(Button == mbLeft) //если нажата левая кнопка мыши

{.x = X;.y = Y;= true;

}

}

//---------------------------------------------------------------------------__fastcall Tfrm::i_sMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) //при перемещении курсора мыши над рисунком

{(move) //если нажата левая кнопка мыши, изменить положение рисунка

{_r->Left = i_s->Left + X - poz.x;_r->Top += Y - poz.y;_s->Left = i_s->Left + X - poz.x;_s->Top += Y - poz.y;

}(m_fltr_color->Checked) //если активен режим отсеивания цвета

{

//получить цвет, на который указывает курсор и закрасить этим цветом рисунок предпросмотра

TColor clr;= i_s->Canvas->Pixels[X][Y];_color->Canvas->Brush->Color = clr;_color->Canvas->FillRect(i_color->Canvas->ClipRect);

}

}

//---------------------------------------------------------------------------__fastcall Tfrm::i_sMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) //кнопка мыши отпущена над рисунком

{(m_fltr_color->Checked && Button == mbRight) //если отпущена правая кнопка мыши и если активен режим отсеивания цвета

{clr;= i_s->Canvas->Pixels[X][Y]; //получить цвет пикселя, на который указывал курсор в момент отпускания кнопки мышиr, g, b;rzbrs_p, rzbrs_m; //положительное и отрицательное значения разброса

rzbrs_m = s_color_minus->Value;_p = s_color_plus->Value;= GetRValue(clr);= GetGValue(clr);

cB = GetBValue(clr);Cvet = 0; //счетчик пикселей цвета, попадающих в допустимый диапазон

for(i=0; i<iH; i++)

{(j=0; j<iW; j++)

{= GetR(j, i);= GetG(j, i);= GetB(j, i);(r >= cR-rzbrs_m && r <= cR+rzbrs_p && g >= cG-rzbrs_m && g <= cG+rzbrs_p && b >= cB-rzbrs_m && b <= cB+rzbrs_p) //если цвет находится в допустимом диапазоне

{

//сделать этот цвет белым и увеличить счетчик

SetR(j, i, 255);(j, i, 255);(j, i, 255);++;

}

{

//сделать этот цвет черным(j, i, 1);

SetG(j, i, 1);(j, i, 1);

}

}

}_r->Canvas->Draw(0, 0, im_r);

//расчет общей площади изображения и площади отсеянных пикселей

char St[256];(iH*iW, St, 10);(St, " кв.пикс.");>Label6->Caption = St;(St, "");(Cvet, St, 10);(St," кв.пикс.");>Label7->Caption = St;

//расчет процента отсеянных пикселейproc = float(Cvet)*100 / float((iH*iW));*= 100;= long(proc);/= 100;>Label9->Caption = FloatToStr(proc);

}(Button == mbLeft) move = false; //если отпущена левая кнопка мыши

}

//===========================================================================__fastcall Tfrm::i_rMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) //при нажатии кнопки мыши над рисунком

{

if(Button == mbLeft)

{.x = X;.y = Y;= true;

}

}

//---------------------------------------------------------------------------__fastcall Tfrm::i_rMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) //при перемещении курсора мыши над рисунком

{(move)

{_r->Left = i_s->Left + X - poz.x;_r->Top += Y - poz.y;_s->Left = i_s->Left + X - poz.x;_s->Top += Y - poz.y;

}

}

//---------------------------------------------------------------------------__fastcall Tfrm::i_rMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) //кнопка мыши отпущена над рисунком

{= false;

}

//===========================================================================__fastcall Tfrm::m_openClick(TObject *Sender) //выбор изображения

{(open_dlg->Execute()) //если в диалоговом окне открытия рисунка было выбрано подходящее изображение и нажата кнопка "открыть"

{_name = open_dlg->FileName; //получить путь к изображению();

}

}

//---------------------------------------------------------------------------__fastcall Tfrm::m_progressClick(TObject *Sender) //скрыть или показать полосу прогресса

{>pBar->Visible = frm->m_progress->Checked;

}

//---------------------------------------------------------------------------__fastcall Tfrm::ExitClick(TObject *Sender) //закрыть приложение

{>Terminate();

}

//---------------------------------------------------------------------------__fastcall Tfrm::m_undoClick(TObject *Sender) //отмена последней операции

{_r->LoadFromFile("temp.bmp");_r->Picture->LoadFromFile("temp.bmp");

}

//---------------------------------------------------------------------------__fastcall Tfrm::m_reloadClick(TObject *Sender) //перезагрузить изображение

{(file_name != "\0") LoadBMP();

}

//---------------------------------------------------------------------------__fastcall Tfrm::m_saveasClick(TObject *Sender) //сохранение изображения

{(save_dlg->Execute()) //если в диалоговом окне сохранения рисунка было выбрано подходящее имя и нажата кнопка "сохранить"

{_r->SaveToFile(save_dlg->FileName);

}

}

//---------------------------------------------------------------------------__fastcall Tfrm::m_ontopClick(TObject *Sender) //установить стиль окна

{(frm->m_ontop->Checked) frm->FormStyle = fsStayOnTop; //всегда сверху

else frm->FormStyle = fsNormal; //нормальное отображение

}

//---------------------------------------------------------------------------__fastcall Tfrm::m_zoominClick(TObject *Sender) //увеличение масштаба

{>t_scale->Position *= 1.5;

}

//---------------------------------------------------------------------------__fastcall Tfrm::m_zoomoutClick(TObject *Sender) //уменьшение масштаба

{>t_scale->Position /= 1.5;

}

//---------------------------------------------------------------------------__fastcall Tfrm::m_realsizeClick(TObject *Sender) //реальный размер

{>t_scale->Position = 100;

}

//---------------------------------------------------------------------------__fastcall Tfrm::m_clearposClick(TObject *Sender) //сброс позиции

{_s->Left = 2;_s->Top = 2;_r->Left = 2;_r->Top = 2;

}

//===========================================================================__fastcall Tfrm::N1Click(TObject *Sender) //контур Лапласа

{>Caption = "Статус: обработка изображения";

//-----------------------------------------------------------------------[0][0] = mx3[0][1] = mx3[0][2] =[1][0] = mx3[1][2] =

mx3[2][0] = mx3[2][1] = mx3[2][2] = -1.0;[1][1] = 8.0;

//-----------------------------------------------------------------------_user = 128;x();

}

//===========================================================================__fastcall Tfrm::N2Click(TObject *Sender) //кора

{>Caption = "Статус: обработка изображения";

//-----------------------------------------------------------------------[0][0] = mx5[0][1] = mx5[0][2] = mx5[0][3] = mx5[0][4] =[1][0] = mx5[1][4] =[2][0] = mx5[2][4] =[3][0] = mx5[3][4] =[4][0] = mx5[4][1] = mx5[4][2] = mx5[4][3] = mx5[4][4] = -1.0;[1][1] = mx5[1][2] = mx5[1][3] =[2][1] = mx5[2][3] =

mx5[3][1] = mx5[3][2] = mx5[3][3] = -1.0;[2][2] = 25.0;

//-----------------------------------------------------------------------_user = 0;x();

}

//===========================================================================__fastcall Tfrm::N3Click(TObject *Sender) //тиснение вогнутое

{>Caption = "Статус: обработка изображения";

//-----------------------------------------------------------------------[0][0] = mx3[0][2] =[2][0] = mx3[2][2] = 0.0;[0][1] =

mx3[1][2] = 1.0;[1][0] =[2][1] = -1.0;[1][1] = 0.0;

//-----------------------------------------------------------------------_user = 128;x();

}

//---------------------------------------------------------------------------__fastcall Tfrm::N4Click(TObject *Sender) //тиснение выпуклое

{>Caption = "Статус: обработка изображения";

//-----------------------------------------------------------------------[0][0] = mx3[0][2] =[2][0] = mx3[2][2] = 0.0;

//-----------------------------------------------------------------------[0][1] =

mx3[1][2] = -1.0;

//-----------------------------------------------------------------------[1][0] =[2][1] = 1.0;[1][1] = 0.0;

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

add_user = 128;

Paint3x();

}

//---------------------------------------------------------------------------__fastcall Tfrm::N5Click(TObject *Sender) //увеличить резкость

{>Caption = "Статус: обработка изображения";

//-----------------------------------------------------------------------[0][0] = mx3[0][1] = mx3[0][2] =[1][0] = mx3[1][2] =

mx3[2][0] = mx3[2][1] = mx3[2][2] = -0.1;[1][1] = 1.8;

//-----------------------------------------------------------------------_user = 0;x();

}

//---------------------------------------------------------------------------__fastcall Tfrm::N6Click(TObject *Sender) //уменьшить резкость

{>Caption = "Статус: обработка изображения";

//-----------------------------------------------------------------------[0][0] = mx3[0][1] = mx3[0][2] =[1][0] = mx3[1][2] =

mx3[2][0] = mx3[2][1] = mx3[2][2] = 0.05;[1][1] = 0.6;

//-----------------------------------------------------------------------_user = 0;x();

}

//---------------------------------------------------------------------------__fastcall Tfrm::n7Click(TObject *Sender) //уменьшить резкость

{>Caption = "Статус: обработка изображения";

//-----------------------------------------------------------------------[0][0] = mx5[0][4] = mx5[4][0] = mx5[4][4] = 1.0/74;[0][1] = mx5[0][3] = mx5[4][1] = mx5[4][3] = 2.0/74;[1][0] = mx5[1][4] = mx5[3][0] = mx5[3][4] = 2.0/74;[0][2] = mx5[2][0] = mx5[2][4] = mx5[4][2] = 3.0/74;[1][1] = mx5[1][3] = mx5[3][1] = mx5[3][3] = 4.0/74;[1][2] = mx5[2][1] = mx5[2][3] = mx5[3][2] = 5.0/74;

mx5[2][2] = 6.0/74;

//-----------------------------------------------------------------------_user = 0;x();

}

//---------------------------------------------------------------------------__fastcall Tfrm::n11Click(TObject *Sender) //контур 1

{>Caption = "Статус: обработка изображения";

//-----------------------------------------------------------------------[0][0] = mx3[0][2] =[2][0] = mx3[2][2] = 0.0;[0][1] =

mx3[1][0] = mx3[1][2] =[2][1] = -1.0;[1][1] = 4.0;

//-----------------------------------------------------------------------_user = 128;x();

}

//---------------------------------------------------------------------------__fastcall Tfrm::n21Click(TObject *Sender) //контур 2

{>Caption = "Статус: обработка изображения";

//-----------------------------------------------------------------------[0][0] = mx3[0][2] =[2][0] = mx3[2][2] = 1.0;[0][1] =

mx3[1][0] = mx3[1][2] =[2][1] = -2.0;[1][1] = 4.0;

//-----------------------------------------------------------------------_user = 64;x();

}

//---------------------------------------------------------------------------__fastcall Tfrm::m_fltr_colorClick(TObject *Sender) //активация или дезактивация режима отсеивания цвета

{pT, pL;(m_fltr_color->Checked) //если режим активирован

{>m_realsize->Click();->Enabled=false;_zoomout->Enabled=false;_zoomin->Enabled=false;_zoomout->Enabled=false;_zoomin->Enabled=false;_r->Picture->SaveToFile("temp.bmp");_s->Picture->LoadFromFile("temp.bmp");_s->Cursor = crDrag;= p_scale->Top;= p_scale->Left;_scale->Visible = false;_color->Visible = true;_color->Top = pT;_color->Left = pL;_color->Canvas->Brush->Color = clWhite;_color->Canvas->FillRect(i_color->Canvas->ClipRect);

i_s->Hint = "Нажмите правую кнопку для выбора цвета";

N10->Enabled = false;->Enabled = false;->Enabled = false;->Enabled = false;->Enabled = false;->Enabled = false;->Enabled = false;->Enabled = false;

}//если режим дезактивирован

{_zoomout->Enabled=true;_zoomin->Enabled=true;_zoomout->Enabled=true;_zoomin->Enabled=true;->Enabled=true;_s->Cursor = crSizeAll;= p_color->Top;= p_color->Left;_color->Visible = false;_scale->Visible = true;_scale->Top = pT;_scale->Left = pL;

i_s->Hint = "Нажмите и удерживайте левую кнопку, чтобы переместить рисунок";

N10->Enabled = true;->Enabled = true;->Enabled = true;->Enabled = true;->Enabled = true;->Enabled = true;->Enabled = true;->Enabled = true;

}

}

//---------------------------------------------------------------------------__fastcall Tfrm::m_helptextClick(TObject *Sender) //справка

{(Application->Handle, 0, "ReadMe.doc", 0, 0, SW_SHOW);

}

//---------------------------------------------------------------------------__fastcall Tfrm::m_aboutClick(TObject *Sender) //о программе

{(Application->Handle, "Программа математической фильтрации \nи анализа изображений.\nВсе права защищены. ", "О программе", MB_ICONASTERISK | MB_OK);

}

//---------------------------------------------------------------------------__fastcall Tfrm::N12Click(TObject *Sender) //движение

{Zerno = 9;= StrToIntDef(frm->c_color_add->Text, 0);

frm->Caption = "Статус: обработка изображения";

steps = StrToIntDef(frm->c_steps->Text, 1);= frm->m_progress->Checked;= clock();(step = 1; step<=steps; step++)

{_r->SaveToFile("temp.bmp");_s->LoadFromFile("temp.bmp");>i_s->Canvas->Draw(0, 0, im_s);>ProcessMessages();(i=0; i<iH; i++)

{(j=Zerno; j<(iW-Zerno); j++)

{= cG = cB = 0;(int k=-Zerno; k<=(Zerno+1); k++)

{+= GetR(j+k, i);+= GetG(j+k, i);+= GetB(j+k, i);

}/= (Zerno*2+1);/= (Zerno*2+1);/= (Zerno*2+1);(add)

{+= add;+= add;+= add;

}(); (int k=-Zerno;k<(Zerno+1);k++)

{(j+k, i, cR);(j+k, i, cG);(j+k, i, cB);

}(progress) frm->pBar->Position = i;

}

}

}= clock() - clockB;>i_r->Canvas->Draw(0, 0, im_r);>Caption = "Статус: ожидание. Время = " + IntToStr(clockE);>pBar->Position=0;

}

//---------------------------------------------------------------------------__fastcall Tfrm::N14Click(TObject *Sender) //негатив

{>Caption = "Статус: обработка изображения";

steps = StrToIntDef(frm->c_steps->Text, 1);= clock();*ptr;(step = 1; step <=steps; step++)

{>ProcessMessages();_r->SaveToFile("temp.bmp");_s->LoadFromFile("temp.bmp");(int y = 0; y < iH; y++)

{= (Byte*)im_r->ScanLine[y];(int x = 0; x < iW * 3; x+=3)

{[x] = (Byte)(256 - ptr[x]);[x+1] = (Byte)(256 - ptr[x+1]);[x+2] = (Byte)(256 - ptr[x+2]);

}

}>i_r->Canvas->Draw(0, 0, im_r);

}= clock() - clockB;>Caption = "Статус: ожидание. Время = " + IntToStr(clockE);

}

//---------------------------------------------------------------------------__fastcall Tfrm::N15Click(TObject *Sender) //оттенки серого

{>Caption = "Статус: обработка изображения";

steps = StrToIntDef(frm->c_steps->Text, 1);= clock();*ptr;(step = 1; step <=steps; step++)

{>ProcessMessages();_r->SaveToFile("temp.bmp");_s->LoadFromFile("temp.bmp");r = 0, g = 0, b = 0, color = 0;(int y = 0; y < iH; y++)= (Byte*)im_r->ScanLine[y];(int x = 0; x < iW* 3; x+=3)

{= ptr[x];= ptr[x+1];= ptr[x+2];= (r + g + b) / 3;[x] = color;[x+1] = color;[x+2] = color;

}

}>i_r->Canvas->Draw(0, 0, im_r);

}= clock() - clockB;>Caption = "Статус: ожидание. Время = " + IntToStr(clockE);

}

//--------------------------------------------------------------------------- __fastcall Tfrm::N17Click(TObject *Sender) //активация или дезактивация режима диаграммы цветовых составляющих

{(N17->Checked) //режим активирован

{>Caption = "Статус: обработка изображения";

Application->ProcessMessages();= clock();_r->SaveToFile("temp.bmp");_s->LoadFromFile("temp.bmp");>i_s->Visible = false;_fltr_color->Enabled = false;>Panel1->Visible = true;>Visible = true;_vis = true;->Enabled = false;->Enabled = false;->Enabled = false;->Enabled = false;->Enabled = false;->Enabled = false;->Enabled = false;->Enabled = false;();= clock() - clockB;>Caption = "Статус: ожидание. Время = " + IntToStr(clockE);

}//режим дезактивирован

{>i_s->Visible=true;_fltr_color->Enabled = true;>Panel1->Visible = false;>Visible = false;_vis = false;->Enabled = true;->Enabled = true;->Enabled = true;->Enabled = true;->Enabled = true;->Enabled = true;->Enabled = true;->Enabled = true;

}

}

//---------------------------------------------------------------------------Diagramm() //процедура построения диаграммы

{(i=0; i<3; i++) //очистить массив(j=0; j<256; j++)[i][j]=0;

//очистить график

frm->s_r->Clear();

frm->s_g->Clear();

frm->s_b->Clear();

long rr, gg, bb;

//заполнние массива

for(i=0; i<iH; i++)

{(j=0; j<iW; j++)

{= GetR(j, i);= GetG(j, i);= GetB(j, i);[0][rr]++;[1][gg]++;[2][bb]++;

}

}

//построение графиков(i=1; i<255; i++)

{>s_r->AddXY(i, Rasped[0][i]);>s_g->AddXY(i, Rasped[1][i]);>s_b->AddXY(i, Rasped[2][i]);

}= false;_vis = true;

}

//---------------------------------------------------------------------------__fastcall Tfrm::b_corrClick(TObject *Sender) //произвести цветовую коррекцию

{_r->SaveToFile("temp.bmp");_s->LoadFromFile("temp.bmp");r, g, b;= frm->Red_raspred->Value;= frm->Green_raspred->Value;= frm->Blue_raspred->Value;(i=0; i<iH; i++)

{

for(j=0; j<iW; j++)

{= GetR(j, i);= GetG(j, i);= GetB(j, i);+= r;+= g;+= b;();(j, i, cR);(j, i, cG);(j, i, cB);

}

}_r->Canvas->Draw(0, 0, im_r);_s = im_r;(); //обновить диаграмму

}

//---------------------------------------------------------------------------to_color(int num) //процедура приведения к цвету

{>Caption = "Статус: обработка изображения";

steps = StrToIntDef(frm->c_steps->Text, 1);= cG = cB = 0;= clock();*ptr;(step = 1; step<=steps; step++)

{>ProcessMessages();_r->SaveToFile("temp.bmp");_s->LoadFromFile("temp.bmp");r = 0, g = 0, b = 0;(int y = 0; y < iH; y++)

{= (Byte*)im_r->ScanLine[y];(int x = 0; x < iW * 3; x+=3)

{= ptr[x];= ptr[x+1];

b = ptr[x+2];

//получить среднее значение нужного цвета

if(num == 1) cR = (r + g + b) / 3;(num == 2) cG = (r + g + b) / 3;(num == 3) cB = (r + g + b) / 3;[x] = cB;[x+1] = cG;[x+2] = cR;

}

}>i_r->Canvas->Draw(0, 0, im_r);

}= clock() - clockB;>Caption = "Статус: ожидание. Время = " + IntToStr(clockE);

}__fastcall Tfrm::N18Click(TObject *Sender) //привести к красному цвету

{

to_color(1);

}

//---------------------------------------------------------------------------__fastcall Tfrm::N19Click(TObject *Sender) //привести к синему цвету

{_color(3);

}

//---------------------------------------------------------------------------__fastcall Tfrm::N20Click(TObject *Sender) //привести к зеленому цвету

{_color(2);

}

//---------------------------------------------------------------------------__fastcall Tfrm::c_3dClick(TObject *Sender) //2D- или 3D-режим отображения графика

{>View3D = c_3d->Checked;

}

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



Дипломная работа Разработка программных средств по распознаванию образов Содержание ВВЕ

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ