rgb2xyz

Преобразуйте RGB в CIE 1931 XYZ

Синтаксис

xyz = rgb2xyz(rgb)
xyz = rgb2xyz(rgb,Name,Value)

Описание

xyz = rgb2xyz(rgb) преобразовывает sRGB значения в значения CIE 1931 XYZ (наблюдатель на 2 °).

пример

xyz = rgb2xyz(rgb,Name,Value) задает дополнительные опции преобразования, такие как цветовое пространство изображения RGB, с помощью одного или нескольких аргументов пары "имя-значение".

Примеры

свернуть все

Преобразуйте изображения и значения цвета от RGB до цветового пространства CIE 1931 XYZ.

Преобразуйте изображение RGB в XYZ

Считайте изображение RGB в рабочую область.

RGB = imread('peppers.png');

Преобразуйте изображение в цветовое пространство XYZ.

XYZ = rgb2xyz(RGB);

Отобразите оригинальное изображение вместе с новым изображением.

figure
imshowpair(RGB,XYZ,'montage');
title('Image in RGB Color Space (Left) and XYZ Color Space (Right)');

Преобразуйте значение цвета RGB в XYZ

Преобразуйте значение белого от RGB до цветового пространства XYZ. В RGB, белом, представлен вектором [1 1 1].

rgb2xyz([1 1 1])
ans = 1×3

    0.9505    1.0000    1.0888

Преобразуйте Цвет RGB в XYZ, использующий D50 в качестве Ссылочного Белого

XYZ_D50 = rgb2xyz(RGB,'WhitePoint','d50');

Отобразите первое изображение вывода XYZ вместе с изображением XYZ с D50 как ссылочный белый.

figure
imshowpair(XYZ,XYZ_D50,'montage');
title('XYZ Image, Without (Left) and With (Right) Reference White');

Преобразуйте цвет Adobe RGB (1998) в XYZ

XYZ_Adobe = rgb2xyz(RGB,'ColorSpace','adobe-rgb-1998');

Отобразите изображения XYZ, сгенерированные от RGB по умолчанию и цветовых пространств Adobe RGB (1998).

figure
imshowpair(XYZ,XYZ_Adobe,'montage');
title(['XYZ Image, Starting From Default RGB (Left) and Adobe RGB ',...
  '(Right) Color Space']);

Входные параметры

свернуть все

Значения цвета RGB, чтобы преобразовать, заданный как числовой массив в одном из следующих форматов.

  • c-by-3 палитра. Каждая строка задает одно значение цвета RGB.

  • m-by-n-by-3 изображение

  • m-by-n-by-3-by-p стек изображений

Типы данных: single | double | uint8 | uint16

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: rgb2xyz([.2 .3 .4],'WhitePoint','d50')

Цветовое пространство значений входа RGB, заданных как пара, разделенная запятой, состоящая из 'ColorSpace' и один из 'srgb', 'adobe-rgb-1998' или 'linear-rgb'. Если вы задаете 'linear-rgb', то rgb2xyz принимает, что значения входа RGB линеаризуются sRGB значения.

Типы данных: char

Ссылочная белая точка, заданная как пара, разделенная запятой, состоящая из 'WhitePoint' и 1 3 вектор или один из перечисленных в таблице источников света стандарта CIE.

ЗначениеБелая точка
'a'

Источник света стандарта CIE A, [1.0985, 1.0000, 0.3558]. Моделирует типичный, внутренний, подсветка нити вольфрама с коррелированой цветовой температурой 2856 K. 

'c'Источник света стандарта CIE C, [0.9807, 1.0000, 1.1822]. Моделирует средний или северный дневной свет неба с коррелированой цветовой температурой 6774 K. Удержанный от использования CIE.
'e'Теплоотвод равной энергии, [1.000, 1.000, 1.000]. Полезный как теоретическая ссылка.
'd50'Источник света стандарта CIE D50, [0.9642, 1.0000, 0.8251]. Моделирует теплый дневной свет в восходе солнца или закате с коррелированой цветовой температурой 5003 K. Также известный как horizon light.

'd55'

Источник света стандарта CIE D55, [0.9568, 1.0000, 0.9214]. Моделирует рано утром или дневной свет во второй половине дня с коррелированой цветовой температурой 5500 K.  

'd65'Источник света стандарта CIE D65, [0.9504, 1.0000, 1.0888]. Моделирует дневной дневной свет с коррелированой цветовой температурой 6504 K. 
'icc'Источник света Пробела связи профиля (PCS) используется в профилях ICC. Приближение [0.9642, 1.000, 0.8249] с помощью фиксированной точки, подписанных, 32-битных чисел с 16 дробными битами. Фактическое значение: [31595,32768, 27030]/32768.

Типы данных: single | double | char

Выходные аргументы

свернуть все

Преобразованные значения цвета XYZ, возвращенные как числовой массив, одного размера как вход. Выходной тип является классом double, если входным типом не является single, в этом случае выходным типом является также single.

Советы

  • Если вы задаете цветовое пространство входа RGB как 'linear-rgb', то rgb2xyz принимает, что входные значения линеаризуются sRGB значения. Если вместо этого вы хотите, чтобы входным цветовым пространством был линеаризовавший Adobe RGB (1998), то можно использовать функцию lin2rgb.

    Например, чтобы преобразовать линеаризовавший Adobe RGB (1998) отображают RGBlinadobe к цветовому пространству CIE 1931 XYZ, выполняют преобразование на двух шагах:

    RGBadobe = lin2rgb(RGBlinadobe,'ColorSpace','adobe-rgb-1998');
    XYZ = rgb2xyz(RGBadobe,'ColorSpace','adobe-rgb-1998');
    

Смотрите также

| | |

Введенный в R2014b