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

Если в процессе работы необходимо осуществить явное преобразование изображения, то для перевода представления изображений из типа double в тип uint8 и обратно используются функции im2uint8 и im2double соответственно. При этом осуществляется приведение значений пикселей к требуемому диапазону.

Пример

%считываем изображение из файла и преобразуем

%его к типу double

im = im2double(imread('my_image.bmp'));

Системой Matlab версии 6.5 поддерживаются следующие форматы графических файлов:

¨  BMP  (Microsoft Windows Bitmap);

¨  CUR  (Microsoft Windows Cursor resource);

¨  GIF  (Graphics Interchange Format);

¨  HDF  (Hierarchical Data Format);

¨  ICO  (Windows Icon resource);

¨  JPEG  (Joint Photographic Experts Group);

¨  PBM  (Portable Bitmap);

¨  PCX  (Windows Paintbrush);

¨  PGM  (Portable Graymap);

¨  PNG  (Portable Network Graphics);

¨  PPM  (Portable Pixmap);

¨  RAS  (Sun Raster image);

¨  TIFF  (Tagged Image File Format);

¨  XWD  (X Window Dump).

3. Основные команды пакета Image Processing Toolbox

Приведем основные команды пакета Image Processing Toolboxдля работы с изображениями. При этом ограничимся наиболее распространенными вариантами их использования.

Команда IMREAD

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

¨  A = imread(filename) – читает из файла с именем filename  бинарное, полутоновое или цветное изображение и помещает его в массив A. Если файл содержит полноцветное изображение (т.е. записанное в формате RGB), то массив A будет сформирован как трехмерный, иначе – как двумерный. Параметр filename должен быть строкой;

¨  [X, map] = imread(filename) - используется для чтения палитровых изображений в массив Х, а считанная палитра заносится в массив map.

Пример

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

im = imread(‘h:\labor\image\006\FRM001.bmp')

Команда IMFINFO

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

¨  info = imfinfo(filename.

Пример

%считываем параметры изображения из файла

info = imfinfo('my_image.bmp')

Информация об изображении и способе его хранения в файле с именем filename заносится в структуру info. Структуры info различаются для разных форматов файлов, однако первые 9 полей всегда содержат следующую общую информацию, которую можно представить в виде табл. 1.

Таблица 1

Общие поля структуры info

Имя поля

Тип

Описание

FileName

Строка

Имя файла, если файл находится в текущей директории, или полный путь к файлу

FileModeDate

Строка

Дата и время последней модификации файла

FileSize

Число

Размер файла в байтах

Format

Строка

Формат файла, совпадающий с параметром fmt

FormatVersion

Строка или число

Версия формата

Width

Число

Ширина изображения в пикселях

Height

Число

Высота изображения в пикселях

BitDepth

Число

Глубина изображения в битах на пиксель

ColorType

Строка

Тип изображения:

- truecolorили RGBдля полноцветных изображений;

- grayscaleдля полутоновых;

- indexedдля палитровых

Команда IMWRITE

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

¨  imwrite(A, filename) – используется для записи в файл filename бинарного, полутонового или полноцветного изображения из массива А.

Если исходное изображение имеет формат представления данных double, то перед записью в файл данные изображения автоматически преобразуются в uint8.

Пример:

%записываем изображение im в файл

imwrite(im,'my_image.bmp')

Команда IMSHOW

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

¨  imshow(I, n) – выводит на экран полутоновое изображение из массива I, используя при выводе n оттенков серого. Если значение n опущено, то для вывода используется 256 уровней;

¨  imshow(I, [lowhigh]) – выводит на экран полутоновое изображение из массива I, контрастируя его таким образом, что все пиксели изображения,  яркость которых меньше или равна значению low, отображаются черным цветом, а яркость которых больше или равна значению high – белым, остальные – оттенками серого. Все уровни серого равномерно распределяются от low до high;

¨  imshow(BW) – выводит на экран бинарное изображение из бинарного массива BW;

¨  imshow(X, map) – выводит на экран палитровое изображение из массива X с палитрой map;

¨  imshow(RGB) – выводит на экран полноцветное изображение из массива RGB;

¨  imshow(filename) – выводит на экран изображение из файла с именем filename.

Пример

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

im = imread('my_image.bmp');

%отображаем считанное изображение на экране

imshow(im);

Команда IPTSETPREF

Используется для изменения режима вывода изображения соответствующими командами (например imshow). Команда имеет следующий синтаксис:

¨  iptsetpref(prefname, value).

При выполнении команды глобальной переменной prefname присваивается значение value, которое затем используется командами, осуществляющими вывод изображения на экран, например imshow. В табл. 2 приведены возможные имена и значения глобальных переменных. Установленные с помощью команды iptsetpref значения сохраняются либо в течение текущей сессии, либо до следующего вызова iptsetpref.

Таблица 2

Глобальные переменные, устанавливаемые с помощью iptsetpref

Параметр prefname

Значение value

Описание

Imshowborder

‘loose’

Вывод изображения imshow с отступом от края окна figure таким образом, что остается место для дополнительных надписей.

tight

Изображение занимает все окно figure

Imshowaxesvisible

on

Выводятся оси координат

off

Оси координат не выводятся