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

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    2,43 Мб
  • Опубликовано:
    2013-03-06
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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

Реферат

Пояснительная записка 64 с., 30 рис., 14 источников.

ОБРАБОТКА ИЗОБРАЖЕНИЙ, ОЦИФРОВКА ГРАФИКОВ, ОЦИФРОВКА ГРАФИЧЕСКОЙ ИНФОРМАЦИИ, ИЗВЛЕЧЕНИЕ ЧИСЛОВЫХ ДАННЫХ, ОБРАБОТКА ЧИСЛОВЫХ ДАННЫХ, ГЕНЕРИРОВАНИЕ ГРАФИКОВ

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

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

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

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

Содержание

 

Введение    4

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

1.1 Описание предметной области          7

1.1.1 Введение в предметную область    7

1.1.2 Общие сведения о процессе оцифровки  7

1.1.3 Область применения    8

1.2 Цели и задачи оцифровки графической информации 9

1.3 Методы извлечения числовых данных      10

1.3.1 Итерационный метод   10

1.3.2 Волновой алгоритм     10

1.4 Обзор программного обеспечения для извлечения графических данных       14

1.4.1 ПО getdata Graph Digitizer    14

1.4.2 ПО Graph2Digit  16

1.4.3 ПО G3Data          17

1.4.4 ПО Grafula 18

1.5 Анализ программного обеспечения для извлечения числовых данных 20

1.6 Дополнительные возможности         21

1.6.1 Удаление шумов 21

1.6.2 Удаление координатной решетки  24

2. Программное обеспечение «graphtrace». Структура ПО и методы обработки данных         26

2.1 Постановка задачи          26

2.2 Обоснование выбора платформы для реализации      27

2.3 Реализация программного обеспечения    30

2.3.1 Структура приложения        30

2.3.2 Структура классов проекта graphtrace, их описание и назначение      31

2.3.3 Структура классов проекта Diagram, их описание и назначение         37

2.4 Модуль оцифровки графиков 41

2.5 Модуль экспорта данных        42

2.6 Модуль удаления шумов         43

2.7 Модуль удаления координатной решетки 45

2.8 Модуль генерирования графиков    47

3. Использование программы «graphtrace» для графических данных различного типа         49

3.1 Основные элементы программы       49

3.2 Процесс подготовки изображений   50

3.2.1 Процесс удаления координатной решетки      50

3.2.2 Процесс удаления шумов     52

3.3 Процесс обработки изображения     53

3.4 Процесс экспорта числовых данных         57

3.5 Процесс создания графиков из внешних или внутренних источников   58

Заключение         60

Список использованных источников      61

ВВЕДЕНИЕ

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

Рисунок 1 - График зависимости давления от скорости потока

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

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

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

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

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

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

График, конечно, можно «оцифровать» докомпьютерными (безкомпьютерными) средствами - взять в руки линейку и калькулятор и вручную составить таблицу значений точек на графике. Но современные аппаратные и программные средства компьютеров должны позволять автоматизировать эту работу[1].

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

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

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

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

·        определение и удаления координатной решетки;

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

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

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

 

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

программный графический цифровой данные

1.1.1 Введение в предметную область

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

 

1.1.2 Общие сведения о процессе оцифровки

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

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

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

1.1.3  Область применения

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

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

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

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

1.2     Цели и задачи оцифровки графической информации


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

·    существование решения

·        единственность решения

·        устойчивость решения

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

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

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

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

1.3     Методы извлечения числовых данных

 

1.3.1 Итерационный метод

Также известен как метод перебора. Метод перебора (метод равномерного поиска) - это простейший из методов поиска значений по какому-либо из критериев сравнения.

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

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

1)   Выбирается начальная точка для поиска (X1,Y1).

2)      Начинаем обход растра поочередно по обеим осям с заданным шагом.

)        На каждом шаге проверяется, удовлетворяет ли текущая точка

условиям поиска. Если удовлетворяет, то она добавляется в результирующий набор.

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

1.3.2 Волновой алгоритм

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

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

Метод состоит из следующих шагов:

1) Построение скелета изображения с помощью сферической волны.

2)      Оптимизация полученного скелета.

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

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

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

Рисунок 2 - Проход волны по кривой линии

