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

 

Введение


Ещё в середине XX века обработка изображений была по большей части аналоговой и выполнялась оптическими устройствами. Подобные оптические методы до сих пор важны, в таких областях как, например, голография. Тем не менее, с резким ростом производительности компьютеров, эти методы всё в большей мере вытеснялись методами цифровой обработки изображений. Методы цифровой обработки изображений обычно являются более точными, надёжными, гибкими и простыми в реализации, нежели аналоговые методы. В цифровой обработке изображений широко применяется специализированное оборудование, такое как процессоры с конвейерной обработкой инструкций и многопроцессорные системы. В особенной мере это касается систем обработки видео. Обработка изображений выполняется также с помощью программных средств компьютерной математики, например, MATLAB, Mathcad, Maple, Mathematica и др. Для этого в них используются как базовые средства, так и пакеты расширения Image Processing.

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

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

Поставлены следующие задачи работы:

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

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

разработать алгоритм обработки входных и выходных данных;

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

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


1. Общая часть


1.1 Анализ предметной области автоматизации обработки изображений для выделения границ на изображении в оттенках серого


1.1.1 Обработка изображения, основные понятия и определения

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

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

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

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

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


Таблица 1.1 - Глоссарий предметной области

№ТерминОпределение1Обработка изображенийЛюбая форма обработки информации, для которой входные данные представлены изображением, например, фотографиями или видеокадрами.2Выделение границТермин в теории обработки изображения и компьютерного зрения, частично из области поиска объектов и выделения объектов, основывается на алгоритмах, которые выделяют точки цифрового изображения, в которых резко изменяется яркость или есть другие виды неоднородностей.3ГрадиентВектор, своим направлением указывающий направление наискорейшего возрастания некоторой величины, значение которой меняется от одной точки пространства к другой, а по величине равный быстроте роста этой величины в этом направлении.4ТочкаПростейший графический примитив, имеющий нулевую размерность. Точка характеризуется только координатами своего местоположения.5СглаживаниеТехнология, использующаяся в обработке изображений с целью сделать границы кривых линий визуально более гладкими, убирая «зубцы», возникающие при растеризации на краях объектов6ВекторУпорядоченная пара точек, одна из которых называется началом, вторая - концом вектора.7ПиксельНаименьший логический элемент двумерного цифрового изображения в растровой графике.8Растровое изображениеПредставляет собой сетку пикселей или цветных точек на компьютерном мониторе, бумаге и других отображающих устройствах и материалах.9Графический форматСпособ записи графической информации

Растровая графика

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

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

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

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

Выделение границ

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

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

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

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

изменения глубины;

изменения ориентации поверхностей;

изменения в свойствах материала;

различие в освещении сцены.

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

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

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

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


1.1.2 Обзор существующего программного обеспечения для автоматизации выделения границ на изображении

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

Adobe Photoshop (AP) - многофункциональный графический редактор, разработанный и распространяемый фирмой Adobe Systems. В основном работает с растровыми изображениями, однако имеет некоторые векторные инструменты. На рисунке 1.1 показан интерфейс приложения.

Поддерживается обработка изображений, с глубиной цвета 8 бит 16 бит, и 32 бит Поддерживается обработка изображений, с глубиной цвета 8 бит, 16 бит и 32 бит (используются числа одинарной точности с плавающей запятой). Возможно сохранение в файле дополнительных элементов, как то: направляющих, каналов, путей обтравки слоёв, содержащих векторные и текстовые объекты. Файл может включать цветовые профили (ICC), функции преобразования цвета (transfer functions). Допускаются неквадратные пиксели.

Достоинства:

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

возможность работы с различными графическими форматами;

поддерживает работу со слоями.

Недостатки:

высокая стоимость;

сложность в освоении.

GIMP (GNU Image Manipulation Program) - растровый графический редактор, программа для создания и обработки растровой графики и частичной поддержкой работы с векторной графикой.

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

Достоинства:

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

бесплатен;

открытый исходный код;

имеет возможность свертки с заданной матрицей.

Недостатки:

не используются стандартные панели управления Windows;

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

Достоинства:

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

имеет много загружаемых модулей;

небольшой вес.

Недостатки:

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

выделение контура идет отдельным загружаемым модулем.


1.2 Разработка математической модели обработки изображений и выделения контуров в оттенках серого


1.2.1 Операторы Собеля, Шарра, Прюитта

Для выделения границ на изображении в оттенках серого применяется множество алгоритмов. Одним из таких алгоритмов является оператор Собеля.

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

Формула оператора Собеля (1.1): Gx и Gy - две матрицы, где каждая точка содержит приближенные производные по x и по y. Они вычисляются следующим образом путем умножения матрицы Gx и Gy и суммированием обоих матриц, в результате полученный результат записывается в текущие координаты x и y в новое изображение:


(1.1)


Матрицы Gy и Gx (1.2):

and (1.2)


Алгоритм оператора Прюитта [6] подобен алгоритму оператору Собеля, за исключением использования другой матрицы (1.3):


and (1.3)


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


(1.4)


1.2.2 Перекрестный оператор Робертса

