Домашня Контрольна робота

advertisement
http://antibotan.com/ - Всеукраїнський студентський архів
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ
"КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ"
Видавничо-поліграфічний інститут
Кафедра репрографії
ДОМАШНЯ КОНТРОЛЬНА РОБОТА
з дисципліни
Основы цифровой иллюстрации.
на тему:
«Основы работы в програмне MatLab»
Студента гр. ЗРп-81
_______________
(підпис)
/Ільницький В.В./
Перевірив
_______________
(підпис)
/____________/
«__»____________ 20__ р.
Київ – 2010
http://antibotan.com/ - Всеукраїнський студентський архів
1) Арифметические и тригонометрические операции
Операции с арифметическими действиями.
375/(5*(0.53-0.38)*(1.35+3.26)*12)= 9.0383
Произведем действия с использованием функций и значений
a=3.7; b=0.65; A=3\pi;
disp(sqrt((a*sqrt(b))/(sqrt(tan(A^4)))))
1.3612
http://antibotan.com/ - Всеукраїнський студентський архів
2) Операции с векторами и матрицами
Введем матрицу.
A=[1 3 5 7 9; 2 4 6 8 0; 45 4 8 9 0]
Действия с векторами
x=[4 3 7]; y=[5 4 1];
Суммирование
v=x+y
Вычитание
v=x-y
Умножение
Транспортирование
http://antibotan.com/ - Всеукраїнський студентський архів
v=x*12
Умножение двух
v=x'*y
v=x*y'
x'
векторов
http://antibotan.com/ - Всеукраїнський студентський архів
3)Обработка графики с помощью программы MatLAB
3.1) Создание бинарного изображения
Считывание и отображение изображения.
Очистим рабочее пространство MATLAB, закроем все открытые окна просмотра и
закроем все открытые средства Image Tools.
clear, close all, imtool close all
Считаем и визуализируем полутоновое изображение rice.png.
Оценка и аппроксимация значений пикселей фона
Рассматриваемое изображение характеризуется неравномерной засветкой фона по полю
изображения. Поэтому сначала с помощью операции морфологического раскрытия
оценим интенсивность фона. При выполнении операции морфологического раскрытия
используется структурный элемент.
В примере используется функция imopen, которая выполняет морфологическое
раскрытие. При этом также используется функция strel для создания структурного
элемента в виде диска с радиусом 15.
background = imopen(I,strel('disk',15));
Для просмотра и оценки фона используются следующие команды
figure, imshow(background)
http://antibotan.com/ - Всеукраїнський студентський архів
Аппроксимация и просмотр поверхности фона
Используем команду surf для отображения поверхности фона. С помощью команды surf
создается цветная параметрическая поверхность, которая дает возможность
просматривать прямоугольную область исследуемого изображения. Функция surf работает
с данными, которые представлены в формате double. Поэтому, прежде чем применять эту
функцию, данные необходимо перевести в формат double.
figure, surf(double(background(1:8:end,1:8:end))),zlim([0 255]);
set(gca,'ydir','reverse');
В данном примере отображается только каждый восьмой пиксель по каждому
направлению. В приведенном примере существует также возможность установки
масштаба и других параметров.
На основе этого можно проводить анализ фона исследуемого изображения.
Создание изображения с равномерным фоном
Для создания изображения с более равномерным фоном, вычтем изображение фона background из
исходного изображения I.
I2 = imsubtract(I,background);
Отобразим полученное изображение с более равномерным фоном.
figure, imshow(I2)
http://antibotan.com/ - Всеукраїнський студентський архів
Улучшение контраста на обрабатываемом изображении
После вычитания, полученное изображение будет иметь более равномерный фон и будет более
темным. Используем функцию imadjust для повышения контраста изображения.
I3 = imadjust(I2);
Функция imadjust увеличивает контраст изображения путем растяжения значений интенсивностей
динамического диапазона. Для более детальной информации см. описание функции imadjust.
figure, imshow(I3);
Создание бинарного изображения.
Бинарное изображение можно создать используя функцию thresholding. Однако функция
graythresh автоматически определяет подходящий порог, который используется для
преобразования полутонового изображения в бинарное. Функция im2bw выполняет это
преобразование.
level = graythresh(I3);
bw = im2bw(I3,level);
figure, imshow(bw)
http://antibotan.com/ - Всеукраїнський студентський архів
Возвращаемое функцией im2bw бинарное изображение bw представлено в формате
logical. В этом можно убедится, воспользовавшись функцией whos. Приложение Image
Processing Toolbox использует логические массивы для представления бинарных
изображений.
whos
Реакцией системы MATLAB на эту функцию будет
Name
Size
Bytes Class
I
256x256
65536 uint8 array
I2
256x256
65536 uint8 array
I3
256x256
65536 uint8 array
background
256x256
65536 uint8 array
bw
256x256
65536 logical array
level
1x1
8 double array
В общей сложности используется 327681 элемента, которые занимают 327688 байт.
Определение числа объектов на изображении
После преобразования изображения в бинарное, можно использовать функцию bwlabel
для определения числа объектов (зерен риса) на изображении. Функция bwlabel отмечает
все компоненты на бинарном изображении bw и возвращает их число в виде значения
numObjects.
[labeled,numObjects] = bwlabel(bw,4);
numObjects
ans =
101
http://antibotan.com/ - Всеукраїнський студентський архів
Точность результата зависит от некоторых факторов, включая
 размер объектов;
 соприкасаются ли между собой объекты (в этом случае они могут определятся как
один объект);
 точность аппроксимации фона.
 выбор связности.