Для выделения ребер определяются точки где:

)        Происходит разделение волны на полуволны, т.е. соединение или пересечение отрезков (рисунок 3).

Рисунок 3 - Разделение волны на разветвлении

)        Происходит затухание волны, т.е. конец отрезка (рисунок 4).

Рисунок 4 - Затухание волны при окончании отрезка

В случае затухания волны возможны два варианта:

1)   Мы нашли конец ребра

2)      Мы нашли точку соединения ребер

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

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

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

2)      Заносим в него любую точку графического изображения как генерацию волны.

)        Пока стек не пуст продолжаем шаги 4-8

)        Выбираем генерацию волны из стека

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

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

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

)        Переходим к п.3.

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

1.4   
Обзор программного обеспечения для извлечения графических данных

 

.4.1   ПО GetData Graph Digitizer

Тип лицензии: Shareware (30$ частная лицензия).

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

1)   Открыть график.

2)      Установить масштаб (систему координат).

)        Оцифровать(автоматически или вручную) и скопировать данные в буфер обмена, или экспортировать в TXT, XLS, XML, DXF или EPS файл.

Основные возможности GetData Graph Digitizer:

·    поддержка графических форматов TIFF, JPEG, BMP и PCX;

·        два алгоритма для автоматической оцифровки;

·        удобная оцифровка вручную;

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

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

·        копирование полученных данных в буфер обмена;

·        экспорт в форматы: TXT, XLS, XML, DXF и EPS.

Рабочее окно программы представлено на рисунке 5.

Рисунок 5 - Главное окно программы GetData Graph Digitizer

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

Описание:

Эта программа предназначена для оцифровки графиков с рисунков представленных файлами в форматах bmp, jpg, tiff, pcx и др. Программа позволяет оцифровать график с заданным шагом и при необходимости отредактировать полученные результаты. Результаты оцифровки можно сохранить в текстовый файл или скопировать в буфер обмена для дальнейшей обработки, например в Excel. Рабочее окно программы изображено на рисунке 6.

Свойства программы:

·  поддержка графических форматов bmp, jpg, tiff, pcx, gif, png b wmf;

·        возможность вставлять изображение из буфера обмена;

·        поддержка сканера;

·        возможность поворота картинки;

·        автоматический режим оцифровки по максимальной яркости;

·        автоматический режим оцифровки по цвету;

·        режим ручной оцифровки;

·        режим правки;

·        быстрая привязка координат по 2, 3 или 4 точкам;

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

·        редактирование полученных данных в таблице;

·        выполнение основных действий с помощью горячих клавиш;

·        сохранение полученных данных в файл или копирование в буфер обмена;

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

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

1.4.3 ПО G3Data

Тип лицензии: Freeware

Описание:

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

Загружается растровое изображение. Тыкаем поочередно на кнопки Set Point X1, Set Point X2 и так далее, отмечая произвольные точки на оси абсцисс и ординат и указывая их численные значения. Затем втыкаем точки на кривой, передаем данные в текстовый dat файл. Данные можно импортировать, например в OpenOffice, и выполнить их аппроксимацию кривой заданного вида (или просто использовать как таблицу и пользуясь функцией интерполяции получать нужные для расчетов значения). Рабочее окно программы представлено на рисунке 7.

Рисунок 7 - Рабочее окно программы G3Data

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

 

1.4.4 ПО Grafula

Тип лицензии: Freeware

Описание:

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

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

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

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

Рисунок 8 - Рабочее окно программы Grafula

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

 

1.5    Анализ программного обеспечения для извлечения числовых данных


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

·    Отсутствие возможности предварительной подготовки изображений к оцифровке;

·        Отсутствие возможности удаления координатной решетки;

·        Отсутствие методов для автоматической трассировки линий;

·        Отсутствие экспорта данных в популярные форматы;

·        Отсутствие возможности генерирования графиков.

 

1.6    Дополнительные возможности

 

1.6.1 Удаление шумов

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

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

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

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

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

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

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

Шум бывает нескольких видов, самые распространенные из них:

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

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

.        Цветные пятна - характерны для аналогового сигнала (к примеру, присутствуют в видеоизображении, оцифрованном с видеокассет VHS).

.        Шум вида «соль и перец».

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

Переменные, используемые в формулах:

x+i,y+j - координаты в пределах изображения.

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

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

Гармонический фильтр

Гармонический фильтр принадлежит группе нелинейных усредняющих фильтров, которые лучше справляются с Гауссовым шумов и сохраняют края объектов, в отличии от математических усредняющих фильтров[9]. Математическое описание:

(1)

Контр-гармонический фильтр

Контр-гармонический фильтр принадлежит группе нелинейных усредняющих фильтров, которые лучше справляются с Гауссовым шумов и сохраняют края объектов, в отличии от математических усредняющих фильтров[9]. Математическое описание:

(2)

Геометрический усредняющий фильтр

Геометрический усредняющий фильтр принадлежит группе нелинейных усредняющих фильтров, которые лучше справляются с Гауссовым шумов и сохраняют края объектов, в отличии от математических усредняющих фильтров. Фильтр работает с произведением N значений пикселей в определенном радиусе( задается матричной маской), возведенным в степень 1/N[9]. Математическое описание:

(3)

Фильтр для удаления точек

Фильтр, написанный для решения конкретной задачи. Хорошо справляется с импульсным видом шума и сохранением границ, но бесполезен в применении для подавления Гауссова шума. Фильтр работает по принципу арифметического среднего. В некотором радиусе N подсчитывается количество пикселей, цвет которых( в grayscale-представлении находится в пределах 0-255) отличается от цвета текущего пикселя на некоторую величину(Threshhold). Если количество пикселей, отличных от текущего, больше или равно N/2, то текущий пиксель считается импульсным шумом, и заменяются средним значением соседних пикселей[10].

 

1.6.2 Удаление координатной решетки

Алгоритм использует в своей основе информацию, которую человеческий глаз не в состоянии распознать. Например, человеческий глаз не в состоянии отличить цвета представленные в RGB палитре следующими значениями (254,254,254) и (255,255,255). В то время как для машины, эти цвета абсолютно различны.

После этого можно применять преобразование, которое строится на нескольких правилах:

1.   На изображениях, представленных в оттенках серого цвет сетки всегда ближе к идеальному черному(RGB(0,0,0)), чем цвет графика.

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

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

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

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

Рисунок 9а - До применения алгоритма

Рисунок 9б - После применения алгоритма

2. Программное обеспечение «GraphTrace». Структура ПО и методы обработки данных

 

.1 Постановка задачи


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

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

Принимая во внимание все выше изложенное сформулируем задачу.

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

·        Открытие изображения.

·    Вставка изображения из буфера.

·        Сканирование изображения (возможно).

·        Оцифровка графика(-ов).

·        Возможность копирования результирующей таблицы (пар X/Y) в Excel.

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

·        Построение графиков по парам X/Y.

·        Возможность установки цвета линии для оцифровки.

Программное обеспечение будет реализовано на платформе .NET с использованием языка C# 3.5.

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


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

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

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

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

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

В качестве платформы рассматривались 2 крупные платформы разработки оконных приложений: .Net и Java.

Для обоих языков имеется набор библиотек, предоставляющих возможности построения интерфейса пользователя для настольных приложений. В случае Java это мультиплатформенные библиотеки SWING <#"606903.files/image014.gif">

Рисунок 10 - Схема взаимодействия объектов проекта GraphTrace

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

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

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

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

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

·    Гармонический усредняющий фильтр

·        Контр-гармонический усредняющий фильтр

·        Геометрический фильтр

·        Фильтр для удаления шума типа «соль и перец»

Примеры работы алгоритмов рассмотрены и представлены в разделе 2.6.

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

Для выполнения этой задачи было реализовано 2 алгоритма:

·    Алгоритм интегральных проекций

·        Алгоритм сегментации цветных участков

Алгоритм интегральных проекций использует информацию о плотности фоновых точек на срезах по X и Y координатам. Алгоритм сегментации цветных участков использует в своей основе информацию о цветах графика и координатной решетки.

Подробное описание алгоритма работы этих модулей описывается в главе 2.7.

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

class GenerateGraph - класс, представляющий собой форму для введения исходных данных и дополнительной информации для генерации графика. Внешний вид формы представлен на рисунке 11. Для генерации графика доступны 2 возможности:

·    Генерация из имеющихся данных

