exponenta event banner

Работа с изображениями в графике MATLAB

Что такое данные изображения?

Основной структурой данных MATLAB ® является массив, упорядоченный набор вещественных или сложных элементов. Массив естественно подходит для представления изображений, вещественных, упорядоченных наборов цветовых данных или данных интенсивности. (Массив подходит для изображений со сложными значениями.)

В рабочем пространстве MATLAB большинство изображений представлены в виде двумерных массивов (матриц), в которых каждый элемент матрицы соответствует одному пикселю отображаемого изображения. Например, изображение, состоящее из 200 строк и 300 столбцов различных цветных точек, хранится в виде матрицы 200 на 300. Некоторые изображения, такие как RGB, требуют трехмерного массива, где первая плоскость в третьем измерении представляет интенсивности красных пикселей, вторая плоскость представляет интенсивности зеленых пикселей, и третья плоскость представляет интенсивности синих пикселей.

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

I(2,15)

Эта команда возвращает значение пикселя в строке 2, столбец 15 изображения. I.

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

Типы данных

Математика MATLAB поддерживает три различных числовых класса для отображения изображения:

  • плавающая точка с двойной точностью (double)

  • 16-разрядное беззнаковое целое число (uint16)

  • 8-разрядное беззнаковое целое число (uint8)

Команды отображения изображения интерпретируют значения данных по-разному в зависимости от числового класса, в котором хранятся данные. 8-Bit и 16-Bit Изображения содержат сведения о внутренней работе хранилища для 8- и 16-битных изображений.

По умолчанию большинство данных занимают массивы класса double. Данные в этих массивах хранятся в виде чисел с двойной точностью (64-разрядных) с плавающей запятой. Все функции и возможности MATLAB работают с этими массивами.

Однако для изображений, хранящихся в одном из форматов графических файлов, поддерживаемых функциями MATLAB, это представление данных не всегда является идеальным. Количество пикселей в таком изображении может быть очень большим; например, изображение 1000 на 1000 имеет миллион пикселей. Поскольку по крайней мере один элемент массива представляет каждый пиксель, это изображение требует около 8 мегабайт памяти, если оно сохранено как класс double.

Чтобы уменьшить требования к памяти, можно хранить данные изображения в массивах класса uint8 и uint16. Данные в этих массивах хранятся как 8-разрядные или 16-разрядные беззнаковые целые числа. Для этих массивов требуется один восьмой или один четвертый объем памяти, равный объему данных в double массивы.

Битовая глубина

Функции ввода MATLAB считывают наиболее часто используемые битовые глубины (биты на пиксель) любого из поддерживаемых форматов графических файлов. Когда данные находятся в памяти, они могут храниться как uint8, uint16, или double. Для получения подробной информации о том, какие битовые глубины подходят для каждого поддерживаемого формата, см. imread и imwrite.

Поддерживаемые форматы изображений

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

  • BMP (растровое изображение Microsoft ® Windows ®)

  • GIF (файлы обмена графикой)

  • HDF (иерархический формат данных)

  • JPEG (Совместная группа фотографических экспертов)

  • PCX (кисть)

  • PNG (портативная сетевая графика)

  • TIFF (формат файла изображения с тегами)

  • XWD (дамп окна X)

Дополнительные сведения о битовых глубинах и типах изображений, поддерживаемых для этих форматов, см. в разделе imread и imwrite.