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