Перекрёстный оператор Робертса - один из алгоритмов выделения границ, который вычисляет сумму квадратов разниц между диагонально смежными пикселами (1.5). Это может быть выполнено сверткой изображения с двумя ядрами[6]:


(1.5)


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

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


1.2.3 Оператор Кэнни

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

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


(1.6)


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


(1.7)

(1.8)


Угол направления вектора градиента округляется и может принимать такие значения: 0, 45, 90, 135.

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


1.2.4 Метод Лапласа

Метод Лапласа[8] осуществляет перемножение каждого элемента двумерной апертуры 3х3 на соответствующий элемент так называемой матрицы Лапласа (1.9):


0-10111-111111-14-11-21-1-21-1-210-10-1-1-1-111-1-11

1.2.5 Свертка изображения

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

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


1.3 Разработка структурно-функциональной модели автоматизации обработки изображений и выделения на них границ в оттенках серого на основе SADT-технологии


Бизнес-логика - совокупность правил, принципов, зависимостей поведения объектов предметной области, реализация правил и ограничений автоматизируемых операций. Реализация предметной области в информационной системе. [10]

Для описания бизнес логики используем методологию структурного анализа и проектирования SADT.

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

Диаграмма SADT состоит из:

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

Дуг - изображают взаимосвязь между объектами.

Главной активностью предметной области есть «Выделение границ на изображении». На вход подается исходное изображение, выбор алгоритма и параметры сглаживания.

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


Таблица 1.2 - Описание контекстной структурно-функциональной диаграммы нулевого уровня для процесса А0 «Выделение границ на изображении»

№Входные данныеУправлениеИсполнительВыходные данныеA0Исходное изображение. Параметры сглаживания. Выбор алгоритма.Поддерживаемый формат. Алгоритм сглаживания. Алгоритм преобразования к серому. Алгоритм поиска границ.ПользовательФайл с обработанным изображением

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

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


Таблица 1.3 - Описание первого уровня для процесса А0 «Выделение границ на изображении

№Наименование операцииЧем регламентируетсяВходыВыходыИсполнительА1Загрузка изображенияПоддерживаемый форматИсходное изображениеЗагруженное изображениеПользователь,А2Преобразование к серомуАлгоритм преобразования к серомуЗагруженное изображениеСерое изображениеПользовательА3Выполнение сглаживанияАлгоритм сглаживанияСерое изображение Параметры сглаживанияСглаженное серое изображениеПользовательА4Выделение границ на изображенииАлгоритм поиска границСглаженное серое; Изображение Выбор алгоритмаОбработанное изображениеПользовательА5Сохранение изображенияПоддерживаемый форматОбработанное изображениеФайл с обработанным изображениемПользователь

1.4 Техническое задание на разработку «Программного комплекса для автоматизации обработки изображения для выделения границ на изображении в оттенках серого»


1.4.1 Основание для разработки

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

Спец часть: Разработка программного обеспечения для реализации алгоритмов обработки изображения.


1.4.2 Назначение разработки

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

преобразовывать изображение к оттенкам серого;

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

выделять границы.


1.4.3 Требования к функциональным характеристикам

Ниже представлены требования к составу выполняемых функций:

обеспечивать импорт изображения

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

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

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

сохранять обработанное изображение


1.4.4 Требования к надежности

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

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


1.4.5 Условия эксплуатации

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

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


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

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

объем оперативной памяти не менее 1024 МБ;

процессор не ниже Pentium IV, мышь, клавиатура;

наличие свободного места на жестком диске в размере не менее 1 Гбайт;

Монитор.

1.4.7 Требования к информационной и программной совместимости

Система должна работать на платформах операционных систем Windows XP и выше.

Для обеспечения работоспособности ПК необходимо следующее программное обеспечение:.NET Framework 3.5.

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


1.4.8 Требования к программной документации

Предварительный состав программной документации установлен в соответствии с ГОСТ 19.101-77. Ниже перечислен список программных документов и их содержание.

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

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

Программа и методика испытаний - требования, подлежащие проверке при испытании программы, также порядок и методы контроля.

Техническое задание - настоящий документ.

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

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


1.4.9 Стадии и этапы разработки

Стадии и этапы разработки должны соответствовать ГОСТ 19.101-77

Стадии и этапы разработки приведены в таблице 1.5

Таблица 1.4 - Стадии и этапы разработки ПК для автоматизации обработки изображений и выделения границ

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

1.4.10 Порядок контроля и приемки

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

Контроль программного продукта осуществляется в следующем порядке.

проверка функциональности разработанного ПО;

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

проверка выходных данных;

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

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


1.5 Разработка логической модели ПК


1.5.1 Разработка диаграммы прецедентов использования

Диаграмма прецедентов - диаграмма, на которой отражены отношения, существующие между актёрами и прецедентами. Основная задача - представлять собой единое средство, дающее возможность заказчику, конечному пользователю и разработчику совместно обсуждать функциональность и поведение системы[11].

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

Диаграммы прецедентов применяются для моделирования поведения системы с точки зрения внешнего наблюдателя.

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

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

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

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

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


