Исследование алгоритмов распознания символов. Формирование дескрипторов образов

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

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

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

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

Financial Time Series Toolbox

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

GARCH Toolbox

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

Financial Derivatives Toolbox

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

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

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

2.8 Функции пакета Image Processing Toolbox

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

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

Таблица 2.1 Форматы представления данных

Имя функции

Выполняемое действие

xyz2uint16

Преобразование цветовых данных из формата XYZ в uint16

xyz2double

Преобразование данных из XYZ формата в double

double

Представление элементов массива в формате double

uint8

Представление элементов массива в формате uint8

im2double

представление изображения массивом в формате double

im2uint8

представление изображения массивом в формате uint8

im2uint16

представление изображения массивом в формате uint16

im2mis

представление изображений в Java MemoryImageSource

im2java2d

преобразование изображения в буферизованное изображение Java

im2java

преобразование данных в Java-изображение

lab2uint8

преобразование данных из формата LAB в uint8

lab2uint16

преобразование данных LAB в формат uint16

lab2double

преобразование данных LAB в формат double

iptnum2ordinal

преобразование положительных целых чисел в строку

Таблица 2.2 Определение типа изображения

Имя функции

Выполняемое действие

isbw

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

isgray

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

isind

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

isrgb

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

Таблица 2.3 Работа с графическими форматами файлов

Имя функции

Выполняемое действие

imfinfo

чтение из файла информации об изображении

imread

чтение изображения из файла

imwrite

запись изображения в файл

imageinfo

создание информационных данных о изображении

imagemodel

доступ к свойствам изображений с точки зрения их отображения

Таблица 2.4 Установка и чтение глобальных переменных IPT

Имя функции

Выполняемое действие

iptsetpref

установка глобальных переменных IPT

iptgetpref

чтение глобальных переменных IPT

getline

выбор ломаной линии с помощью мышки

getpts

выбор точек с помощью мышки

getrect

выбор прямоугольника с помощью мышки

ipticondir

возвращает название директории, содержащей IPT и MATLAB иконки

iptgetapi

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

Таблица 2.5 Вывод изображений на экран и захват их с экрана

Имя функции

Выполняемое действие

imshow

вывод изображения на экран

truesize

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

subimage

вывод нескольких изображений в одном окне

colorbar

вывод на экран палитры

imcontour

построение для изображения линий уровня

immovie

создание видеопоследовательности

montage

вывод на экран всех кадров многокадрового изображения

warp

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

zoom

масштабирование изображения в окне изображения

getimage

получение изображения из графического объекта

dicominfo

чтение метаданных из DICOM

dicomread

чтение DICOM изображений

dicomwrite

запись изображений в DICOM

dicomuid

генерация идентификатора для DICOM

imview

отображение изображений в Image Viewer

imgcf

получение последних отображаемых изображений

imgca

получение недавно обрабатываемых данных

imgetfile

отображение диалогового окна открытия изображений

imhandles

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

dicomanon

анонимность DICOM

dicomdict

получение или установка активного словаря DICOM

impositionrect

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

imscrollpanel

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

analyze75info

считывание метаданных из установленного заголовка файла данных Analyze 7.5

analyze75read

считывание данных изображения из Analyze 7.5

Таблица 2.6 Преобразования типов изображений

Имя функции

Выполняемое действие

im2bw

бинаризация отсечением по порогу яркости

mat2gray

преобразование матрицы чисел в полутоновое изображение

rgb2gray

преобразование полноцветного изображения в полутоновое

ind2gray

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

gray2ind

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

grayslice

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

ind2rgb

преобразование палитрового изображения в полноценное

dither

диффузионное псевдосмешение цветов

rgb2ind

преобразование полноцветного изображения в палитровое

imapprox

уменьшение количества цветов палитрового изображения

cmunique

поиск палитры минимального размера

cmpermute

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

label2rgb

преобразование матрицы меток в RGB

Таблица 2.7 Конвертирование цветовых систем

Имя функции

Выполняемое действие

rgb2hsv

конвертирование из RGB в HSV

hsv2rgb

конвертирование из HSV в RGB

rgb2ntsc

конвертирование из RGB в YIQ

ntscc2rgb

конвертирование из YIQ в RGB

rgb2ycbcr

конвертирование из RGB в YCbCr

ycbcr2rgb

конвертирование из YCbCr в RGB

rgbplot

изображение компонентов RGB палитры (MATLAB Toolbox)