·        Генерация из данных, копированных из Excel

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

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

.     Выбрать соответствующий элемент в списке

2.      Ввести максимальные значения для оси абсцисс и оси ординат

.        Создать новую линию с определенным названием и цветом

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

.        Повторить п. 2-4 для вставки необходимого числа линий.

.        Нажать на кнопку «Сгенерировать».

После чего управление будет передано форме Graph.

Рисунок 11 - Форма ввода входных данных

 

class Lines - класс, инкапсулирующий в себе объект, для передачи данных из формы GenerateGraph в форму Graph. Этот класс нужен для унификации обработки линии вне зависимости от того, каким образом они были переданы в форму Graph. Класс Lines наследуется от класс List<PointF>, что позволяет передавать массив линий одним объектом.

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

Общая структура классов и их взаимодействия показана на рисунке 12.

Рисунок 12 - Структура классов GraphTrace

 

2.3.3 Структура классов проекта Diagram, их описание и назначение

class Axis - класс, представляющий собой реализацию координатных осей. Этот класс реализует следующий функционал:

·    Хранение позиции координатных осей.

·        Методы для инициализации значений.

·        Метод для реализации отрисовки осей на рабочей области.

·        Метод для изменения масштаба координатных осей.

class Selection - представляет собой класс для хранения области, выделенной пользователем. Этот класс реализует следующий функционал:

·    Хранение информации о области, выделенной пользователем.

·        Метод для отрисовки области выделения.

·        Метод для считывания области выделения.

class Diagram - основной класс для реализации отрисовки графической информации и оцифрованных графиков. Представляет собой объект, в котором хранится список точек, полученных в результате оцифровки графической информации. Объект класса Diagram состоит из списка графических объектов, которыми будут являться 2 типа фигур:

·    Плоские фигуры.

·        Соединительные линии.

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

Класс Diagram является контейнером всех фигур нашей линии. Он имеет всего одно поле - figures - список фигур линии. Также он предоставляет методы для работы с текущими линиями:

·    Метод GetDigitSheet() - возвращает массив данных, который содержит координаты точек линии.

·        Метод GetPointNumber() - метод возвращает количество точек в текущей линии.

·        Метод SetColor() - метод позволяет установить цвет текущей линии.

·        Метод ChangeColor() - позволяет изменить цвет текущей линии.

Базовым классом для всех объектов нашей линии является абстрактный класс Figure. Этот класс содержит следующие поля и методы:

·    Поле pen - содержит цвет фигуры.

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

·        Метод Draw() - метод, отрисовывающий фигуру на предоставленном объекте типа Graphics.

·        Метод IsInsidePoint() - метод, проверяющий содержится ли данная точка внутри данной фигуры.

Диаграмма классов и их зависимостей представлена на рисунке 13. От класса Figure наследуется два класса - SolidFigure и LineFigure. SolidFigure представляет плоскую, двумерную фигуру. LineFigure - отображает соединительную линию между объектами SolidFigure. Класс SolidFigure, кроме унаследованных от класса Figure методов предоставляет следующие:

·    Метод Offset() - сдвигает фигуру на нужное число писелей.

·        Метод Scale() - масштабирует отображение линии относительно увеличенного/уменьшенного изображения.

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

·    From - объект типа SOlidFigure, от которого начинается данная линия

·        To - объект типа SolidFigure к которому ведет данная линия

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

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

Рисунок 13 - Диаграмма классов проекта Diagram

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

В этом методе, мы прорисовываем каждый раз все элементы нашей текущей линии. Сначала мы прорисовываем соединительные линии, затем поверх них рисуем фигуры, которые отвечают за расположение наших точек на графике. Такая последовательность обязательна, поскольку фигуры всегда должны отображаться поверх соединительных линий. Точки отрисовываются в том порядке, в котором они расположены в списке Diagram.figures. В тех методах, где мы меняем содержимое диаграммы, мы будем вызывать метод DiagramBox.Invalidate(), который перерисовывает содержимое рабочей области в нужный для нас момент. В методе OnPaint мы заставляем каждую фигуру произвести отрисовку самой себя, вызывая метод Figure.Draw().

Общая структура проекта Diagram представлена на рисунке 14.

Рисунок 14 - Структура проекта Diagram.