Таблица 1.5 - Описание прецедента «Загрузить изображение»

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

Таблица 1.6 - Описание прецедента «Поиск границ»

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

Таблица 1.7 - Описание прецедента «Сохранить»

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

Разработка диаграммы классов предметной области «ПК для автоматизации обработки изображений для выделения границ на изображении в оттенках серого»

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

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

Описание классов предметной области представлено в таблице 1.8.


Таблица 1.8 - Обязанности классов

Название классаОбязанностиКонтур детекторСодержит изображение загруженное для обработкиПреобразователь серогоСодержит в себе метод для преобразования загруженного изображения в оттенки серогоСверткаСодержит в себе метод, для выполнения свертки по заданному ядруЯдра сверткиСодержит в себе ядра свертки применяемые для различных алгоритмовКэнниСодержит в себе: метод реализующий алгоритм Кэнни для выделения границ на изображенииРобертсСодержит в себе: метод реализующий алгоритм Робертся для выделения границ на изображенииСобельСодержит в себе: метод реализующий алгоритм Собеля (Прюитт или Шара в зависимости от ядра) для выделения границ на изображении

Диаграмма последовательности - это диаграмма, на которой показаны взаимодействия объектов, упорядоченные по времени их проявления [12].

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

Линия жизни объекта - это вертикальная пунктирная линия, которая обозначает период существования объекта.

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

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

Завершающим этапом является передача классом «Контур детектор» преобразованного изображения в класс «Робертс», где применяется метод выделения границ, и изображение передается в класс «Контур детектор». Далее система возвращает обработанное изображение пользователю.

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

Функциональные модули:

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

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

Размытие изображения - размывает изображение в серых оттенках.

Выделение границ - выделяет границы на сером размытом изображении, в соответствии с выбранным алгоритмом.

Просмотр обработанного изображения - полученное изображение выводится на форму.

Системные модули:

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

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

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

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



Модульная диаграмма «ПК для автоматизации обработки изображений для выделения границ на изображении в оттенках серого»


1.5.3 Виды обеспечения функционирования программного продукта

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

Рассмотрим наиболее популярные языки программирования и сделаем их сравнительную характеристику:- свободная среда разработки программного обеспечения для компилятора Free Pascal. Интегрированная среда разработки предоставляет возможность кроссплатформенной разработки приложений в Delphi-подобном окружении. Основан на библиотеке визуальных компонентов Lazarus Component Library (LCL). В разработке находятся виджеты Qt и WinCE.# - язык программирования, сочетающий объектно-ориентированные и контекстно-ориентированные концепции. Разработан как основной язык разработки приложений для платформы Microsoft.NET. C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет строгую статическую типизацию, поддерживает полиморфизм, перегрузку операторов, указатели на функции-члены классов, атрибуты, события, свойства, исключения, комментарии в формате XML. Поддерживает множественное наследование классов.Basic.NET - объектно-ориентированный язык программирования, который следует рассматривать как развитие Microsoft Visual Basic на платформе.NET. Microsoft включила в VB.NET ряд новых возможностей, в числе которых полная поддержка объектно-ориентированного программирования и расширенные средства разработки web-приложений. Но прежде всего, для освоения обновленного инструмента требуются немалые усилия.

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


Таблица 1.9 - Сравнение программных продуктов

Наименование критерияVisual C#Visual Basic.NETLazarusKjУдобство пользовательского интерфейса9790,10Простота языка программирования10670,10Наличие интегрированного отладчика9770,20Скорость выполнения программ96100,15Наименование критерияVisual C#Visual Basic.NETLazarusKjПоддержка объектно-ориентированных средств105100,20Возможности программных средств для разработки профессиональных приложений и сложных программных систем10770,10Наличие документации, справочных систем, возможности консультации9860,15

Экспертная оценка определяется по формуле (1.10):


(1.10)


где Qi - общая оценка программного продукта;j - весовой коэффициент критерия;ij - оценка i-того программного средства по j-тому критерию.

Рассчитаем общие оценки программных средств:

VisualC#:

Q=9*0,10+10*0,10+9*0,20+9*0,15+10*0,20+10*0,10+9*0,15=9,4.

Visual Basic.NET:

Q=7*0,10+6*0,10+7*0,20+6*0,15+5*0,20+7*0,10+8*0,15=6,5.

Lazarus:

Q=9*0,10+7*0,10+7*0,20+10*0,15+10*0,20+7*0,10+6*0,15=8,1.

Как показал расчет, наиболее целесообразно выбирать в качестве языка программирования VisualC#.


2. Разработка программного обеспечения для алгоритмов обработки изображений


2.1 Структура и функциональное назначение модулей


Разрабатываемый программный продукт «Сontour Detector» предназначен для автоматизации обработки изображений для выделения границ на изображении в оттенках серого.

В программном продукте «Сontour Detector» реализованы следующие модули:

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

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

«PredefinedKernels» - модуль приложения содержащий ядра для свертки;

«Convolution» - модуль приложения осуществляющий свертку по выбранному ядру;

