Основные функции работы с изображениями — КиберПедия 

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Основные функции работы с изображениями

2017-11-17 493
Основные функции работы с изображениями 0.00 из 5.00 0 оценок
Заказать работу

Загрузка графического файла

Для загрузки графического файла используется функция imread:

>> I=imread('d:\МВ\book_2007\1\0\фото\light.jpg');

Параметром функции является полное имя графического файла, указанное в апострофах. Информация считывается и присваивается переменной I.

Вывод изображения на экран

Отобразить на экран прочитанное изображение можно с помощью команды:

>> imshow(I)

Появится графическое окно с именем Figure1 и в нем отразится изображение (Рис.7)

Рис.7. Вывод изображения на экран

Информация о структуре изображение I

Получить информацию о структуре I можно с помощью обращения:

>> whos I % запрос информации о

% структуре объекта I

Name Size Bytes Class

I 661x824x3 1633992 uint8 array

Grand total is 1633992 elements using 1633992 bytes

Операции с фрагментами R, G, B карт изображения

Предыдущий пункт показал, что изображение I является полноцветным изображением, цифровая информация о котором хранится в структуре I(i,j,k), где - число строк; - число столбцов; k=1,2,3 – индекс компонентов цвета RGB. Для запроса значений цветовых компонент нужно указать границы нужного фрагмента и номер цвета.

Пример 3.1. Получим значения цветовых компонент для фрагмента

>> I(50:60,30:40,1) % красная компонента

ans =

199 199 199 200 198 203 203 168 104 58 42

199 199 199 201 199 204 204 167 106 59 43

199 199 199 201 198 203 204 167 105 58 43

199 199 199 199 197 202 203 166 104 58 41

199 199 199 200 196 203 200 166 104 57 40

199 199 199 201 197 204 202 167 105 57 40

199 199 199 200 198 204 203 168 107 59 42

196 196 196 202 203 202 197 169 109 61 52

197 197 196 200 201 203 198 170 107 62 55

197 197 197 196 201 204 200 170 108 64 58

198 197 197 194 198 203 200 170 110 65 60

>> I(50:60,30:40,2) % зеленая компонента

ans =

205 205 205 204 202 209 209 174 113 67 51

205 205 205 205 203 210 210 176 115 68 52

205 205 205 205 202 209 210 176 116 69 54

205 205 205 203 201 208 209 175 115 69 53

205 205 205 202 200 207 209 175 115 69 55

205 205 205 203 201 208 211 176 117 72 57

205 205 205 204 202 210 212 179 119 74 59

202 202 202 206 207 208 206 180 121 76 69

203 203 202 204 207 209 207 181 122 77 72

203 203 203 202 207 210 209 181 123 79 75

204 203 203 200 207 212 211 182 122 80 77

>> I(50:60,30:40,3) % синяя компонента

ans =

203 203 203 203 201 207 207 172 110 64 48

203 203 203 204 202 208 208 173 112 65 49

203 203 203 204 201 207 208 173 112 65 50

203 203 203 202 200 206 207 172 111 65 49

203 203 203 201 199 206 206 172 111 65 50

203 203 203 202 200 207 208 173 113 67 51

203 203 203 203 201 208 209 175 115 69 53

200 200 200 205 206 206 203 176 117 71 63

201 201 200 203 205 207 204 177 117 72 66

201 201 201 200 205 208 206 177 118 74 69

202 201 201 198 204 209 207 178 118 75 71

Пример 3.2. Преобразуем цветное изображение из RGB формата в бинарный.

>> I1=im2bw(I) % I – цветное изображение;

% I1 – преобразованное в бинарное.

Соответствующая матрица имеет вид

>> I1(50:60,30:40) % запрос матрицы I1.

 

ans =

1 1 1 1 1 1 1 1 0 0 0

1 1 1 1 1 1 1 1 0 0 0

1 1 1 1 1 1 1 1 0 0 0

1 1 1 1 1 1 1 1 0 0 0

1 1 1 1 1 1 1 1 0 0 0

1 1 1 1 1 1 1 1 0 0 0

1 1 1 1 1 1 1 1 0 0 0

1 1 1 1 1 1 1 1 0 0 0

1 1 1 1 1 1 1 1 0 0 0

1 1 1 1 1 1 1 1 0 0 0

1 1 1 1 1 1 1 1 0 0 0

>>imshow(I1) % вывод на экран I1

 

 

 

 

Рис.8. Преобразование RGB изображения в бинарный тип

 

Поворот изображения

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

Команда imrotate(Im, a, s) выполняет поворот изображения на угол a, s - метод интерполяции. Можно использовать три метода: «’nearest’»-интерполяция по цвету ближайших пикселов, «’bilinear’»-билинейная интерполяция, «’bicubic’»-бикубическая интерполяция. Если параметр s не указан, по умолчанию используется 'nearest'.

Пример 3.3.

>>Imrotate = imrotate(Im,45, 'bicubic');

% Поворот изображения Im на 45

% градусов с бикубической

% интерполяцией

>>imshow(Imrotate)

 

Рис.9. Исходное изображение Im

 

 

Рис.10. Результат поворота на 45 градусов

Упражнение 3.1. Глубиной фрагмента изображения называется физическое расстояние до объекта, прообраза. Как оценить глубину изображения?

 

Упражнение 3.2. Предположим, что точность аппроксимации изображения - один пиксель. Какова относительная ошибка аппроксимации объектов на изображении в зависимости от глубины?

 

Упражнение 3.3. Почему при определенных скоростных режимах крутящегося колеса телеги наблюдается как бы схема направления вращения?

 

Упражнение 3.4. Как меняется форма наблюдаемого объекта на изображении в зависимости от скорости перемещения объекта?

Программирование в MATLAB

Внешние текстовые файлы

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

MATLAB имеет функции работы с внешними файлами, аналогичные стандартным алгоритмическим языкам, таким как Pasсal и C++, например, assignfile(f), closefile(f).

 

Пример 4.1. Записать строку «12345.» в текстовый файл data.txt.

>> fid = fopen('C:\temp\data.txt','w');

% открытие файла на запись данных

>> fprintf(fid,'12345.\n');

% запись строки символов в файл

>> fclose(fid); % закрытие файла

>> open('C:\temp\data.txt');

% открытие файл в текстовом редакторе

 


Поделиться с друзьями:

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.