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

Обзор алгоритмов, при помощи которых можно создавать дескрипторы изображений. Описание платформы 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

Area

26545

26539

26548

26542

26538

26539

26549

ConvexArea

67282

67300

67248

67055

67256

67311

67311

Eccentricity

0,78842

0,788412

0,788495

0,788457

0,788414

0,788492

0,788388

EquivDiameter

183,8427

183,8219

183,8531

183,8323

183,8185

183,8219

183,8566

EulerNumber

1

1

1

1

1

1

1

Extent

0,289691

0,303705

0,321486

0,33858

0,32009

0,303476

0,28852

FilledArea

26545

26539

26548

26542

26538

26539

26549

MajorAxisLength

443,7848

443,7732

443,8385

443,8076

443,7793

443,8439

443,8304

MinorAxisLength

272,9888

272,9861

272,9788

272,9816

272,9888

272,9838

273,0347

Orientation

75,14465

80,14769

85,15494

-89,8509

-84,8575

-79,8598

-74,8496

Solidity

0,394533

0,394339

0,394778

0,395824

0,394582

0,394274

0,394423

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

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

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

-15

-10

-5

0

5

10

15

Area

38319

38320

38320

38317

38320

38318

38313

ConvexArea

73475

73468

73484

73146

73470

73458

73469

Eccentricity

0,501399

0,501821

0,501579

0,501709

0,501601

0,501586

0,501748

EquivDiameter

220,8829

220,8858

220,8858

220,8772

220,8858

220,88

220,8656

EulerNumber

0

0

0

0

0

0

0

Extent

0,375533

0,398006

0,42566

0,461051

0,427202

0,400569

0,376585

FilledArea

72964

72969

72967

72966

72966

72967

72967

MajorAxisLength

403,0233

403,0885

403,0525

403,073

403,0588

403,0585

403,0865

MinorAxisLength

348,7022

348,6601

348,6854

348,6728

348,6858

348,6889

348,6754

Orientation

76,30433

81,27037

86,2968

-88,7051

-83,7446

-78,6883

-73,7059

Solidity

0,521524

0,521588

0,521474

0,523843

0,521573

0,521631

0,521485

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

Как можно заметить, дескриптор «EulerNumber» является самым неэффективным для распознавания символов. «Orientation» в теории может пригодиться для работы с масштабированными изображениями, но, как видно из приведенных результатов, его значения повторяются у нескольких символов. Остальные дескрипторы, напротив, дают не плохие результаты, позволяющие отличить оду букву от другой, однако, они имеют некоторую погрешность, по этому оправданным будет выделить те значения, которые менее всего будут страдать от округления. К таковым можно отнести скаляры с расхождениями в дробной части. Таким образом, список можно сократить до следующих пяти дескрипторов: «Eccentricity», «MajorAxisLength», «MinorAxisLength», «Solidity».

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

Таблица 3.5 Значение дескриптора Eccentricity

Буква\Угол поворота

-15

-10

-5

0

5

10

15

A

0,401149

0,400945

0,4014

0,401261

0,401209

0,401287

0,401561

B

0,745463

0,745412

0,745382

0,745399

0,74543

0,745456

0,745452

C

0,78842

0,788412

0,788495

0,788457

0,788414

0,788492

0,788388

D

0,501399

0,501821

0,501579

0,501709

0,501601

0,501586

0,501748

E

0,867103

0,867059

0,867124

0,867102

0,867107

0,867104

0,867096

F

0,88232

0,882407

0,882344

0,882354

0,882363

0,882269

0,882357

G

0,607605

0,607726

0,60771

0,607619

0,607821

0,607442

0,607546

H

0,431997

0,432014

0,43206

0,432097

0,432156

0,432059

0,432073

I

0,989344

0,98934

0,989342

0,989348

0,989342

0,98934

0,989345

J

0,970887

0,970856

0,970861

0,970871

0,97088

0,970876

0,970869

K

0,665635

0,665602

0,665576

0,665612

0,665586

0,665562

0,665585

L

