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

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

Индексируемое изображение состоит из матрицы данных, 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 точек к пятой строке палитры.

Примечание

При использовании средства отображения живописцев на платформе Windows® необходимо только использовать 256 цветов при попытке отобразить индексируемое изображение. Большие палитры могут привести к неожиданным цветам, потому что алгоритм живописцев использует цветовую палитру Windows 256, которую графические драйверы и аппаратное обеспечение машинной графики, как известно, обрабатывают по-другому. Чтобы работать вокруг этой проблемы, используйте Zbuffer или средство отображения OpenGL, как соответствующие.

Шкала полутонов (интенсивность) изображения

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

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

Чтобы отобразить полутоновое изображение, используйте imagesc (“шкала изображений”) функция, которая позволяет вам установить область значений значений интенсивности. imagesc масштабирует данные изображения, чтобы использовать полную палитру. Используйте 2D входную форму 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 (истинный цвет) изображения

Изображение 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
Для просмотра документации необходимо авторизоваться на сайте