«Roberts» - модуль для обработки изображения и выделения границ при помощи перекрестного оператора Робертса(стр.);

«SobelPrewitShara» - модуль для обработки изображения и выделения границ с помощью оператора Собеля, Прюитт или Щара (стр.);

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

Функции каждого модуля представлены в таблице 2.1.


Таблица 2.1 - Функции модулей программы «Contour Detector»

Название модуляФункцииСontourDetecor- загрузка изображения; - сохранение изображения; - выбор алгоритмов обработки изображения; - преобразование изображения к оттенкам серого;Название модуляФункции-размытие изображения; - передача загруженного изображения другим модулям.About-предоставление пользователю информации о назначении; - данного программного комплекса.PredefinedKernels.- содержит ядра свертки; - передает данные модулю СontourDetecor.Convolution- осуществляет свертку изображения; - передает данные модулю СontourDetecor.Roberts- обработка изображения при помощи перекрестного оператора Робертса; - передача обработанного изображения модулю СontourDetecor.SobelPrewitShara- обработка изображения при помощи операторов Собеля, Прюита или Шара; - передача обработанного изображения модулю СontourDetecor.Canny- обработка изображения при помощи оператор Кени; - передача обработанного изображения модулю СontourDetecor.

2.2 Результаты углубленной разработки отдельных модулей


Принимая во внимание функциональную часть программного продукта «Сontour Detecor», рассмотрим фрагменты кода, отражающие:

загрузка изображения;

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

размытие изображения;

обработка изображения при помощи перекрестного оператора Робертса.

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


private void openFile()

{dOpen = new OpenFileDialog();. Filter = «Bitmap files (*.bmp)|*.bmp|PNG files (*.png)|*.png|TIFF files (*.tif)|*tif|JPEG files (*.jpg)|*.jpg |All files (*.*)|*.*»;. FilterIndex = 5;. RestoreDirectory = true;(dOpen. ShowDialog() == DialogResult.OK)

{

{. Image = Bitmap. FromFile (dOpen. FileName);. Value = 0;

}

{. Show («Невозможно открыть изображение», «FATAL ERROR», MessageBoxButtons.OK, MessageBoxIcon. Error);

}

}

}

Рисунок 2.1 - Фрагмент кода для загрузки изображения


На рисунке 2.2 приведен фрагмент кода, иллюстрирующий преобразование изображения к оттенкам серого


private void grayConvert()

{(pictureBox1. Image == null) return;grayImg = new Bitmap (pictureBox1. Image. Width,. Image. Height);g = Graphics. FromImage(grayImg);colorMatrix = new ColorMatrix (float[][]

Рисунок 2.2 - Фрагмент кода для преобразования изображения к серому


{new float[] {.3 f. 3 f. 3f, 0, 0},float[] {.59 f. 59 f. 59f, 0, 0},float[] {.11 f. 11 f. 11f, 0, 0},float[] {0, 0, 0, 1, 0},float[] {0, 0, 0, 0, 1}

}

);attributes = new ImageAttributes();. SetColorMatrix(colorMatrix);. DrawImage (pictureBox1. Image,Rectangle (0, 0, pictureBox1. Image. Width, pictureBox1. Image. Height), 0, 0,. Image. Width, pictureBox1. Image. Height,. Pixel, attributes);. Dispose();. Image = grayImg;. Value = 10;

}.

Рисунок 2.2, Лист 2


На рисунке 2.3 приведен фрагмент кода, иллюстрирующий вызов функции размытия изображения. В этом фрагменте переменной kernel присваивается ядро свертки взятое из класс PredefinedKernels, и вызывается метод Apply класса Convolation.


private void blur()

{(pictureBox2. Image == null) return;(Convert. ToInt16 (textBox2. Text) > 50)

{MessageBox. Show («Слишком большое размытие»); return;};[,] kernel = new double [0, 0];= DSP. PredefinedKernels. BoxBlur;(int i=1; i<(Convert. ToInt16 (textBox2. Text)); i++)

{. Image = DSP. Convolution. Apply((Bitmap) pictureBox2. Image, kernel);

pBar. Value = 30;

}

}

Рисунок 2.3 - Фрагмент кода вызова функции размытия


На рисунке 2.4 приведен фрагмент кода, иллюстрирующий обработку изображения при помощи перекрестного оператора Робертса. Для применения оператора Робертса изображение обрабатывается в цикле и значение каждого пикселя считается по формуле х=|A-D|+|B-C|


class Roberts

{static Bitmap Apply (Bitmap input)

{contourImg = new Bitmap(input);b = new Bitmap(input);(int i = 1; i < input. Height - 1; i++)(int j = 1; j < input. Width - 1; j++)

{float new_x = 0, new_y = 0;currA = b. GetPixel (j, i).B;currB = b. GetPixel (j, i + 1).B;currC = b. GetPixel (j + 1, i).B;currD = b. GetPixel (j + 1, i + 1).B;_x = Math. Abs (currA - currD) +. Abs (currB - currC);(new_x * new_x > 128). SetPixel (j, i, Color. White);. SetPixel (j, i, Color. Black);

}(contourImg);}}