graythresh

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

iccread

считывание описания ICC

Таблица 2.8 Геометрические преобразования изображений

Имя функции

Выполняемое действие

imcrop

кадрирование изображений

imresize

изменение размеров изображения

imrotate

поворот изображения

checkerboard

создание шахматно

findbounds

определение границ при пространственных преобразованиях

imtransform

применение пространственных преобразований изображений

makeresampler

создание повторяющейся структуры

maketform

создание структуры пространственных преобразований (TFORM)

tformarray

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

tformfwd

применение прямых пространственных преобразований

para2fan

вычисление веерно

tforminv

применение обратных пространственных преобразований

fan2para

вычисление параллельно

fanbeam

вычисление веерно

fliptform

перестановка исходных и результирующих данных в структуре TFORM

ifanbeam

вычисление инверсного веерно

applycform

применение преобразования цветовых пространств

makecform

создание структуры преобразования цветовых значений

whitepoint

описание полноцветной белой точки в цветовом пространстве

immagbox

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

Таблица 2.9 Анализ изображений

Имя функции

Выполняемое действие

imhist

построение гистограммы

improfile

построение профиля

impixel

определение значения пиксела

pixval

управление режимом отображения значений пикселов

mean2

вычисление среднего значения элементов матрицы

std2

вычисление среднеквадратического отклонения элементов матрицы

corr2

вычисление коэффициентов корреляции между двумя матрицами

xcorr2

вычисление двумерной взаимной корреляционной функции

imabsdiff

определение отличительных признаков двух изображений

imadd

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

imcomplement

дополнение изображений

imdivide

разделение двух изображений или разделения изображения на константу

imlincomb

вычисление линейной комбинации двух изображений

immultiply

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

imsubtract

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

regionprops

определение свойств области изображения

cpstruct2pairs

конвертирование cpstruct в наиболее важные контрольные точки

cp2tform

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

cpcorr

определение согласованных контрольных точек с использованием кросс

cpselect

инструмент выбора контрольных точек

normxcorr2

нормализация двумерной кросс

deconvblind

улучшение изображений с использованием обратной свертки

deconvlucy

улучшение изображений с использованием метода Лаки

deconvreg

улучшение изображений с использованием регуляризационной фильтрации

deconvwnr

улучшение изображений с использованием фильтра Винера

ippl

проверка наличия библиотеки функций (Intel Performance Primitives Library (IPPL))

getrangefromclass

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

graycomatrix

полутоновая матрица смежности для изображений

graycoprops

свойства полутоновых матриц смежности

hough

преобразование Хо

houghlines

получение линий сегментации на основе преобразований

houghpeaks

локализация пиков при преобразованиях Хо

imdisplayrange

отображение динамического диапазона яркостей изображения

entropy

энтропия интенсивности элементов изображения

entropyfilt

локальная энтропия интенсивностей элементов изображения

impixelinfoval

средства получения информации о пикселе без текстовых меток

getimagemodel

восстановление моделей объектов изображения на основе объектов изображения

impixelregion

средства просмотра локального массива пикселей

impixelregionpanel

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

impixelinfo

средства получения информации о пикселях

Таблица 2.10 Улучшение изображений

Имя функции

Выполняемое действие

histeq

выравнивание гистограммы

imadjust

контрастирование с гамма-коррекцией

brighten

управление яркостью палитры

imnoise

добавление шума

roifill

заполнение областей интереса

stretchlim

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

edgetaper

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

otf2psf

преобразование оптической функции в функцию протяженности точек

psf2otf

преобразование функции протяженности точек в оптическую функцию

adapthisteq

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

decorrstretch

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

axes2pix

интерактивный методы регулирования контраста и яркости

imcontrast

средства усиления контраста изображения

Таблица 2.11 Фильтрация изображений

Имя функции

Выполняемое действие

conv2

свертка изображений

convn

свертка N-мерных сигналов

convmtx2

вычисление матрицы свертки

filter2

двумерная линейная фильтрация

freqz2

двумерная АЧХ

fspecial

задание маски предопределенного фильтра

fsamp2

формирование маски линейного фильтра по желаемой АЧХ

ftrans2

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

fwind1

формирование маски линейного фильтра по желаемой АЧХ с использованием одномерного окна

fwind2

формирование маски линейного фильтра по желаемой АЧХ с использованием двумерного окна

blkproc

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

bestblk

определение размера блока

nlfilter