0,931686

0,931696

0,931676

0,931666

0,931669

0,931647

0,931679

M

0,63107

0,63095

0,631092

0,63103

0,631121

0,63099

0,631164

N

0,492702

0,492142

0,492611

0,492668

0,492692

0,49311

0,492594

O

0,263704

0,26323

0,264091

0,263451

0,263631

0,263625

0,263213

P

0,768467

0,768514

0,768477

0,76854

0,768394

0,768404

0,76853

Q

0,539782

0,539333

0,539989

0,539767

0,539292

0,539599

0,539446

R

0,686651

0,68669

0,686689

0,686668

0,686647

0,68667

0,686591

S

0,882108

0,882113

0,882081

0,882087

0,882121

0,8821

0,882076

T

0,879762

0,879819

0,879783

0,879806

0,879819

0,879812

0,879716

U

0,317132

0,316302

0,31708

0,317065

0,316923

0,317201

0,317003

V

0,516194

0,516561

0,516147

0,516141

0,516478

0,516411

0,516242

W

0,527032

0,526732

0,526785

0,526806

0,526811

0,52652

0,526582

X

0,644854

0,644844

0,644855

0,644863

0,64471

0,644893

0,644876

Y

0,679041

0,679463

0,679131

0,6791

0,679065

0,679045

0,679114

Z

0,876572

0,876616

0,876597

0,876602

0,876614

0,876604

0,876571

Таблица 3.6 Значение дескриптора MajorAxisLength

Буква\Угол поворота

-15

-10

-5

0

5

10

15

A

335,4849

335,4249

335,4469

335,4764

335,4541

335,414

335,4942

B

384,1541

384,1598

384,1444

384,1496

384,1638

384,1921

384,1779

C

443,7848

443,7732

443,8385

443,8076

443,7793

443,8439

443,8304

D

403,0233

403,0885

403,0525

403,073

403,0588

403,0585

403,0865

E

416,6004

416,5639

416,5915

416,5827

416,5918

416,5406

416,5868

F

367,8594

367,9274

367,8843

367,8947

367,9062

367,9103

367,8905

G

411,7913

411,7767

411,818

411,7854

411,8325

411,7927

411,8011

H

368,9199

368,9022

368,9159

368,9144

368,9166

368,8953

368,9154

I

364,9091

364,8435

364,8683

364,8854

364,8684

364,8436

364,8839

J

395,9001

395,8975

395,8614

395,8904

395,9088

395,9002

395,9047

K

369,0059

368,9782

369,002

368,9803

368,9651

368,9558

369,0037

L

411,1539

411,1835

411,1406

411,1338

411,148

411,0899

411,1437

M

459,6054

459,6214

459,6445

459,6144

459,5865

459,6298

459,624

N

376,8029

376,7651

376,8053

376,8027

376,7966

376,8353

376,8162

O

400,9037

400,8504

400,9165

400,878

400,8862

400,901

400,866

P

351,4187

351,4192

351,4064

351,4327

351,4085

351,4141

351,413

Q

381,7988

381,6971

381,8338

381,7726

381,6964

381,769

381,7199

R

365,021

365,0316

365,0092

365,0118

365,0293

365,0141

364,9956

S

414,9052

414,8879

414,9001

414,9086

414,9316

414,9763

414,9265

T

395,6771

395,7145

395,727

395,7193

395,7311

395,6915

395,6559

U

380,7695

380,7361

380,7761

380,7869

380,7673

380,7792

380,7951

V

358,505

358,5563

358,5045

358,4958

358,5691

358,5446

358,5297

W

363,073

363,0326

363,068

363,0635

363,0629

363,0117

363,0467

X

374,1673

374,0911

374,141

374,1282

374,1519

374,1442

374,0966

Y

343,459

343,4869

343,437

343,4539

343,4749

343,4259

343,4113

Z

460,5774

460,5573

460,5632

460,5415

460,5711

460,5509

460,5302

Рис 3.6 - График демонстрирующий различий значений параметров дескриптор Eccentricity для символов английского алфавита