Рисунок 2.4 - Фрагмент кода обработки изображения оператором Робертса


2.2 Элементы интерфейса ПК «Contour Detector»


При запуске программы «Contour Detector» открывается окно, приведенное на рисунке. На главном окне программы (рисунок 2.5) расположено меню 1, которые состоит из пунктов «Файл», «Настройки», «Преобразования», «Выделение контура» и «Справка», так же на главном окне расположены две вкладки 2,3 переходя по которым пользователь попадает либо в окно «Исходное/обработанное изображение», либо в окно «Серое/размытое изображение». На вкладке «Исходное/обработанное изображение» располагаются поле для вывода изображений исходного и обработанного 4.

При нажатии на вкладку «Серое/размытое изображение» ему открывается эта вкладка (рисунок 2.6). На ней размещено поле для вывода результатов промежуточной обработки изображения 1.


Рисунок 2.5 - главное окно Contour Detector


Рисунок 2.6 - главное окно Contour Detector


При нажатии на пункт меню «Настройки» внизу формы отображаются настройки (рисунок 2.7), содержащие кнопки для выполнения алгоритмов 1, полей для задания параметров обработки 2 и выпадающий список для выбора матрицы для алгоритма Лапласа 3.

Рисунок 2.7 - Главное окно с панелью настроек


2.4 Инструкция по установке ПК «Contour Detector»


Для того чтобы установить программный продукт, необходимо двойным нажатием левой кнопки мыши запустить приложение ContourDetector.exe. Открывается мастер установки (рисунок 2.8). Для завершения установки нажимаем кнопку «Отмена», для продолжения нажимаем кнопку «Далее».


Рисунок 2.8 - Приветственное окно мастера установки


После нажатия на кнопку «Далее» открывается окно выбора директории, для установки приложения (рисунок 2.9). Для выбора директории нажмите кнопкой «Обзор…», затем нажмите «Далее», чтобы продолжить установку или «Отмена», чтобы прервать ее. Нажмите «Назад», если хотите вернуться к предыдущему окну.

Рисунок 2.9 - Окно выбора папки установки


После выбора директории, в открывшемся окне (рисунок 2.10), для создания ярлыка, установите или снимите флажок с переключателя «Создать ярлык на рабочем столе», нажмите «Далее», чтобы продолжить или «Отмена», чтобы прервать установку.


Рисунок 2.10 - Окно создания ярлыка


После нажатия на кнопку «Далее», отображается окно с выбранными параметрами установки приложения (рисунок 2.11). Для изменения параметров установки нажимаем кнопку «Назад», для прекращения установки - кнопку «Отмена». Для установки программы нажимаем кнопку «Установить».


Рисунок 2.11 - Окно параметров установки

После выполнения установки программы появляется окно завершения установки (рисунок 2.12).


Рисунок 2.12 - Окно завершения установки


.5 Инструкция пользователя ПК «Contour Detector»


Для начала работы с программой необходимо запустить файл СontourDetector.exe, либо ярлык ContourDetector.lnk.

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


Рисунок 2.13 - Главное окно программы


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


Рисунок 2.14 - Диалоговое окно «Открыть»


3При нажатии на кнопку меню «Настройки» внизу главного окна программы отображается панель настроек (рисунок 2.15). Для выделения границ необходимо преобразовать изображение к серому и размыть.

4Для того что бы преобразовать изображение в оттенки серого, пользователю требуется нажать кнопку «В серый», либо в меню «Преобразования» выбрать пункт «Преобразовать в серый».

Для размытия изображения пользователем задаётся в количество проходов размытия (по умолчанию 1). Для выполнения размытия пользователю требуется нажать кнопку «Размыть», либо в меню «Преобразования» выбрать пункт «Размыть».


Рисунок 2.15 - Окно программы с панелью настроек


6Если пользователь не преобразовал к серому ему будет выдано сообщение (рисунок 2.16)

Рисунок 2.16 - Окно предупреждения


7Если пользователь ввел количество проходов размытия больше 50 ему будет выдано сообщение (рисунок 2.17)


Рисунок 2.17 - Окно программы сообщения об превышении количества размытия


8Что бы посмотреть преобразование к серому и результат размытия нужно перейти на вкладку «Серое/размытое изображение» (рисунок 2.18)


Рисунок 2.18 - Открытая вкладка «Серое/размытое изображение»


Для выделения контура на загруженном изображении требуется выбрать алгоритм выделения в пункте меню «Выделение контура», либо на панели «Настройки» нажав кнопку с названием выбранного алгоритма. Результат выделения границ будет отображен на вкладке «Исходное/обработанное изображение» (рисунок 2.19).

Рисунок 2.19 - Результат выделения границ на изображении


10Для сохранения обработанного изображения пользователю необходимо в меню «Файл» пункт «Сохранить». После нажатия на будет отображено окно «Сохранить изображение» (рисунок 2.20).


Рисунок 2.20 - Окно сохранения изображения


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

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


2.6 Результат работы ПК «Contour Detector», пример выделения границы на изображении в оттенках серого


