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

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 06.03.2013
Размер файла 3,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

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

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

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

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

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

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

class 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1) Данные

2) Оси

3) Линии

4) Оцифровка

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

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

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

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

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

3.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).

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

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

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

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

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

8. Свободная энциклопедия «Википедия» [Электронный ресурс] 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.

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

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

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

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

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

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.