Преобразуйте от HSV до цветового пространства RGB

Цветовое пространство HSV (Оттенок, Насыщение, Значение) часто используется людьми, которые выбирают цвета (например, красок или чернил) от цветового диска или палитры, потому что это соответствует лучше тому, как люди испытывают цвет, чем цветовое пространство RGB. Функции rgb2hsv и hsv2rgb преобразовывают изображения между RGB и цветовыми пространствами HSV.

Примечание

MATLAB® и программное обеспечение Image Processing Toolbox™ не поддерживают цветовое пространство HSI (Оттенок, Насыщение, Интенсивность). Однако, если вы хотите работать с цветными данными с точки зрения оттенка, насыщения и интенсивности, цветовое пространство HSV очень похоже. Другая опция должна использовать цветовое пространство LCH (Яркость, Цветность и Оттенок), который является полярным преобразованием CIE, цветовое пространство L*a*b* — видит Независящие от устройств Цветовые пространства.

Когда оттенок отличается от 0 до 1,0, соответствующие цвета отличаются от красного до желтого, зеленого, голубого цвета, синего, пурпурного цвета, и назад к красному, так, чтобы были на самом деле красные значения и в 0 и 1.0. Когда насыщение отличается от 0 до 1,0, соответствующие цвета (оттенки) отличаются от ненасыщенного (оттенки серого) к полностью влажному (никакой белый компонент). Когда значение или яркость, отличается от 0 до 1,0, соответствующие цвета становятся все больше более яркими.

Следующая фигура иллюстрирует цветовое пространство HSV.

Рисунок цветового пространства HSV

Преобразуйте изображение RGB в HSV и Исследуйте Цветовое пространство HSV

Этот пример показывает, как преобразовать изображение RGB в цветовое пространство HSV с помощью функции rgb2hsv. Пример затем отображает отдельные плоскости цвета HSV (оттенок, насыщение и значение) синтетического изображения.

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

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

RGB = imread('peppers.png');

Преобразуйте его в цветовое пространство HSV.

HSV = rgb2hsv(RGB);

Более внимательное рассмотрение в цветовом пространстве HSV

Для более близкого контроля цветового пространства HSV создайте синтетическое изображение RGB.

RGB=reshape(ones(64,1)*reshape(jet(64),1,192),[64,64,3]);

Преобразуйте синтетическое изображение RGB в цветовое пространство HSV.

HSV=rgb2hsv(RGB);

Разделите версию HSV синтетического изображения в его плоскости компонента: оттенок, насыщение и значение.

[h s v] = imsplit(HSV);

Отобразите отдельные плоскости цвета HSV с оригинальным изображением.

montage({h, s, v, RGB}, 'BorderSize', 10);

Когда изображение плоскости оттенка в предыдущей фигуре иллюстрирует, значения оттенка делают линейный переход от высоко до низко. Если вы сравниваете изображение плоскости оттенка с оригинальным изображением, вы видите, что оттенки темно-синего цвета имеют самые высокие значения, и оттенки темно-красного цвета имеют самые низкие значения. (Как утверждено ранее, существуют значения красного цвета на обоих концах шкалы оттенка. Чтобы избежать беспорядка, демонстрационное изображение использует только красные значения с начала области значений оттенка.)

Насыщение может считаться чистотой цвета. Когда изображение плоскости насыщения показывает, цвета с самым высоким насыщением имеют самые высокие значения и представлены как белые. В центре изображения насыщения заметьте различные оттенки серого. Они соответствуют смеси цветов; голубые цвета, зеленые и желтые оттенки являются смесями истинных цветов. Значение примерно эквивалентно яркости, и вы заметите, что самые яркие области плоскости значения соответствуют самым ярким цветам в оригинальном изображении.