Рассмотрим работу программы «Contour Detector» на конкретном примере. Мы запускаем программу, открывается главное окно с активной вкладкой «Исходное/обработанное изображение». Согласно инструкции пользователя загружаем изображение, преобразовываем к серому и делаем размытие изображения. Установим 2 прохода размытия (рисунок 2.21).


Рисунок 2.21 - Результат преобразования к серому и размытия изображения


В качестве алгоритма выделения грани выберем оператор Робертса. И посмотрим результат (рисунок 2.22).


Рисунок 2.22 - Результат работы оператора Робертса


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


Рисунок 2.23 - Обработанное изображение с выделенными контурами


3. Экономические расчеты


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

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

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

Источники экономии при этом определяются по следующим направлениям:

снижение трудоемкости;

увеличение объемов и сокращение сроков обработки информации;

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

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


3.1 Расчёт капитальных затрат на создание ПК для автоматизации обработки изображения для выделения границ на изображении в оттенках серого


Капиталовложения в создание ПК носят единовременный характер:


К=К123, (3.1)


где К1 - затраты на оборудование, грн.;

К2 - затраты на лицензионные программные продукты, грн;

К3 - затраты на создание ПО, грн.

Поскольку оборудование Lenovo m58 и Acer al1916w для создание ПК уже эксплуатируется, его остаточная стоимость равна 2000 грн. (К1=2000)

Для реализации ПО необходимы следующие лицензионные программные продукты:

MS Visual Studio Express (0 грн), 1 шт.;

Windows 7 Home Edition (700 грн), 1 шт.;

Получаем К2 = 700 грн.

Затраты на создание ПМК находятся по формуле 3.2:


К3 = З1 + З2 + З3, (3.2)


где З1 - затраты труда программистов-разработчиков, грн.;

З2 - затраты компьютерного времени, грн.;

З3 - косвенные (накладные) расходы, грн.

Затраты труда программистов-разработчиков найдем по формуле 3.3:


, (3.3)


где Nk - количество разработчиков k-й профессии, чел.;

rk - часовая зарплата разработчика k-й профессии, грн.зар - коэффициент начислений на фонд заработной платы, доли.

Tк - общая трудоемкость, ч

Принимаем Nk=1 человек.

Часовая зарплата разработчика определяется по формуле 3.4.

(3.4)


где Мк - месячная зарплата k-го разработчика, грн.;

Fмесk - месячный фонд времени его работы, час.

Принимаем:

Мk=2500 грн.; Fмесk = 176 часов.

Тогда rk = 2500/176 =14,20 грн./час.

Принимаем Kзар = 1,425.

Трудоёмкость разработки включает время выполнения работ, представленных в таблице 3.1.

Общая трудоемкость рассчитывается по формуле 3.5.


Tк = tт.з. + tэ.п + tт.п. + tр.п + tв, (3.5)


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

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

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

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

tв - время на внедрение проекта, часов.

Тогда затраты труда разработчиков-программистов равны (формула 3.3):

З1 = 1·14,20·590·1,425 = 11938,65 грн.


Таблица 3.1 - Длительность этапов работы

Этапы работОписание работТрудоемкость, часовТехническое заданиеАнализ и формализация требований к ПК для реализации алгоритмов обработки изображения.80Эскизный проектРазработка алгоритма для автоматизации обработки изображения и выделения границ. На основе определенных функциональных требований разработки модели предметной области. Диаграммы классов и прецедентов240Технический проектРазработка логической структуры проекта (состав программных модулей). Особенности реализации.80Этапы работОписание работТрудоемкость, часовРабочий проектКорректировка и доработка программного обеспечения; разработка документации.160ВнедрениеРазработка мероприятий по внедрению и сопровождению ПП30Итого:590

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


З2 = Ск ·F0, (3.6)


где Ск - стоимость компьютерного часа, грн.;0 - затраты компьютерного времени на разработку программы, час.

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


СК= СА + СЭ + СТО, (3.7)


где СА - амортизационные отчисления, грн.;

СЭ - энергозатраты, грн.;

СТО - затраты на техобслуживание, грн.

Амортизационные отчисления найдем по формуле 3.8:


СА= Сi· NАi / Fгодi, (3.8)


где Сi = 2000 - балансовая стоимость i-го оборудования, которое использовалось для создания ПМК, грн.А - годовая норма амортизации i-го оборудования, доли.год - годовой фонд времени работы i-го оборудования, час.

Принимаем:А= 0,15; Fгод = 2112 часов [23].

Из формулы 3.7 получим: СА= 2000·0,15/2112 = 0,14 грн.

Энергозатраты найдем по формуле 3.9:


СЭ = РЭ · СкВт, (3.9)


где РЭ = 0,3 - расход электроэнергии, потребляемой компьютером, кВт/ч;

СкВт = 0,95 - стоимость 1 кВт/ч электроэнергии, грн.

Тогда получим: СЭ = 0,3·0,95 = 0,28 грн.

Затраты на техобслуживание найдем по формуле 3.10:


СТО= rТО·l, (3.10)


где rТО - часовая зарплата работника обслуживающего оборудование, грн;

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

