Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа № 1.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
149 Кб
Скачать
☆

Вывод изображения на дисплей

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

imshow(fg,G);

где f – матрица изображения, а G – число уровней яркости, используемое при отображении этого изображения. Если аргумент G опущен, то по умолчанию принимается 256 уровней яркости. Команда

imshow(f,[low high])

означает, что все пиксели со значением не больше числа low надо показывать черными, а все пиксели со значениями не меньше числа high - белыми. Все промежуточные значения показываются с промежуточной яркостью с использованием числа уровней, принятому по умолчанию.

Запись в командной строке

imshow(f, [ ])

задает для переменной low минимальное значение массива f, а переменной high присваивает его максимальное значение.

Пример 1. Чтение и вывод изображения.

Следующая команда читает изображение bird.bmp, выдает основную информацию об этом изображении и отображает его с помощью функции imshow:

>> f=imread('D:\Document\bird.bmp');

>> whos f

Name

Size

Bytes

Class

f

512x512

262144

uint8 array

Grand total is 262144 elements using 262144 bytes

>> imshow(f , [ ])

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

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

Если теперь показать другое изображение с помощью функции imshow, то MATLAB поместит его на место старого. Чтобы сохранить на рабочем столе предыдущее изображение, можно использовать команду figure. Если набрать строку

>> imshow(f), figure, imshow(g)

то будут показаны оба изображения. Если изображение имеет узкий динамический диапазон, то его можно расширить для лучшей его визуализации командой

>> imshow(g, [ ])

Сохранение изображений

Изображения записываются на диск функцией imwrite, которая имеет следующий синтаксис:

imwrite(f, ‘filename’)

При такой записи строка filename должна содержать расширение, поддерживаемое системой MATLAB (см. табл. 1). Иначе желаемый формат можно задать явно с помощью третьего аргумента функции. Например, следующая команда записывает матрицу f в изображение с форматом TIFF с именем patient:

>> imwrite(f, ‘ patient ’, ‘tif ’)

или, что эквивалентно,

>> imwrite(f, ‘ patient.tif ‘)

Если строка filename не содержит информацию о пути, то функция imwrite записывает файл в текущую рабочую папку. функция imwrite может иметь другие параметры, зависящие от выбранного формата.

Классы данных

Несмотря на то, что приходится работать с целочисленными координатами, значения самих пикселей не обязательно должны быть целыми числами. В табл. 1 перечислены разные классы данных, поддерживаемые системой MATLAB. Все численные операции в MATLAB выполняются с двойной точностью в классе данных double.

Таблица 1. Классы данных. Первые восемь классов называются числовыми, девятый — символьный класс, последний класс — логический

Имя

Описание

double

Вещественные числа с плавающей запятой двойной точности в диапазоне, примерно, от — 10308 до 10308 (8 байт на число).

uint8

Целые без знака в интервале [0,255] (1 байт на число).

uintl6

Целые без знака в интервале [0,65535] (2 байта на число).

uint32

Целые без знака в интервале [0,4294967295] (4 байта на число).

int8

Целые со знаком в интервале [—128,127] (1 байт на число).

intl6

Целые со знаком в интервале [—32768, 32767] (2 байта на число).

int32

Целые со знаком в интервале [-2147483648, 2147483647] (4 байта).

single

Вещественные числа с плавающей запятой обычной точности в диапазоне, примерно, от —1038 до 1038 (4 байта на число).

char

Символы (буквы и знаки) (2 байта на символ).

logical

Значения 0 или 1 (1 байт на элемент).