Типы изображений

Индексированные изображения

Индексированное изображение состоит из матрицы данных, X, и матрица палитры, map. map является массивом m-на-3 классов double содержащие значения с плавающей точкой в области значений [0, 1]. Каждая строка map задает красный, зеленый и синий компоненты одного цвета. Индексированное изображение использует «прямое отображение» значений пикселей к значениям палитры. Цвет каждого пикселя изображения определяется использованием соответствующего значения X как индекс в map. Значения X поэтому должно быть целыми числами. Значение 1 указывает на первую строку в map, значение 2 указывает на вторую строку и так далее. Отображение индексированного изображения с операторами

image(X); colormap(map)

Палитра часто хранится с индексированным изображением и автоматически загружается с изображением, когда вы используете imread функция. Однако вы не ограничиваетесь использованием палитры по умолчанию - используйте любую палитру, которую вы выбираете. Описание свойства CDataMapping описывает, как изменить тип используемого отображения.

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

Отношение между значениями в матрице изображений и палитре зависит от класса матрицы изображений. Если матрица изображений имеет класс double, значение 1 указывает на первую строку в палитре, значение 2 указывает на вторую строку и так далее. Если матрица изображений имеет класс uint8 или uint16, существует смещение - значение 0 указывает на первую строку в палитре, значение 1 указывает на вторую строку и так далее. Смещение также используется в форматах графических файлов, чтобы максимизировать количество цветов, которые могут поддерживаться. На предыдущем изображении матрица изображений имеет класс double. Поскольку смещения нет, значение 5 указывает на пятую строку палитры.

Полутоновые (интенсивность) Изображения

Полутоновое изображение, иногда называемое intensity изображением, является матрицей данных I значения которого представляют интенсивность в некоторой области значений. Полутоновое изображение представлено в виде одной матрицы, причем каждый элемент матрицы соответствует одному пикселю изображения. Матрица может быть класса double, uint8, или uint16. В то время как полутоновые изображения редко сохраняются с помощью палитры, для их отображения все еще используется палитра. По сути, полутоновые изображения обрабатываются как индексированные изображения.

Этот рисунок изображает полутоновое изображение класса double.

Чтобы отобразить полутоновое изображение, используйте imagesc («изображение») функция, которая позволяет вам задать область значений значений интенсивности. imagesc масштабирует данные изображения, чтобы использовать полную палитру. Используйте форму imagesc с двумя входами для отображения полутонового изображения, например:

imagesc(I,[0 1]); colormap(gray);

Второй входной параметр для imagesc задает требуемую область значений интенсивности. imagesc функция отображает I путем сопоставления первого значения в области значений (обычно 0) с первой записью палитры, и второго значения (обычно 1) с последней записью палитры. Промежуточные значения линейно распределены по остальным цветам палитры.

Хотя обычно отображать полутоновые изображения можно с помощью палитры полутонового цвета, можно использовать и другие палитры. Для примера следующие операторы отображают изображение в полутоновом цвете I в оттенках синего и зеленого:

imagesc(I,[0 1]); colormap(winter);

Отображение матричного A с произвольной областью значений значений в качестве полутонового изображения используйте форму с одним аргументом imagesc. С одним входным параметром, imagesc отображает минимальное значение матрицы данных в первую запись палитры и отображает максимальное значение в последнюю запись палитры. Для примера эти две линии эквивалентны:

imagesc(A); colormap(gray)
imagesc(A,[min(A(:)) max(A(:))]); colormap(gray)

RGB (Truecolor) Изображения

Изображение RGB, иногда называемое truecolor изображением, сохранено как массив данных m на n на 3, который задает красные, зеленые и синие компоненты цвета для каждого отдельного пикселя. Изображения RGB не используют палитру. Цвет каждого пикселя определяется комбинацией интенсивности красного, зеленого и синего цветов, сохраненной в каждой цветовой плоскости в местоположении пикселя. Форматы графических файлов хранят изображения RGB как 24-битные изображения, где красные, зеленые и синие компоненты составляют 8 биты каждый. Это дает потенциал 16 миллионов цветов. Точность, с которой можно тиражировать реальное изображение, привела к прозвищу «изображение труколора».

RGB MATLAB® массив может быть классом double, uint8, или uint16. В массиве RGB с double классовкаждый цветовой компонент является значением от 0 до 1. Пиксель, цветовые компоненты которого (0,0,0), отображается черным цветом, и пиксель, цветовые компоненты которого (1,1,1), отображается белым цветом. Три цветовых компонента для каждого пикселя хранятся вдоль третьей размерности массива данных. Например, красные, зеленые и синие компоненты цвета пикселя (10,5) хранятся в RGB(10,5,1), RGB(10,5,2), и RGB(10,5,3), соответственно.

Отображение изображения труколора RGB, использовать image функция:

image(RGB)

Следующий рисунок показывает изображение RGB double классов.

Чтобы определить цвет пикселя в (2,3), посмотрите на триплет RGB, хранящийся в (2,3,1: 3). Предположим (2,3,1) содержит значение 0.5176, (2,3,2) содержит 0.1608, и (2,3,3) содержит 0.0627. Цвет для пикселя при (2,3)

0.5176 0.1608 0.0627