2.4 Модуль оцифровки графиков


Модуль оцифровки - основной модуль разрабатываемого программного обеспечения. Представляет методы для работы с графиками. Результатом работы методов является список искомых числовых данных в формате List<Point> в координатах изображения. Основной класс для реализации логики оцифровки - Digitize.

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

Для оцифровки предоставляется 3 метода:

·  оцифровка по цвету

·        оцифровка по яркости

·        оцифровка по области

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

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

1)   Сегментация графической информации по цветовому фактору.

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

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

2.5 Модуль экспорта данных


Модуль экспорта данных содержит логику экспорта данных в 2 популярных формата:

·    Формат xls табличного процессора Excel.

·        Формат xml.

Для экспорта данных в формат .xls используется технология COM объектов. Формат экспортированных данных в формат Excel представлен на рисунке 15.

Рисунок 15 - Экспортированные данные в Excel

Формат экспортированных данных в формат xml представлен на рисунке 16.

Рисунок 16 - Формат данных в виде xml.

 

.6 Модуль удаления шумов


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

·    Размер окна обработки

·        Коэффициент P

·        Порог сравнения

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

·    Гармонический усредняющий фильтр

·        Контр-гармонический усредняющий фильтр

·        Геометрический усредняющий фильтр

·        Фильтр для удаления точек.

Первые 3 вида фильтров относятся к одному виду математических усредняющих фильтров. Эти фильтры применяются для работы с 24 битовыми изображениями. Они приспособлены для удаления шума который принято называть Гауссов шум или так называемый шум «соль и перец». Они также позволяют сохранять границы объектов на изображении, в отличии от арифметических фильтров. Область действия гармонического и контр-гармонического фильтров обуславливается областью значений коэффициента P. Когда P>0 происходит сглаживание светлых участков, при P<0 происходит сглаживание темных участков. Окно модуля удаления шумов представлено на рисунке 17.

Рисунок 17 - Модуль удаления шумов.

2.7 Модуль удаления координатной решетки


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

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

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

Рисунок 18 - Модуль удаления координатной решетки.

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

2.8 Модуль генерирования графиков


Модуль генерирования графиков состоит из 2 форм:

·  Форма ввода исходных данных.

·        Форма, на которой происходит отрисовывание графика.

Форма ввода исходных данных представляет собой область с несколькими полями и предоставляет выбор источника для входных данных:

)   Данные из программы.

2)      Данные из Excel.

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

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

На форме расположены элементы управления, которые позволяют пользователю ввести следующие данные:

·    Максимальное значение по оси абсцисс.

·        Максимальное значение по оси ординат.

·        Количество и название линий.

·        Вставка числовых данных из Excel.

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

Рисунок 19 - Модуль генерирования графиков

3. Использование программы «GraphTrace» для графических данных различного типа

 

.1 Основные элементы программы


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

Рисунок 20 - Основное окно программы «GraphTrace».

Главное меню содержит следующие пункты:

·    Открытие файла

·        Вставка файла

·        Экспорт данных в XML

·        Экспорт данных в Excel

·        Установка координатных осей

·        Масштабирование изображения в окне программы.

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

Данная панель имеет 4 главных блока:

1) Данные

2)      Оси

)        Линии

)        Оцифровка

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

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

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

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

3.2 Процесс подготовки изображений

 

.2.1 Процесс удаления координатной решетки

Удаление координатной решетки может понадобится в случае. если она мешает процессу оцифровки в автоматическом режиме. Для этого в разработанном программном обеспечении было разработано 2 алгоритма:

·    Алгоритм сегментации по цветовому признаку.

·        Алгоритм проекций.

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

Рисунок 21 - Удаление координатной решетки методов цветовой сегментации.

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

3.2.2 Процесс удаления шумов

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

Рисунок 22 - Модуль удаления шумов с изображения.

Для удаления шумов реализовано 4 алгоритма:

·    Гармонический фильтр

·        Контр-гармонический фильтр

·        Геометрический фильтр

·        Фильтр для удаления точек

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

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

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

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

Все эти фильтры разработаны для удаления шума вида «соль и перец» или импульсного шума. Данные методы не гарантируют 100% идеального результата работы и настройки должны подбираться индивидуально для каждого изображения.

3.3 Процесс обработки изображения


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

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