Принимаем часовую зарплату работника, обслуживающего оборудование:ТО = 1800/176 = 10,2 грн/час.


l = Nто / Fмес, (3.11)


где Nто - количество обслуживаний оборудования в месяц;мес - месячный фонд времени работы оборудования, час.

Принимаем Nто= 1; Fмес= 176 часов.

Тогда (формула 3.11): l=1/176 = 0,0057.

Применяя формулу 3.10, получим:

СТО =10,2*0,0057 = 0,05 грн.

Тогда стоимость компьютерного часа равна:

СК= 0,14 + 0,28 + 0,05 = 0,47 грн/час.

Таким образом, затраты компьютерного времени составят:

З2 = 0,47·590 = 277,3 грн.

Косвенные расходы З3 определяются по формуле 3.12:


(3.12)


где С1 - расходы на содержание помещений, грн.

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

Площадь помещения составляет 15 м2. Принимаем стоимость аренды 1 м2 помещения - 50 грн. Следовательно, стоимость помещения составляет: 15·50= 750 грн./мес.

С1 =750·0,02 = 15 грн./мес - затраты на содержание помещений составляют 2% от стоимости здания;

С2 =750·0,004 = 3 грн./мес - расходы на освещение, отопление охрану и уборку помещений составляют 0,4% от стоимости здания.3 = 2000·1 = 2000 - прочие расходы (стоимость различных материалов, используемых при разработке проекта, услуги сторонних организаций и т.п.) составляют 100% от стоимости вычислительной техники.

Тогда, используя формулу 3.12, получим: З3 = 15+3+2000 = 2018 грн.

Таким образом, по формуле 3.2 рассчитаем затраты на создание ПК:

К3 = 11938,65 + 277,3 + 2018 = 14233,95 грн.

Капитальные затраты на выполнение и реализацию ПК составят:

К = 2000 + 700 + 14233,95 = 16933,95 грн.


3.2 Расчет годовой экономии от автоматизации обработки изображения для выделения границ на изображении в оттенках серого


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


(3.13)


где tip, tia - трудоемкость выполнения i-й операции соответственно в ручном и автоматизированном варианте, час;

kip, kia - повторяемость выполнения i-й операции в ручном и автоматизированном вариантах в течении года, шт.;

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

n - количество различных операций, выполнение которых автоматизируется.

Себестоимость выполнения операций в ручном варианте определяется по формуле 3.14:


Cp = C1p + C2p,(3.14)


где C1p - затраты на оплату труда персонала, грн.;

C2p - косвенные расходы, грн.

Затраты на оплату труда персонала найдем по формуле 3.15.


(3.15)

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

rk - часовая зарплата одного работника k-й профессии, грн.;

Kзар - коэффициент начислений на фонд заработной платы, доли;

k - число различных профессий, используемых в ручном варианте.

Часовая зарплата работника k-й профессии рассчитывается по формуле 3.16:


rk = Mk/Fkмес,(3.16)


где Mk - месячный оклад работника, грн.;kмес - месячный фонд времени работ работника, час.

Принимаем Fkмес = 176 часов.

До автоматизации работу выполняли 1 человек, т.е. N k= 1 чел.

Месячный оклад работника составляет: Mk=2500 грн.

Часовая зарплата составляет: rk = 2500/176 = 14,20 грн/час.

Затраты на оплату труда персонала составляют:

C1p = 1·14,20·1,425=20,23 грн.

Косвенные расходы рассчитываются по формуле 3.17:


C2p = C1 + C2 + C3(3.17)


где С1 - затраты на содержание помещений, грн.;

С2 - расходы на освещение,отопление охрану и уборку помещений, грн.;3 - прочие расходы.

Площадь помещения составляет 15 м2. Принимаем стоимость аренды 1 м2 помещения - 50 грн. Следовательно, стоимость помещения составляет: 15·50= 750 грн./мес.

С1 = 750·0,02 = 15 грн - затраты на содержание помещений составляют 2% от стоимости здания;

Расходы на освещение,отопление охрану и уборку помещений С2 составляют 0,2-0,5% от стоимости помещения: С2 = 750·0,004= 3 грн.

Прочие расходы C3 составляют 100-120% от фонда заработной платы:3=14,20 ·1,2= 17,04 грн.

Из формулы 3.17 получим косвенные расходы:

C2p = 15 + 3 + 17,04 = 35,04 грн.

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

СР = 14,20 + 35,04 = 49,24 грн.

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


Са = C1a + C2a + C3a,(3.18)


где C1a - затраты на оплату труда персонала, грн.;

C2a - стоимость компьютерного времени, грн.;

C3a - косвенные расходы, грн.

Затраты на оплату труда персонала найдем по формуле 3.19:


(3.19)


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

rp - часовая зарплата одного работника p-й профессии, грн.;

Kзар - коэффициент начислений на фонд заработной платы, доли;

p - число различных профессий, используемых в автоматизированном варианте.

Принимаем:

Kзар = 1,425.

Автоматизированную работу выполняет 1 человек, т.е. N p= 1 чел.

Месячный оклад работника составляет: Mk=2500 грн.