Таблица 3.7 Значение дескриптора MinorAxisLength

Буква\Угол поворота

-15

-10

-5

0

5

10

15

A

307,3085

307,2834

307,2368

307,2842

307,2713

307,2232

307,2565

B

256,0566

256,0823

256,0852

256,0814

256,0776

256,0851

256,0775

C

272,9888

272,9861

272,9788

272,9816

272,9888

272,9838

273,0347

D

348,7022

348,6601

348,6854

348,6728

348,6858

348,6889

348,6754

E

207,5205

207,5346

207,5009

207,5126

207,5132

207,4904

207,5186

F

173,1333

173,105

173,1283

173,126

173,1257

173,1922

173,1218

G

327,0608

327,0112

327,049

327,0516

327,0254

327,1134

327,0871

H

332,7198

332,7007

332,705

332,6969

332,6886

332,6865

332,7022

I

53,12848

53,12901

53,12798

53,11622

53,12777

53,12884

53,12308

J

94,83238

94,88291

94,86608

94,85656

94,84664

94,85105

94,86247

K

275,3807

275,371

275,3974

275,3693

275,3664

275,3674

275,3957

L

149,3572

149,3582

149,3629

149,371

149,3735

149,375

149,3617

M

356,5279

356,5852

356,5499

356,5498

356,4942

356,5764

356,5072

N

327,8932

327,9796

327,9146

327,9003

327,8898

327,8343

327,9278

O

386,7131

386,7137

386,6831

386,7161

386,7043

386,7193

386,7306

P

224,8692

224,8495

224,857

224,8474

224,8932

224,8928

224,8389

Q

321,4001

321,4244

321,3787

321,3817

321,4338

321,4197

321,4157

R

265,3656

265,3597

265,3439

265,3532

265,373

265,354

265,3679

S

195,4401

195,4279

195,4585

195,4582

195,4423

195,4799

195,4745

T

188,1106

188,0867

188,1193

188,0984

188,0948

188,081

188,134

U

361,1147

361,1886

361,1277

361,1398

361,1392

361,1152

361,1553

V

307,0493

307,014

307,0591

307,053

307,0428

307,0363

307,0601

W

308,556

308,589

308,6073

308,5988

308,597

308,6191

308,6349

X

285,9784

285,9233

285,9579

285,9455

286,0119

285,9483

285,9173

Y

252,1335

252,0197

252,0887

252,1107

252,1375

252,1079

252,0752

Z

221,6628

221,6157

221,6344

221,6204

221,6244

221,6232

221,6404

Рис 3.7 - График демонстрирующий различий значений параметров дескриптор MajorAxisLength для символов английского алфавита

Рис 3.8- График демонстрирующий различий значений параметров дескриптор MinorAxisLength для символов английского алфавита

Таблица 3.8 Значение дескриптора Solidity

Буква\Угол поворота

-15

-10

-5

0

5

10

15

A

0,566426

0,566821

0,566374

0,57006

0,56608

0,566276

0,566447

B

0,628305

0,628348

0,62839

0,63176

0,62812

0,628212

0,62853

C

0,394533

0,394339

0,394778

0,395824

0,394582

0,394274

0,394423

D

0,521524

0,521588

0,521474

0,523843

0,521573

0,521631

0,521485

E

0,527192

0,527355

0,527102

0,531503

0,527064

0,527334

0,527237

F

0,549497

0,549189

0,548997

0,552741

0,549632

0,549801

0,548672

G

0,4911

0,490876

0,491133

0,492753

0,491153

0,490833

0,490954

H

0,454195

0,454206

0,454188

0,457259

0,454212

0,454247

0,454207

I

0,977539

0,97767

0,977669

1

0,977669

0,97767

0,977603

J

0,605348

0,60363

0,605412

0,609368

0,606292

0,604492

0,606033

K

0,428302

0,428304

0,428652

0,430225

0,428467

0,42844

0,428513

L

0,511252

0,51203

0,513604

0,516549

0,513023

0,513027

