Основной MATLAB® структура данных является массивом, упорядоченным множеством действительных или комплексных элементов. Массив естественно подходит для представления изображений, упорядоченных множеств с действительным знаком данных об интенсивности или цвета. (Массив подходит для изображений с комплексным знаком.)
В рабочем пространстве MATLAB большинство изображений представлено как двумерные массивы (матрицы), в которых каждый элемент матрицы соответствует одному пикселю в отображенном изображении. Например, изображение, состоявшее из 200 строк и 300 столбцов различных цветных точек, сохраненных как 200 300 матрица. Некоторые изображения, такие как RGB, требуют 3D массива, где первая плоскость в третьей размерности представляет красные интенсивности пикселей, вторая плоскость представляет зеленые интенсивности пикселей, и третья плоскость представляет синие интенсивности пикселей.
Это соглашение делает работу с изображениями формата графических файлов похожей на работу с любым другим типом матричных данных. Например, можно выбрать один пиксель из матрицы изображений с помощью нормального матричного индексирования:
I(2,15)
Эта команда возвращает значение пикселя в строке 2, столбце 15 изображения I
.
Следующие разделы описывают различные данные и типы изображения, и сообщают подробности о том, как читать, запишите, работайте с и отобразите графические изображения; как изменить свойства отображения и соотношение сторон изображения во время отображения; как распечатать изображение; и как преобразовать тип данных или графический формат изображения.
Математика MATLAB поддерживает три различных числовых класса для отображения изображений:
с двойной точностью с плавающей точкой (double
)
16-битное беззнаковое целое (uint16
)
8-битное беззнаковое целое (uint8
)
Команды отображения изображений интерпретируют значения данных по-другому в зависимости от числового класса, в котором хранятся данные. 8-битные и 16-битные Изображения включают детали о внутренних работах устройства хранения данных для 8-и 16-битные изображения.
По умолчанию большинство данных занимает массивы класса double
. Данные в этих массивах хранятся как (64-битные) числа с плавающей запятой с двойной точностью. Все функции MATLAB и возможности работают с этими массивами.
Для изображений, сохраненных в одном из форматов графических файлов, поддержанных функциями MATLAB, однако, это представление данных является не всегда идеалом. Количество пикселей в таком изображении может быть очень большим; например, изображение 1000 на 1000 имеет миллион пикселей. Поскольку по крайней мере один элемент массива представляет каждый пиксель, это изображение требует приблизительно 8 мегабайтов памяти, если это хранится как класс double
.
Чтобы уменьшать требования к памяти, можно сохранить данные изображения в массивах класса uint8
и uint16
. Данные в этих массивах хранятся как 8-битное или 16-битное беззнаковое целое. Эти массивы требуют одной восьмой или одной четверти столько же памяти сколько данные в double
массивы.
Функции ввода MATLAB читают обычно используемые битовые глубины (биты на пиксель) любого из поддерживаемых форматов графических файлов. Когда данные находятся в памяти, они могут храниться как uint8
uint16
, или double
. Для получения дополнительной информации, на котором битовые глубины подходят для каждого поддерживаемого формата, смотрите imread
и imwrite
.
Чтение команд MATLAB, запишите и отобразите несколько типов форматов графических файлов для изображений. Как с MATLAB сгенерировал изображения, когда-то изображение формата графических файлов отображено, это становится объектом изображения. MATLAB поддерживает следующие форматы графических файлов, вместе с другими:
Для получения дополнительной информации о битовых глубинах и типах изображения, поддержанных для этих форматов, смотрите imread
и imwrite
.