обобщенный нелинейный фильтр

colfilt

оптимизированная операция фильтрации

im2col

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

col2im

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

ordfilt2

ранговая фильтрация

medfilt2

медианная фильтрация

wiener2

адаптивная винеровская фильтрация

roifilt2

фильтрация областей интереса

imfilter

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

freqspace

определение отзыва в двумерной частотной области (MATLAB Toolbox)

Таблица 2.12 Сегментация изображений

Имя функции

Выполняемое действие

poly2mask

преобразование некоторой области в маску

qtdecomp

сегментация методом разделения

qtgetblk

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

qtsetblk

замена блоков-результатов сегментации

edge

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

roipoly

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

roicolor

бинаризация по заданным цветам

watershed

Алгоритм маркерного водораздела

Таблица 2.13 Морфологические операции над бинарным изображением

Имя функции

Выполняемое действие

uintlut

вычисление новых значений массива на основе табличных преобразований

applylut

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

bwboundaries

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

bwmorph

морфологические операции над бинарным изображением

bwareaopen

открытие бинарных площадей (малых объектов)

bwdist

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

bwfill

заполнение областей фона

bwhitmiss

бинарные hit

bwlabeln

установка метки связанных элементов в многомерных бинарных изображениях

bwpack

упаковка бинарных изображений

bwperim

выделение границ бинарных объектов

bwselect

выделение объектов

bwtraceboundary

oтслеживание контуров бинарных изображений

bwulterode

предельная эрозия

bwunpack

распаковка бинарных изображений

conndef

отсутствие связности

dilate

наращение бинарного объекта

erode

эрозия бинарного объекта

imbothat

выполнение низкочастотной фильтрации

imclearborder

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

imclose

закрыть изображение

imdilate

расширение изображения

imerode

эрозия изображения

imextendedmax

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

imextendedmin

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

imfill

заполнение областей изображения

imhmax

H - максимальные преобразования

imhmin

H - минимальные преобразования

imimposemin

установка минимума

imopen

открыть изображение

imreconstruct

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

imregionalmax

максимум области

imregionalmin

минимум области

imtophat

выполнение высокочастотной фильтрации

makelut

формирование таблицы перекодировки

Таблица 2.14 Поиск объектов и вычисление их признаков

Имя функции

Выполняемое действие

bwlabel

поиск объектов

bwarea

вычисление площади объектов

bweuler

вычисление числа Эйлера

imfeature

вычисление признаков объектов

imattributes

получение информации об атрибутах изображения

Таблица 2.15 Преобразования Фурье

Имя функции

Выполняемое действие

fft2

двумерное БПФ

fftn

n-мерное БПФ

ifft2

обратное двумерное БПФ

ifftn

n-мерное обратное БПФ

fftshift

перегрупировка выходного массива преобразования Фурье

Таблица 2.16 Дискретное косинусное преобразование

Имя функции

Выполняемое действие

dct2

двумерное ДКП

idct2

обратное двумерное ДКП

dctmtx

вычисление матрицы коэффициентов ДКП

Таблица 2.17 Преобразование Радона

Имя функции

Выполняемое действие

radon

прямое преобразование Радона

iradon

обратное преобразование Радона

phantom

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

Таблица 2.18 Создание и обработка структурных элементов

Имя функции

Выполняемое действие

getheight

создание вертикальных структурных элементов

getneighbors

определение местоположения соседних структурных элементов

getnhood

создание соседних структурных элементов

getsequence

создание последовательности разложенных структурных элементов

isflat

возвращение одинаковых структурных элементов

reflect

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

strel

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

translate

преобразование структурных элементов

Таблица 2.19 Операции с массивами

Имя функции

Выполняемое действие

padarray

пустой массив

Таблица 2.20 Демонстрация

Имя функции

Выполняемое действие

dctdemo

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

edgedemo

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

firdemo

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

imadjdemo

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

landsatdemo

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

nrfiltdemo

демонстрация фильтрации шумовой составляющей

qtdemo

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

roidemo

демонстрация обработки областей интереса

3. Создание дескрипторов образов объектов. Рассмотрение результатов

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

Выше было дано краткое описание функции regionprops и теперь пришло время рассмотреть его подробнее.