0,514075

M

0,49673

0,49673

0,49673

0,49673

0,49673

0,49673

0,49673

N

0,524575

0,524775

0,524611

0,528161

0,524578

0,524838

0,524669

O

0,482154

0,482355

0,482396

0,483481

0,482352

0,482271

0,482419

P

0,626292

0,62658

0,627368

0,630009

0,626334

0,625876

0,626892

Q

0,463694

0,463962

0,463944

0,464577

0,464092

0,463875

0,463975

R

0,554997

0,554534

0,554616

0,557542

0,554471

0,554064

0,55436

S

0,49453

0,49404

0,494404

0,496052

0,494796

0,494723

0,494222

T

0,451633

0,452673

0,451575

0,453635

0,451829

0,452664

0,452961

U

0,436653

0,43671

0,436731

0,438852

0,4368

0,436695

0,436735

V

0,503431

0,503252

0,503084

0,506673

0,503359

0,503573

0,503592

W

0,473061

0,473099

0,472671

0,475202

0,473505

0,472966

0,473579

X

0,359173

0,358901

0,359862

0,360314

0,359097

0,35889

0,35894

Y

0,446589

0,448096

0,447525

0,448468

0,447271

0,448295

0,446955

Z

0,433697

0,433778

0,433746

0,436579

0,433726

0,43379

0,433923

Рис 3.9 - График демонстрирующий различий значений параметров дескриптор Solidity для символов английского алфавита

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

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

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

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); % чтение изображения из файла

i = imresize(f, 0.5); %Функция масштабирования изображения

J = research_5(i,'Исследование_35.xls', [ALP(l) '_0,5']); %вызов

%функции

clear f;

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

end

Были получены следующие результаты:

Таблица 3.9 Эталон символа 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.10 Увеличенный в два раза символ А

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

-15

-10

-5

0

5

10

15

Area

131600

131617

131602

131610

131615

131614

131625

ConvexArea

231798

231758

231742

231104

231781

231681

231848

Eccentricity

0,40145

0,401467

0,4016

0,401542

0,401664

0,401632

0,401561

EquivDiameter

409,3389

409,3653

409,342

409,3544

409,3622

409,3607

409,3778

EulerNumber

0

0

0

0

0

0

0

Extent

0,306882

0,309407

0,317031

0,330546

0,316583

0,3094

0,306504

FilledArea

170854

170867

170854

170861

170869

170866

170875

MajorAxisLength

670,865

670,8673

670,8743

670,8619

670,8969

670,893

670,8799

MinorAxisLength

614,4325

614,4297

614,397

614,4027

614,3988

614,4044

614,4135

Orientation

75,87825

80,86115

85,90236

-89,0893

-84,1426

-79,0401

-74,0911

Solidity

0,567736

0,567907

0,567882

0,569484

0,567842

0,568083

0,567721

Таблица 3.11 Уменьшенный в два раза символ А

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

-15

-10

-5

0

5

10

15

Area

8206

8202

8201

8204

8207

8200

8212

ConvexArea

14677

14667

14701

14518

14682

14657

14696

Eccentricity

0,402542

0,399795

0,402598

0,400927

0,400768

0,400834

0,400749

EquivDiameter

102,2165

102,1915

102,1853

102,204

102,2227

102,1791

102,2538

EulerNumber

-1

0

0

0

0

0

0

Extent

0,304739

0,309451

0,318609

0,330726

0,318842

0,311385

0,306968

FilledArea

10633

10631

10628

10632

10632

10628

10639

MajorAxisLength

167,7048

167,5299

167,6229

167,6447

167,596

167,5983

167,6582

MinorAxisLength

153,5172

153,5587

153,4381

153,581

153,5481

153,5453

153,6064

Orientation

76,01457

80,51617

85,77515

-89,4334

-84,4378

-79,356

-74,4129

Solidity

0,559106

0,559215

0,557853

0,565092

0,558984

0,55946

0,558792

Таблица 3.12 Эталон символа 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.13 Увеличенный в два раза символ B

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

