Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Convertir entre espacios de color RGB y HSV

Este ejemplo muestra cómo ajustar la saturación de una imagen en color convirtiendo la imagen al espacio de color HSV. A continuación, el ejemplo muestra los distintos planos de color HSV (tono, saturación y valor) de una imagen sintética.

Convertir una imagen RGB en una imagen HSV

Lea una imagen RGB en el espacio de trabajo. Muestre la imagen.

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

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

Convierta la imagen al espacio de color HSV.

HSV = rgb2hsv(RGB);

Procese la imagen HSV. Este ejemplo aumenta la saturación de la imagen multiplicando el canal S por un factor de escala.

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

Convierta la imagen HSV procesada de nuevo al espacio de color RGB. Muestre la nueva imagen RGB. Los colores de la imagen procesada son más vivos.

RGB_sat = hsv2rgb(HSV_sat);
imshow(RGB_sat)

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

Inspeccionar más de cerca el espacio de color HSV

Para inspeccionar más de cerca el espacio de color HSV, cree una imagen RGB sintética.

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

Convierta la imagen RGB sintética al espacio de color HSV.

HSV = rgb2hsv(RGB);

Divida la versión HSV de la imagen sintética en los planos que la componen: tono, saturación y valor.

[h,s,v] = imsplit(HSV);

Muestre los planos de color HSV individuales con la imagen original.

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

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

Como ilustra la imagen del plano de tono de la figura anterior, los valores de tono hacen una transición lineal de alto a bajo. Si se compara la imagen del plano de tono con la imagen original, se puede ver que los tonos de azul intenso tienen los valores más altos y los tonos de rojo intenso, los más bajos. (Como ya se ha dicho, hay valores de rojo en ambos extremos de la escala de tonos. Para evitar confusiones, la imagen de muestra utiliza solo los valores de rojo del principio de la gama de tonos).

La saturación es la pureza de un color. Como muestra la imagen del plano de saturación, los colores con mayor saturación tienen los valores más altos y se representan como blanco. En el centro de la imagen de saturación, fíjese en los distintos tonos de gris. Corresponden a una mezcla de colores; los tonos cianes, verdes y amarillos son mezclas de colores verdaderos. El valor es prácticamente equivalente al brillo, y observará que las zonas más brillantes del plano de valor corresponden a los colores más brillantes de la imagen original.