Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4_laboratorka.docx
Скачиваний:
60
Добавлен:
18.12.2018
Размер:
2.62 Mб
Скачать

Задание 1

  1. Загрузить в рабочее пространство MATLAB изображение 1 из файла, указанного в таблице с вариантами заданий.

  2. Используя функцию whos определить тип и класс загруженного изображения. Запи­сать результат.

  3. Создать и отладить программу, решающую следующие задачи:

а) загрузить изображение с помощью функции imread. Если было выяснено, что изо- бражение цветное (состоит из трех компонент), преобразовать его в полутоновое с помощью функции rgb2gray;

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

[M, N];

в) определить максимальное Imax и минимальное Imin значения яркостей пикселов изо- бражения;

г) вывести загруженное изображение в графическое окно с помощью функции imshow, при этом сформировать пояснительные надписи: Original, MxN, Imax=xxx, Imin=xxx. Для того, чтобы не изменять исходное изображение при выводе на экран следует использовать функцию imshow без параметров.

записать изображение на диск в рабочую папку, используя функцию imwrite (f, 'filemame'), присвоив ему имя zad4_1 сохранив прежнее расширение.

f=imread ('C:\Users\veracat\Desktop\ТОИ(Matlab)\namber_0.tif');%загрузить изображение

whos f %определить тип и класс загруженного изображения

[M,N]= size(f) %определить размер

Imax=max(f(:)) %определить максимум яркости пикселов изображения

Imin=min(f(:)) %определить минимум

imshow (f)

title(['Original ',num2str(M),'*',num2str(N),' Imax= ',num2str(Imax),' Imin= ',num2str(Imin)])

imwrite(f,'zad4_1')%записать изображение на диск в рабочую папку

Результат:

>> ver5

Name Size Bytes Class Attributes

f 319x425 135575 uint8

M =

319

N =

425

Imax =

228

Imin =

37

  1. Модернизировать отлаженную программу, оформив решение задач а), б) и в) в виде М-функции, которая должна вызываться из программы.

М-ФАЙЛ

function [M, N, Imax, Imin]=VIZ5(zad4_1)

%функция ver5 загружает изображение, преобразует его в

%VIZ5 -файл входного изображения

%M, N - размер загруженного изображения

%Imax, Imin - максимальное и минимальное

% значения яркости пикселов

f=imread ('C:\Users\veracat\Desktop\ТОИ(Matlab)\namber_0.tif');%загрузить изображение

[M,N]= size(f); %определить размер

Imax=max(f(:)) %определить максимум яркости пикселов изображения

Imin=min(f(:)) %определить минимум

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

а) с помощью инструмента Data Cursor нанести на изображение информацию о четы- рех его угловых точках;

д) с помощью того же инструмента найти и нанести на изображение информацию о пикселах с максимальной и минимальной яркостью;

в) сохранить изображение из графического окна, вместе с нанесенными надписями, че­рез меню File\Save As, присвоив ему имя zad4_2 и сохранив прежнее расширение.

zad4_2 .fig

б) Загрузить сохраненные изображения из окна Current Directory в просмотрщик гра- фических файлов, используя опцию Open Outside MATLAB и проанализировать их. Уста- новить и записать отличия.

Задание 2

Создать и отладить программу, решающую следующие задачи:

а) загрузить изображение 2с помощью функции imread. Если изображение цветное (состоит из трех компонент), преобразовать его в полутоновое с помощью функции rgb2gray;

б) с помощью функции size определить пиксельный размер изображения в виде вектора [M, N];

в) определить максимальное Imax и минимальное Imin значения яркостей пикселов изо- бражения.

Для решения задач а), б) и в) использовать созданную в задании 1 М-функцию.

г) вывести загруженное изображение в графическое окно с помощью функции imshow, при этом сформировать пояснительные надписи: Original, MxN, Imax=xxx, Imin=xxx. Для

того, чтобы не изменять исходное изображение при выводе на экран следует использовать функцию imshow без параметров;

f=imread ('C:\Users\veracat\Desktop\ТОИ(Matlab)\tit512.tif');%загрузить изображение

[M,N]= size(f) %определить размер

Imax=max(f(:)) %определить максимум яркости пикселов изображения

Imin=min(f(:)) %определить минимум

Imshow (f)

title(['Original ',num2str(M),'*',num2str(N),' Imax= ',num2str(Imax),' Imin= ',num2str(Imin)])

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

левая верхняя точка массива будет (145,160),нижняя правая(145+110=255,160+110=271). В итоге получится команда на вырезание: f1=f(145:255,160:271)

Imshow (f1)

