Преобразуйте между HSV-цветовыми пространствами и RGB

В этом примере показано, как настроить насыщение цветного изображения путем преобразования изображения в HSV-цветовое пространство. Пример затем отображает отдельные HSV-плоскости цвета (оттенок, насыщение и значение) синтетического изображения.

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

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

RGB = imread('peppers.png');
imshow(RGB)

Figure contains an axes object. The axes object contains an object of type image.

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

HSV = rgb2hsv(RGB);

Обработайте HSV-изображение. Этот пример увеличивает насыщение изображения путем умножения канала S на масштабный коэффициент.

[h,s,v] = imsplit(HSV);
saturationFactor = 2;
s_sat = s*saturationFactor;
HSV_sat = cat(3,h,s_sat,v);

Преобразуйте обработанное HSV-изображение назад в цветовое пространство RGB. Отобразите новое изображение RGB. Раскрашивает обработанное изображение, являются более вибрирующими.

RGB_sat = hsv2rgb(HSV_sat);
imshow(RGB_sat)

Figure contains an axes object. The axes object contains an object of type image.

Более внимательное рассмотрение в 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,"BackgroundColor",'w');

Figure contains an axes object. The axes object contains an object of type image.

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

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