-15

-10

-5

0

5

10

15

Area

153086

153073

153078

153081

153087

153081

153088

ConvexArea

243194

243126

243119

242523

243193

243209

243184

Eccentricity

0,745437

0,745415

0,745438

0,745428

0,745427

0,745409

0,745417

EquivDiameter

441,492

441,4732

441,4804

441,4847

441,4934

441,4847

441,4948

EulerNumber

-1

-1

-1

-1

-1

-1

-1

Extent

0,446016

0,488561

0,543061

0,590773

0,523826

0,473599

0,435399

FilledArea

232302

232310

232306

232310

232311

232312

232310

MajorAxisLength

768,282

768,2869

768,2956

768,2909

768,289

768,2728

768,2756

MinorAxisLength

512,1187

512,1403

512,1263

512,132

512,1315

512,1366

512,1309

Orientation

76,87591

81,87557

86,87657

-88,1237

-83,1228

-78,1244

-73,126

Solidity

0,629481

0,629604

0,629642

0,631202

0,629488

0,629422

0,629515

Таблица 3.14 Уменьшенный в два раза символ B

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

-15

-10

-5

0

5

10

15

Area

9553

9548

9551

9549

9548

9549

9549

ConvexArea

15355

15346

15341

15256

15337

15347

15312

Eccentricity

0,744948

0,745221

0,745139

0,745137

0,745294

0,745045

0,745137

EquivDiameter

110,2872

110,2583

110,2756

110,2641

110,2583

110,2641

110,2641

EulerNumber

-1

-1

-1

-1

-1

-1

-1

Extent

0,447741

0,486275

0,540888

0,583074

0,521578

0,474367

0,437225

FilledArea

14507

14505

14504

14504

14503

14512

14505

MajorAxisLength

191,9677

191,9647

191,9445

191,9434

191,9546

192,0112

191,9373

MinorAxisLength

128,066

128,0054

128,0094

128,0093

127,9831

128,0743

128,0052

Orientation

76,61018

81,5991

86,5897

-88,4058

-83,3905

-78,3824

-73,4357

Solidity

0,622143

0,622182

0,62258

0,625918

0,622547

0,622206

0,623629

По полученным результатам можно заметить, что устойчивый результат можно заметить только при использовании дескриптора «Eccentricity». Остальные дескрипторы изменяют свои значения при изменении масштаба символа, что естественно скажется негативно при использовании нейронной сети, обученной по этим дескрипторам.

3.3 Результаты исследования

После проведенных исследований можно сделать вывод, что из всего набора возможностей функции regionprops для выполнения поставленной задачи подходят только 4 дескриптора, а именно: «Eccentricity», «MajorAxisLength», «MinorAxisLength», «Solidity». По полученным данным приведенные выше дескрипторы очень хорошо позволяют отличать символа, даже если их повернуть на некоторый угол и в теории не реагировать на увеличение или уменьшение их масштаба. Использование четырех дескрипторов в связке позволит сократить погрешности при определении каждого символа. Но также по этим результатам видны некоторые погрешности, которые могут сказаться негативно при распознании изображения. Поэтому полученные результаты следует округлить до двух знаков после запятой, что поможет свести погрешность к минимуму. Также работа с масштабированными изображениями не является гарантированной. В этом случае придется воспользоваться функцией «imresize», которая позволит привести изображения примерно к эталонному масштабу. Из вышесказанного следует, что в дальнейшем нейронная сеть будет обучаться по данному набору, хотя и имеющему некоторые устранимые недостатки.

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

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

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

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

c = 255 - e;

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

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

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

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

f1 = roundn(D1.Eccentricity, -2);

f2 = roundn(D1.MajorAxisLength, -2); %округление результатов

f3 = roundn(D1.MinorAxisLength, -2); %regionprops до

f4 = roundn(D1.Solidity, -2); %двух знаков после запятой

H = [f1, f2, f3, f4]; %вектор значений

end

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

Заключение

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

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

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

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


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

  • Использование программного обеспечения 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

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