Часовая зарплата составляет: rk = 2500/176 = 14,20 грн/час.

Затраты на оплату труда персонала составляют:

C1а = 1·14,20·1,425=20,23 грн.

Стоимость компьютерного времени найдем по формуле 3.20.


С2а= СА + СЭ + СТО,(3.20)


где СА= 0,14 - амортизационные отчисления, грн.;

СЭ = 0,28 - энергозатраты, грн.;

СТО = 0,05 - затраты на техобслуживание, грн.

Таким образом, С2а = 0,14 + 0,28 + 0,05 = 0,47 грн.

Косвенные расходы С3а определяются по формуле 3.12:

С3а = 15 + 3 + 2000 = 2018 грн

Тогда по формуле 3.18: Са = 20,23 + 0,47 + 2018= 2038,7 грн.

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


Таблица 3.2 - Трудоемкость работы оператора при выполнении вручную и автоматически

Наименование операцийТрудоемкостьПовторяемость (раз/год)РАk1Загрузка изображения0,550,00554302Преобразование к серому0,50,0154303Выполнение алгоритма0,1150,00354304Анализ и сохранение изображения0,450,025430

Годовую экономию от внедрения комплекса получим по формуле 3.13:


Эг =11142,36 грн.


Выводы


1Были изучен алгоритмы и методы выделения границ на изображении в оттенках серого.

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

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

На основании использования UML разработана логическая модель программного продукта.

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

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


Список литературы


1Редактирование изображений - Википедия [Электронный ресурс]: Редактирование изображений. - Электрон дан. - Режим доступа: ru.wikipedia.org/wiki/Редактирование_изображений - Загл. с экрана.

2Растровая графика - Википедия [Электронный ресурс]: Растровая графика. - Электрон дан. - Режим доступа: ru.wikipedia.org/wiki/ Растровая_графика - Загл. с экрана.

3Выделение границ - Википедия [Электронный ресурс]: Выделение границ. - Электрон дан. - Режим доступа: ru.wikipedia.org/wiki/Выделение_границ - Загл. с экрана.

4Грузман И.С. «Цифровая обработка изображений в информационных системах. Учебное пособие»/ Грузман И.С. /. - Новосибисрк: Изд-во НГТУ, 2002. - 352 c.

Оператор Собеля - Википедия [Электронный ресурс]: Оператор Собеля. - Электрон дан. - Режим доступа: ru.wikipedia.org/wiki/Оператор_собеля - Загл. с экрана.

6Поиск контуров на изображении/ Хабрахабр [Электронный ресурс]: Оператор Прюитт. - Электрон дан. - Режим доступа: #"justify">7Оператор Кэнни - Википедия [Электронный ресурс]: Оператор Кэнни. - Электрон дан. - Режим доступа: ru.wikipedia.org/wiki/Оператор_ Кэнни - Загл. с экрана.

8Обработка изображений и распознавание образов [Электронный ресурс]: Метод Лапласа. - Электрон дан. - Режим доступа: #"justify">9Фильтрация изображений методом / Хабрахабр [Электронный ресурс]: Свертка ихображения. - Электрон дан. - Режим доступа: #"justify">10Леоненков А. «Самоучитель UML 2» /А. Леоненков/. - С.: «БХВ Петербург», 2007 г. - 576 с.

Ларман, К. «Применение UML и шаблонов проектирования» / К. Ларман/. - М.: «Вильямс», 2002 г. - 624 с.

12UML лекции [Электронный ресурс]: Диаграмма последовательности. - Электрон дан. - Режим доступа: #"justify">13Буч, Г. Объектно-ориентированное проектирование с примерами применения / Г. Буч/. - М.: «Конкорд», 1992 г. - 519 с.

Сойфер В.А. «Методы компьютерной обработки изображений» / В.А. Сойфер/. - М.:ФИЗМАТЛИТ, 2003 - 784 с.

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

16Айсманн К.» Ретуширование и обработка изображений в Photoshop»/ К. Айсманн, У. Палмер/, - M: Вильямс, 2008. - 560 с.

Иванов Д. В «Алгоритмические основы растровой графики»/ А.А. Хропов, Е.П. Кузьмин, А.С. Карпов, В.С. Лемпицкий, Д.В. Иванов /, - БИНОМ. Лаборатория знаний, 2007 - 286 с.

18Коналлен Д. «Разработка Web-приложений с использованием UML» /Д. Коналлен/. - М.: Издательский дом «Вильямс», 2001. - 288 с.

Марка Д.А. «Методология структурного анализа и проектирования»/ Д.А. Марка, К. МакГоуэн /.-М.: «МетаТехнология», 1993. - 422 с.

Романычев Э.Т. «Инженерная и компьютерная графика -2-е.изд., перераб»/ Э.Т. Романычев / - М.:ДМК Пресс, 2001 - 592 с.

21Методические указания к выполнению экономической части дипломных проектов студентами специальности «Компьютерные системы проектирования» / Сост. Скибина А.В., Подгора Е.А. - Краматорск: ДГМА, 1998. - 22 с.

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


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

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