Исследование методов обработки изображений с помощью пакета IMAGE PROCESSING TOOLBOX: Методические указания к лабораторным работам, страница 4

¨  B = imrotate(A, angle, method, 'crop') – возвращает изображение B, размеры которого совпадают с размерами исходного. Для этого берется центральная часть повернутого изображения.

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

Пример

%считываем исходное изображение

I = imread('ic.tif');

%поворачиваем по часовой стрелке на 4 градуса,

%линейные размеры получаемого изображения

%соответствуют линейным размерам исходного

J = imrotate(I,-4,'bilinear','crop');

%отображаем исходное

imshow(I);

%отображаем повернутое в новом окне

figure; imshow(J);

Команда PLOT

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

¨  plot(X, Z),

где X – вектор значений координат по оси X, Z – матрица значений функции Z=f(X).

Команда HOLD

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

Пример

%формируем вектор координат

i=0:0.001:4*pi

%отображаем на одном графике значения функций

%sin и cos для этого вектора

plot(sin(i), 'g'); hold; plot(cos(i), 'r');

Команда MESH

Функция mesh позволяет соединить друг с другом все соседние точки поверхности графика отрезками прямых и показывает плоскую проекцию такого объемного каркасно-ребристого тела.

Пример

%считываем изображение

I = imread('cameraman.tif');

%отображаем поверхность

mesh(double(I));

Команда SURF

В отличие от функции mesh, функция surf позволяет раскрасить не ребра, а грани каркасно-ребристого тела.

Пример

%считываем изображение

I = imread('cameraman.tif');

%отображаем поверхность

surf(double(I));

Команда IMHIST

Строит гистограмму распределения яркостей изображения. Команда имеет следующий синтаксис:

¨  imhist(I);

¨  imhist(I,n),

где  n– число интервалов, на которые разбивается весь диапазон яркостей изображенияIпри построении гистограммы.

Пример

%считываем изображение

I = imread('cameraman.tif');

%сторим гистограмму при 32 интервалах яркости

imhist(I,32);

Команда TEXT

Используется для отображения текста на графике. Имеет следующий формат:

¨  text(x, y, ’<текст>’) – помещает в заданной точке (x, y) двумерного графика начало текста, указанного в качестве третьего аргумента. Если x и y - одномерные массивы, заданный текст помещается во все позиции, определяемые координатами [x(i) y(i)];

¨  text(x, y, z, ’<текст>’) – выводит текст на трехмерный график.

Пример

%Записать символ ‘x’ в трех точках

%с координатами (1, 1), (5, 10), (10, 20)

plot([1 5 10], [1 10 20], ’x’);

%Написать, начиная с позиции (5, 10)

%текст ‘Action point’:

text(5, 10, ‘Action point’);

Команда XLABEL

Используется для размещения текста вдоль оси координат X двумерного или трехмерного графика. Команда имеет следующий формат:

¨  xlabel('<текст>') помещает текст: для двумерного графика вдоль оси x, для трехмерного графика - вдоль оси x либо под графиком.

Команда YLABEL

Используется для размещения текста вдоль оси координат Y двумерного или трехмерного графика. Команда имеет следующий формат:

¨  ylabel('<текст>') помещает текст: для двумерного графика вдоль оси y, для трехмерного графика - вдоль оси y либо под графиком.

Команда ZLABEL

Используется для размещения текста вдоль оси координат Z  трехмерного графика. Команда имеет следующий формат:

¨  zlabel('<текст>').

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

Пример

%формируем вектор координат

i=0:0.001:4*pi

%отображаем значения функции sin

plot(sin(i));

%выводим подпись под осью x вида

%«function y=sin(x)»

xlabel(‘function y=sin(x)’);

Команда LEGEND

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

¨  legend(‘<текст1>‘, ‘<текст2>‘, ‘<текст3>‘, ...) – добавляет к текущему графику пояснение в виде указанных текстовых строк;

¨  legend off – удаляет пояснение с текущего графика;

¨  legend(..., n) – устанавливает предельное количество позиций для размещения пояснения. Если оказывается, что в области графика места недостаточно, график перестраивается и пояснение размещается вне пределов графика. Если n = -1, то пояснение размещается вне области графика. Если n = 0, то пояснение размещается в области графика, если места для этого достаточно.

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

Пример

%Построим на одном графике

%функции Бесселя 1, 3 и 5-го порядка

x = 0 : .2 : 12;

plot(x, bessel(1, x), ‘-’, x, bessel(3, x), ‘--’, x, bessel(5, x), ‘-.’);

%отобразим соответствующий комментарий

legend('Porjadok 1', 'Porjadok 3', 'Porjadok 5', -1);

%отобразим линии сетки

grid;

4. Команды и операторы системы MATLAB,

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

Команды очистки

clcочистка командного окна.

closeallзакрытие всех окон с фигурами.

Матричные операторы

Оператор : применяется для формирования векторов и матриц или для выделения из них подвекторов, подматриц, подблоков массива.

Формирование векторов

A = j : k

если j >= k, то будет сформирован вектор A вида [j j+1 j+2 ... k]; если j < k, то пустой вектор А.

Для задания шага изменения значений создаваемого вектора используют следующую команду:

А = j : i : k,

если j <= k и i > 0 или j > k и i < 0, то будет сформирован вектор вида [j j+i j+2i... k]; если i < 0 и j < k, или i > 0 и j>k, то будет сформирован пустой вектор.

Выделение подблоков

A(i1 : i2, j1 : j2) – выделение подблока массива A со строками i1 : i2 и столбцами j1 : j2.

A(i, :) – обращение к i-й строке массива A;

A(:, j) – обращение к j-му столбцу массива A.