Рисунок 23 - Установление осей с помощью пункта меню «Оси».

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

Рисунок 24 - Блок оцифровки

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

Рисунок 25 - Отображение области оцифровки.

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

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

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

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

Оцифровка по области - содержит в себе реализацию двух алгоритмов, соответственно состоит из двух этапов:

1) Сегментация исходного изображения по цветам.

2)      Оцифровка изображения по цветам.

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

Рисунок 26 - Результат оцифровки по области.

3.4 Процесс экспорта числовых данных

Для экспорта числовых данных приложение предоставляет 2 формата:

·  Формат документа Excel.

·        Формат документа XML.

Результат экспорта выше приведенного графика в соответствующие форматы приведен на рисунке 27 и рисунке 28.

Рисунок 27 - Данные в формате XML.

Рисунок 28 - Данные в формате Excel.

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

3.5 Процесс создания графиков из внешних или внутренних источников

Процесс генерации графиков с использованием программного обеспечения GraphTrace достаточно прост, пользователю необходимо заполнить соответствующие поля, добавить линии в список и вставить данные из Excel. После чего нажать кнопку сгенерировать. График будет сгенерирован в отельном окне. Пользователь сможет сохранить график в качества рисунка, а также исследовать его, используя встроенные механизмы модуля. Внешний вид модуля для ввода данных представлен на рисунке 29. Результат работы модуля представлен на рисунке 30. После того, как график сгенерирован он может быть сохранен в виде изображения на внешнем носителе, а также исследован с помощью встроенной функции увеличения/уменьшения. Модуль поддерживает возможность отображения нескольких графиков, может создавать графики в разных цветах. Для этого при добавлении линии в список пользователю необходимо указать желаемый цвет.

Рисунок 29 - Форма для ввода данных.

Рисунок 30 - Результат работы модуля.

Заключение


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

Разработка программного обеспечения выполнена в среде Microsoft Visual Studio 2008. Для реализации использовался .Net Framework и язык C#.

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

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

Список использованных источников


1.     Очков В. MathCAD 12 для студентов и инфенеров.-С.-Пб.:БХВ- Петербург, 2005.- 464с.

2.      Свободная энциклопедия «Википедия» [Электронный ресурс] http://ru.wikipedia.org/Оцифровка (Дата обращения 01.05.2011).

.        Свободная энциклопедия «Википедия» [Электронный ресурс] http://ru.wikipedia.org/Обратная_задача (Дата обращения 20.04.2011).

.        Математические модели и обратные задачи (ВАТУЛЬЯН А.О. , 1998), МАТЕМАТИКА [Электронный ресурс]. http://www.pereplet.ru/obrazovanie/stsoros/673.html (Дата обращения 20.04.2011).

.        Максимов Ю.А., Филлиповская Е.А. Алгоритмы решения задач нелинейного программирования. - М.: МИФИ, 1982.-52с.

.        Бутаков Е.А., Островский В.И., Фадеев И.Л. Обработка изображений на ЭВМ.-М.:Радио и связь, 1987.

7.      Применение волнового алгоритма для нахождения скелета растрового изображения. [Электронный ресурс] <http://ocrai.narod.ru/vectory.html> (Дата обращения 04.05.2011).

.        Свободная энциклопедия «Википедия» [Электронный ресурс] http://ru.wikipedia.org/Визуализация (Дата обращения 10.05.2011).

9.      Myler H.R., Weeks A.R. The Pocket Handbook of Image Processing Algorithmes in C.-Florida: Department of Electrical & Computer Engineering University of Central Florida, 1993.-303c.

.        Comparison of Denoising Filters, CS MSU GRAPHICS&MEDIA LAB, 5 April 2003

11.    Шилдт Г. Полный справочник по С#. / Пер. с англ. - М.: Изд. Вильямс,2004

.        Гамма Э. Приемы объектно-ориентированного проектирования. Паттерны проектирования. / Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж - СРб.: Питер, 2008. - 336 с.

.        Троелсен Э. C# и платформа .NET. Библиотека программиста. - СПб.: Питер, 2007. - 796 с.

.        Петцольд Ч. Программирование для Microsoft Windows на C#./ Пер. с англ. - М.: Изд. Русская редакция,2002

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

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!