Как уже было сказано, главной особенностью данной функции является большое количество дескрипторов, которое мы можем получить. Задаются они в параметре properties. В этот большой перечень входят следующие значения: «Area», «BoundingBox», «Centroid», «ConvexArea», «ConvexHull», «ConvexImage», «Eccentreiciry», «EquivDiameter», «EulerNumber», «Extent», «Exrema», «FilledArea», «FilledImage», «Image», «MajorAxisLength», «MinorAxisLength», «Orientation», «PixelList» и «Solidity». Как видно, rgionprops действительно многогранен. И в такой ситуации будет естественным то, что не все перечисленные функции подойдут для решения данной задачи. Но чтобы понять, что будет получено при использовании дескриптора, следует сделать описание для каждого из них.

«Area»

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

«BoundingBox»

Представляет собой вектор размерностью , который определяет наименьший прямоугольник, в который входит исследуемая область. Полученный результат выглядит следующим образом: [ul_corner width], где ul_corner имеет вид [x y] и обозначает координаты верхнего левого угла прямоугольника, а width представляется как [x_ width y_ width] и содержит размеры этого прямоугольника вдоль соответствующих осей. На рисунке 3.1 представлен пример такого прямоугольника.

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

«Centroid»

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

В двумерном случае первый момент относительно оси x можно рассчитать по формуле:

(3.1)

а относительно оси y:

(3.2)

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

Рис. 3.2 - Центр масс области

«ConvexImage»

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

«ConvexArea»

Скаляр, содержащий число пикселей многоугольника (площадь).

«ConvexHull»

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

«Solidity»

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

«Eccentricity»

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

Рис. 3.3 - Изображение области и соответствующий ей эллипс

«MajorAxisLength»

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

«MinorAxisLength»

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

«Orientation»

Дескриптор содержит значение угла между большей осью эллипса и осью x. На рисунке 3.4 представлен описанный выше эллипс.

«EquivDiameter»

Рассматриваемый дескриптор является скаляром, содержащим диаметр окружности, площадь которой равно площади исследуемого объекта. Данное значение получают по формуле: , где Area - значение одноименного дескриптора regionprops.

Рис. 3.4 - Эллипс и его характеристики. Синим цветом выделены большая и малая оси а также ось x и угол между осями. Точки обозначают фокусы эллипса

«EulerNumber»

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

Сделаем предположение, что замкнутая поверхность S рода p подразделена на некоторое число областей. Это подразделение возможно получить, если отметить на S ряд вершин и соединить их между собой дугами кривых. В таком случае будет получено выражение: , где V - число вершин, E - число дуг и F - число областей. Число называется эйлеровой характеристикой поверхности. К примеру, для сферы выражение будет иметь вид , так как она имеет род равный нулю. Другой пример показан на рисунке 3.5, где изображена поверхность, составленная из плоских многоугольников. Данную поверхность можно деформировать в поверхность тора, следовательно род будет равен единице и выражение примет вид .

«Extent»

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

Рис. 3.5 - Непростой многогранник

«Extrema»

Представлен матрицей , в которой расположены пары координат x и y экстремальных точек области, записанные по строкам. Формат данного вектора следующий: [верхний-левый, верхний-правый, правый-верхний, правый-нижний, нижний-правый, нижний-левый, левый-нижний, левый-верхний].

«FilledImage»

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

«FilledArea»

Представлен скаляром, содержащим полное число пикселей в «FilledImage».

«Image»

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

«PixelList»

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

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

Данная функция имеет следующий синтаксис L=bwlabel(BW, n) или [L, num]=bwlabel(BW, n), где BW - бинарное изображение, n - связность объектов (может иметь значение 4 или 8), L - матрица с элементами, равными номерам объектов, которым принадлежат пиксели, num может дополнительно вывести число объектов. Матрица L имеет формат типа double.

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

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

function H = region_descr(x) %имя функции

e = rgb2gray(x); %преобразование полноцветного изображения

%в полутоновое

c = 255 - e;

d = im2bw(c); %бинаризация отсечением по порогу яркости

bw = bwareaopen(d, 5); %Фильтрация изображения

l = bwlabel(bw); %установка метки связанных элементов

D1 = regionprops(l, 'all'); %определение свойств области изображения

end

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

3.2 Исследование по нахождению подходящих дескрипторов

Теперь следует перейти к анализу дескрипторов с точки зрения выполнения поставленной задачи. Для начала отберем дескрипторы, результатами которых скаляры, что упростит дальнейший анализ, а также в дальнейшем можно использовать несколько дескрипторов в одном массиве для обучения нейронной сети. Учитывая эти факторы, список потенциально используемых дескрипторов сокращается до следующего вида: «Area», «ConvexArea», «Eccentricity», «EquivDiameter», «EulerNumber», «Extent», «FilledArea», «MajorAxisLenght», «MinorAxisLenght», «Orientation», «Solidity».