е) определить размеры получившегося фрагмента в виде вектора [M, N];

ж) определить максимальное Imax и минимальное Imin значения яркостей пикселов в изо- бражении фрагмента;

Код

[K,J]= size(f1)

imax=max(f1(:))

imin=min(f1(:))

Результат

K =

111

J =

112

imax =

222

imin =

42

з) вывести сформированный фрагмент изображения в графическое окно с помощью функции imshow, при этом сформировать пояснительные надписи: Fragment, MxN, Imax=xxx, Imin=xxx;

Imshow (f1)

title(['Original ',num2str(K),'*',num2str(J),' Imax= ',num2str(imax),' Imin= ',num2str(imin)])

и) построить и вывести в отдельное графическое окно диаграмму изменения яркости (профиль) для средней строки фрагмента изображения. Снабдить ее надписью 'Profile Line';

Frofile=f1(:,length(f1));

plot(Frofile);

title('Profile Line');

к) уменьшить размер исходного изображения в указанное в таблице 4.4 число раз про­реживанием по строкам и столбцам;

ff=f(1:2:end,1:2:end);

л) определить размеры уменьшенного изображения в виде вектора [M, N];

[O,I]= size(ff)

O =

256

I =

256

м) вывести уменьшенное изображение в графическое окно с помощью функции imshow, при этом сформировать пояснительные надписи: Reduced, MxN;

Imshow (f1)

title(['Reduced',num2str(K),'*',num2str(J)])

н) вывести четыре изображения, получившиеся в результате выполнения пунктов зада­ния в одно графическое окно размером 2х2, сформированное функцией subplot(2, 2, n). Пре­дусмотреть вывод соответствующих поясняющих надписей к каждому выводимому изобра­жению ('Original', 'Fragment', 'Profile Line', 'Reduced').

subplot(2, 2, 1), imshow(f);

title('Original');

subplot(2, 2, 2), imshow(f1);

title('Fragment');

subplot(2, 2, 3), plot(Frofile);

title('Profile Line');

subplot(2, 2, 4), imshow(ff);

title('Reduced');

Задание 3

  1. Загрузить в рабочее пространство MATLAB изображение 3 из файла, указанного в таблице с вариантами заданий.

  2. Используя функцию whos определить тип и класс загруженного изображения. Запи­сать результат.

  3. Если выяснено, что изображение цветное (состоит из трех компонент), преобразо­вать его в полутоновое с помощью функции rgb2gray;

f=imread ('C:\Users\veracat\Desktop\ТОИ(Matlab)\girl_3_bw.tif');%загрузить изображение

whos f %определить тип и класс загруженного изображени

4)Вырезать наиболее информативный участок изображения размером 7х7 пикселов и вывести матрицу этого фрагмента в командное окно. Выполнить анализ выведенной матри­цы, соотнеся ее с классом исходного изображения.

fc=f(218:224,251:257)

fc =

94 93 91 91 91 89 81

93 88 84 77 63 41 18

63 44 20 1 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Преобразовать тот же фрагмент исходного изображения в классы double и logical используя функции im2double и im2bw. Выполнить анализ преобразованных матриц фраг­ментов изображения, сделать выводы.

fcd=im2double(fc);%преобразование в double

fcl=im2bw(fc);%преобразование в logical

а) загрузить изображение с помощью функции imread. Если было выяснено, что изо- бражение цветное (состоит из трех компонент), преобразовать его в полутоновое с помощью функции rgb2gray;

б) вывести загруженное изображение в графическое окно с помощью функции imshow, при этом сформировать пояснительные надписи: 'Original'. Для того, чтобы не изменять ис- ходное изображение при выводе на экран следует использовать функцию imshow без пара- метров.

f=imread ('C:\Users\veracat\Desktop\ТОИ(Matlab)\girl_3_bw.tif');%загрузить изображение

imshow(f);

title('Original');

в) преобразовать исходное изображение в бинарное по порогу 0,45 и вывести его в графическое окно снабдив надписью 'Binary';

fbin=im2bw(f, 0.45);%преобразование в 'Binary'

imshow(fbin);

title('Binary');

г) вывести два полученных изображения в одно графическое окно размером 1х2, сфор- мированное функцией subplot(1, 2, n). Предусмотреть вывод соответствующих поясняющих надписей к каждому выводимому изображению ('Original', 'Binary').

subplot(1, 2, 1), imshow(f);

title('Original');

subplot(1, 2, 2), imshow(fbin);

title('Binary');

ВАРИАНТ 5

Задание 1

Соседние файлы в предмете Технология обработки изобразительной информации