Система нахождения графических примитивов на изображении на основе преобразования Хафа

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



Pisoft Image Framework" позволяет проводить анализ профилей яркости, апертур, проекций и гистограмм, различные средства геометрических измерений; линейные, нелинейные и произвольные геометрические преобразования; алгебраические операции над одним или несколькими изображениями; линейные, нелинейные и произвольные яркостные и цветовые преобразования; линейную и нелинейную фильтрация изображений в пространственной и частотной области; сегментация изображений, выделение и анализ областей и контуров; математическая морфология Серра, wavelet transform; преобразование Хафа, обнаружение прямолинейных структур; текстурный анализ, вычисление статистик; выделение объектов, вычисление геометрических признаков.

Рассмотренные выше системы сведем в таблицу 3.

Таблица 3. Программные продукты, применяющие преобразование Хафа

СистемаАлгоритмыCognitive PassportБазовое преобразование Хафа, иерархическое преобразование ХафаMATLAB Image Processing ToolboxПрогрессивно-вероятностное преобразование Хафа, градиентные модификацииJunoБазовое преобразование Хафа, адаптивное преобразование ХафаPisoft Image FrameworkСлучайное преобразование Хафа, комбинаторное преобразование Хафа, иерархическое преобразование Хафа

.8 Выводы по главе

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

2. РАЗРАБОТКА ПРОГРАММНОГО ПРОДУКТА

.1 Структура программного продукта

Программный продукт "HoughTransform" выполнен в виде системы на основе трехуровневой архитектуры систем (см. Рисунок 16). В качестве источника данных в программе выступает само изображение, уровень бизнес-логики реализован на основе библиотеки ImageProcessing (см. Рисунок 17), уровень представления - приложение на основе WindowsForms.

.2 Руководство программиста

Характеристики программы

Программный продукт написан на языке C# на .Net Framework 4. В проекте применялась сторонняя библиотека EmguCV для эффективной работы с изображениями. Система состоит из трех основных частей: исполняемый файл HoughTransformSystem.exe, библиотека ImageProcessing.dll и группа библиотек EmguCV. Программный продукт реализует медианный и гауссов фильтр, операторы краев Канни, Собела и Лапласа. Из детектирующих алгоритмов в системе реализованы детектор Харриса, масочный детектор, детектор особенностей на основе преобразования Хафа, базовое преобразование Хафа, прогрессивно-вероятностная и иерархическая модификации преобразования Хафа.

Входные и выходные данные

В качестве входных данных выступают изображения с расширениями jpg, gif, bmp, png. Класс ImageSource представляет собой обертку для изображения и является промежуточным звеном между входным изображением и операциями по его обработке.

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

Основные классы

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

public ImageSource Open (string filename) - создает объект класса ImageSource, открывая файл изображения. Параметр filename - полный путь к файлу изображения.ImageSource Rotate (double angle, Color background) - возвращает изображение, повернутое на угол angle. Параметр background задает цвет фона, получаемого в результате поворота.

public ImageSource Resize (int width, int height) - возвращает изображение с измененными размерами. Width - ширина, height - высота.

public ImageSource Flip (FLIP flip) - возвращает изображение, отраженное относительно горизонтальной или вертикальной осей. Flip задает ось отражения.

public ImageSource Erode (ImageSource source, int iteration) - возвращает изображение, подвергнутое морфологической операции сужения. Iteration - задает количество проходов морфологическим фильтром.

public ImageSource Dilate (ImageSource source,