Следующим шагом будет сравнительный анализ результатов, получаемых при использовании приведенных выше дескрипторов, но с поворотом изображения на угол от -15 до 15 градусов с шагом в 5 градусов для 26 букв английского алфавита. Для упрощения проведения данной операции будет выполнено получение дескрипторов и вывод их результатов в excel файл. Этому способствует следующая m функция.

function O = research_5(x, N, y) %имя функции

e = rgb2gray(x); %преобразование полноцветного

%изображения в полутоновое

c = 255 - e;

d = im2bw(c); %бинаризация отсечением по порогу яркости

P = [0, 5, 10, 15, 20, 25, 30];

B = char('B', 'C', 'D', 'E', 'F', 'G', 'H');

%__________________________________________________________

%Цикл

for k = 1:1:7

A = -15 + P(k);

a = imrotate(d, A, 'bicubic'); %поворот изображения на определенный

%угол

bw = bwareaopen(a, 5); %Фильтрация изображения

l = bwlabel(bw); %установка метки связанных элементов

d1 = regionprops(l, 'all'); %определение свойств области изображения

u = B(k);

H = [d1.Area, d1.ConvexArea, d1.Eccentricity, d1.EquivDiameter, d1.EulerNumber, d1.Extent, d1.FilledArea, d1.MajorAxisLength, d1.MinorAxisLength, d1.Orientation, d1.Solidity]; %вектор значений

%regionprops

H=H'; %операция транспонирования

xlswrite(['C:\Users\Alexsey\Documents\Диплом\Буквы_1\' N],H,y,[u '2']);

%запись результатов в файл Excel

end

O = k;

end

Приведенная выше функция получает изображения, выполняет вычисления дескрипторов и осуществляет вывод данных в файл формата Excel 2003. Переменная «x» передает изображение, «N» - передает имя файла, который будет создан (если файла с таким именем не существует), и в который будет производиться запись результатов, «y» - имя листа, в который производиться запись. В коде используется почти тот же набор функций, что был описан выше, за исключением «imrotate», служащей для поворота изображения и «xlswrite», производящий запись в указанный файл на указанный лист.

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

ALP = char('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');

%___________________________________________________________

%Цикл

for l = 1:1:26

jpg=['C:\Users\Alexsey\Documents\Диплом\Буквы\' ALP(l) .jpg'];%Путь к

%изображениям

f=imread(jpg); % чтение изображения из файла

J=research_5(i,'Исследование_35.xls', ALP(l)); %Вызов функции

clear f;

clear J; %Очистка переменных

end

Следующим шагом будет представление результатов анализа с поворотом изображения для первых четырех букв представленный в виде таблиц и графиков (таблицы остальных символов представлены в приложении А). Для исследования используются изображения букв, найденные на просторах интернет сети. Каждое изображение представляет собой квадрат 350 x 350 пикселей в формате .jpg. Примеры приведены на рис. 3.1 и рис. 3.2.

a)b)

Рис 3.1 - a) Изображение буквы А b) Ограничивающая рамка и центр масс изображения

a)b)

Рис 3.2 - a) Изображение буквы B b) Ограничивающая рамка и центр масс изображения

Таблица 3.1 Значения дескрипторов для буквы A

Дескриптор\ Угол поворота

-15

-10

-5

0

5

10

15

Area

32979

32972

32972

32974

32973

32968

32974

ConvexArea

58223

58170

58216

57843

58248

58219

58212

Eccentricity

0,401149

0,400945

0,4014

0,401261

0,401209

0,401287

0,401561

EquivDiameter

204,915

204,8933

204,8933

204,8995

204,8964

204,8808

204,8995

EulerNumber

0

-1

0

0

0

0

0

Extent

0,307181

0,310998

0,31724

0,331264

0,317249

0,31096

0,307135

FilledArea

42770

42764

42764

42767

42768

42758

42764

MajorAxisLength

335,4849

335,4249

335,4469

335,4764

335,4541

335,414

335,4942

MinorAxisLength

307,3085

307,2834

307,2368

307,2842

307,2713

307,2232

307,2565

Orientation

75,9222

80,84296

85,91405

-89,1106