Анализ матрицы меток.
Для проведения анализа формирования матрицы меток, возвращаемой функцией bwlabel,
рассмотрим значения пикселей изображения. Есть несколько путей получения значений
пикселей изображения. Например, используя функцию imcrop, можно просматривать
небольшие порции изображения. Другой путь состоит в использовании приложения Pixel
Region tool для просмотра значений пикселей. Отобразим матрицу меток с
использованием функции imshow,
figure, imshow(labeled);
Запуск приложения Pixel Region tool.
impixelregion
По умолчанию, оно автоматически связывает себя с изображением в текущем окне
просмотра. Приложение Pixel Region tool рисует прямоугольник с центром в видимой
части изображения. Расположение этого прямоугольника определяет, какие пиксели будут
отображаться в Pixel Region tool. При перемещении прямоугольника значения
отображаемых в окне Pixel Region tool пикселей обновятся.
На следующем изображении представлен Image Viewer с прямоугольником Pixel Region,
размещенным на границе двух рисовых гранул. Отметим, что значения пикселей фона и
отдельных гранул являются одинаковыми. Так, в частности, значение фона равно 0.
http://antibotan.com/ - Всеукраїнський студентський архів
Отображение матрицы меток в виде псевдоцветного индексного изображения
Один из возможных путей отображения матрицы меток состоит в использовании
псевдоцветного индексного изображения. В псевдоцветном изображении числа, которые
идентифицируют каждый объект в матрице меток, отображаются разным цветом, который
связан с соответствующей палитрой цветов. Такое представление позволяет различать
различные объекты.
Для просмотра матрицы меток используется функция label2rgb. Эта функция применяется
при создании палитры, цвета фона и цвета каждого объекта изображения.
pseudo_color = label2rgb(labeled, @spring, 'c', 'shuffle');
imshow(pseudo_color);
http://antibotan.com/ - Всеукраїнський студентський архів
Измерение свойств объектов на изображении.
Функция regionprops применяется для измерения свойств объектов в некоторой
окрестности изображения и представляет результат в виде массива. Если применить это к
изображению с отмеченными компонентами, то создается структура для каждой
компоненты.
В этом примере используется функция regionprops для создания структурированного
массива, содержащего некоторые основные свойства. Если установить свойствам
параметр 'basic', тогда функция regionprops возвращает три измеренных параметра:
площадь, центроид (или центр масс) и ограничивающий прямоугольник (локальная
окрестность). В данном случае ограничивающий прямоугольник представляет собой
локальную окрестность, отображающую гранулы риса.
graindata = regionprops(labeled,'basic')
Система MATLAB выдает такой результат
graindata =
101x1 struct array with fields:
Area
Centroid
BoundingBox
Для поиска области с 51-м отмеченным компонентом, необходимо найти поле Area field и
его 51 элемент в структуре массива graindata.
graindata(51).Area
В этом случае результат будет таким
ans =
140
Для поиска наименее возможного прямоугольника и центроида (центра масс) некоторых
компонентов используется следующий код:
graindata(51).BoundingBox, graindata(51).Centroid
ans =
107.5000 4.5000 13.0000 20.0000
ans =
114.5000 15.4500
http://antibotan.com/ - Всеукраїнський студентський архів
Вычисление статистических свойств объектов изображения
Функции системы MATLAB могут использоваться для вычисления статистических
свойств объектов. Сначала используется функция max для поиска наибольшего зерна. (В
нашем примере наибольшими являются два зерна риса, которые соприкасаются.)
max([graindata.Area])
Результат представляется в виде
ans =
404
Далее с помощью функции find найдем те компоненты, которыми отмечены зерна риса с
этой площадью.
biggrain = find([graindata.Area]==404)
Результат представляется в виде
biggrain =
59
Найдем средний размер всех зерен риса.
mean([graindata.Area])
Результат будет представлен в виде
ans =
175.0396
Постоим гистограмму распределения зерен риса по их размеру (при этом будем
использовать 20 позиций при градации по оси площади). Из гистограммы видно, что
основная часть зерен риса имеет площадь от 150 до 250 пикселей.
hist([graindata.Area],20)
http://antibotan.com/ - Всеукраїнський студентський архів
http://antibotan.com/ - Всеукраїнський студентський архів
Уменьшение количества цветов на индексном изображении.
Для уменьшения количества цветов на изображении используется также функция
imapprox. Функция imapprox использует некоторые методы аппроксимации. По сути,
функция imapprox сначала с помощью функции ind2rgb выполняет преобразование
изображения в формат RGB, а потом использует функцию rgb2ind для преобразования в
индексное изображение с измененным количеством цветов.
Рассмотрим пример формирования изображений, которые содержат 128 и 16 цветов с
использованием функций rgb2ind и imapprox соответственно.
L=imread('peppers.png');
figure,imshow(L);
Исходное изображение
L=im2double(L);
[x,map] = rgb2ind(L, 128);
figure,imshow(x,map);
Изображение 128 цветов.
http://antibotan.com/ - Всеукраїнський студентський архів
Изображение 16 цветов
http://antibotan.com/ - Всеукраїнський студентський архів
Сглаживание цветовых переходов
Метод диффузионного псевдосмешения цветов (dithering).
При использовании функций rgb2ind или imapprox для уменьшения количества цветов на
изображении, качество результирующего изображения немного ниже. Это связано с
уменьшением количества цветов, с помощью которых отображается изображение. Обе
функции - rgb2ind и imapprox - применяют метод диффузионного псевдосмешения цветов
(dithering). Это приводит к визуальному увеличению количества отображаемых цветов.
Метод dithering изменяет цвета пикселей окрестности таким образом, что средний цвет
окрестности аппроксимирует исходный RGB-цвет.
Рассмотрим пример работы метода диффузионного псевдосмешения цветов (dithering).
1. Считывание и визуализация исходного изображения.
rgb=imread('onion.png');
imshow(rgb);
2. Создание индексного изображения с восьмью цветами без применения метода
диффузионного псевдосмешения цветов (dithering).
[X_no_dither,map]=rgb2ind(rgb,8,'nodither');
figure, imshow(X_no_dither,map);
http://antibotan.com/ - Всеукраїнський студентський архів
3. Создание индексного изображения с восьмью цветами с применением метода
диффузионного псевдосмешения цветов (dithering).
[X_dither,map]=rgb2ind(rgb,8,'dither'); figure, imshow(X_dither,map);
Отметим, что обработка изображения методом диффузионного псевдосмешения цветов
(dithering) приводит к визуальному увеличению отображаемых цветов. Однако возникает
риск возникновения ложных контуров.
Download