-84,0928

-79,1506

-74,017

Solidity

0,566426

0,566821

0,566374

0,57006

0,56608

0,566276

0,566447

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

Таблица 3.2 Значения дескрипторов для буквы B

Дескриптор\ Угол поворота

-15

-10

-5

0

5

10

15

Area

38326

38328

38328

38327

38321

38331

38324

ConvexArea

60999

60998

60994

60667

61009

61016

60974

Eccentricity

0,745463

0,745412

0,745382

0,745399

0,74543

0,745456

0,745452

EquivDiameter

220,9031

220,9089

220,9089

220,906

220,8887

220,9175

220,8973

EulerNumber

-1

-1

-1

-1

-1

-1

-1

Extent

0,445988

0,488585

0,542644

0,591649

0,523339

0,474605

0,435342

FilledArea

58108

58114

58114

58112

58107

58116

58111

MajorAxisLength

384,1541

384,1598

384,1444

384,1496

384,1638

384,1921

384,1779

MinorAxisLength

256,0566

256,0823

256,0852

256,0814

256,0776

256,0851

256,0775

Orientation

76,86362

81,88129

86,87877

-88,1255

-83,1381

-78,1553

-73,1396

Solidity

0,628305

0,628348

0,62839

0,63176

0,62812

0,628212

0,62853

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

Таблица 3.3 Значения дескрипторов для буквы C

Дескриптор\ Угол поворота

-15

-10

-5

0

5

10

15


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

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

    курсовая работа [178,7 K], добавлен 08.08.2011

  • Использование номеров индексных дескрипторов для обозначения файлов в программах для системных администраторов в операционной системе UNIX. Описание индексного дескриптора в POSIX. Адрес индексного дескриптора в записи директории, относящейся к файлу.

    контрольная работа [31,7 K], добавлен 18.06.2014

  • Программный комплекс MATLAB как мощное средство для высокоточного цифрового моделирования системы автоматического управления. Основные особенности построения временных характеристик с помощью пакета Control System и моделирования в системе Simulink.

    контрольная работа [2,3 M], добавлен 14.11.2012

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

    дипломная работа [6,6 M], добавлен 04.09.2014

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

    реферат [242,9 K], добавлен 24.04.2015

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

    дипломная работа [1,0 M], добавлен 16.06.2013

  • Общие свойства и возможности рабочего стола. Получение справок (Getting Help). Рабочее пространство системы MATLAB. Просмотр и редактирование массивов данных при помощи редактора Array Editor. Пути доступа системы. Операции с файлами.

    учебное пособие [1021,2 K], добавлен 28.05.2007

  • Спектр задач, которые решают математические программные пакеты (Maple, MathCad, Mathematica и MatLab). Математические исследования, требующие вычислений и аналитических выкладок. Разработка и анализ алгоритмов. Визуализация, научная и инженерная графика.

    презентация [148,7 K], добавлен 06.01.2014

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

    дипломная работа [2,1 M], добавлен 30.08.2010

  • Программный код Matlab, основные этапы и особенности его разработки. Принципы работы со скриптами и функциями, их структура. Типы и функциональные возможности комментариев. Входные и выходные параметры. Создание p-кода. Вывод данных в командное окно.

    презентация [303,9 K], добавлен 24.01.2014

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

    лабораторная работа [1,3 M], добавлен 31.10.2012

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

    курсовая работа [2,3 M], добавлен 15.04.2019

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

    лабораторная работа [53,1 K], добавлен 11.03.2012

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

    курсовая работа [4,7 M], добавлен 20.01.2016

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

    курсовая работа [1,3 M], добавлен 11.03.2014

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

    контрольная работа [388,3 K], добавлен 25.10.2012

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

    курсовая работа [4,8 M], добавлен 22.06.2011

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

    курсовая работа [432,2 K], добавлен 16.01.2013

  • Особенности работы в режиме командной строки в системе Matlab. Переменные и присваивание им значений. Комплексные числа и вычисления в системе Matlab. Вычисления с использованием функции sqrt. Неправильное использование функций с комплексными аргументами.

    дипломная работа [1,9 M], добавлен 30.07.2015

  • Системы компьютерной математики: Mathcad - интегрированный пакет, включающий связанные компоненты (текстовый редактор, вычислительный процессор, символьный процессор). MatLab – система, построенная на представлении и применении матричных операций.

    контрольная работа [473,2 K], добавлен 09.01.2012

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