Main Content

rgb2hsv

Convert RGB colors to HSV

Description

HSV = rgb2hsv(RGB) converts the red, green, and blue values of an RGB image to hue, saturation, and value (HSV) values of an HSV image.

example

hsvmap = rgb2hsv(rgbmap) converts an RGB colormap to an HSV colormap.

example

Examples

collapse all

Get a down-sampled version of the prism colormap.

rgb = prism(6)
rgb = 6×3

    1.0000         0         0
    1.0000    0.5000         0
    1.0000    1.0000         0
         0    1.0000         0
         0         0    1.0000
    0.6667         0    1.0000

Convert the RGB values in the colormap to HSV.

hsv = rgb2hsv(rgb)
hsv = 6×3

         0    1.0000    1.0000
    0.0833    1.0000    1.0000
    0.1667    1.0000    1.0000
    0.3333    1.0000    1.0000
    0.6667    1.0000    1.0000
    0.7778    1.0000    1.0000

Create a 2-by-2 truecolor image.

rgb(:,:,1) = [1 1; 0 .5];
rgb(:,:,2) = [0 1; 0 .5];
rgb(:,:,3) = [0 0; 1 .5];
image(rgb);

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

Convert the image to an HSV array.

hsv = rgb2hsv(rgb)
hsv = 
hsv(:,:,1) =

         0    0.1667
    0.6667         0


hsv(:,:,2) =

     1     1
     1     0


hsv(:,:,3) =

    1.0000    1.0000
    1.0000    0.5000

Input Arguments

collapse all

RGB image to convert, specified as an m-by-n-by-3 numeric array. The third dimension of RGB defines the red, green, and blue intensity of each pixel, respectively.

The rgb2hsv function expects truecolor images of data type double and single to have values in the range [0, 1].

Data Types: single | double | uint8 | uint16

RGB colormap, specified as a c-by-3 numeric matrix with values in the range [0, 1]. Each row of rgbmap is a three-element RGB triplet that specifies the red, green, and blue components of a single color of the colormap.

Data Types: double

Output Arguments

collapse all

HSV image, returned as an m-by-n-by-3 numeric array with values in the range [0, 1]. The third dimension of HSV defines the hue, saturation, and value for each pixel, respectively, as described in the table.

AttributeDescription
HueValue from 0 to 1 that corresponds to the color’s position on a color wheel. As hue increases from 0 to 1, the color transitions from red to orange, yellow, green, cyan, blue, magenta, and finally back to red.
SaturationAmount of hue or departure from neutral. 0 indicates a neutral shade, whereas 1 indicates maximum saturation.
Value

Maximum value among the red, green, and blue components of a specific color.

The data type of HSV depends on the data type of RGB:

  • If RGB is of data type single, then HSV is of data type single.

  • Otherwise, HSV is of data type double.

Data Types: double | single

HSV colormap, returned as a c-by-3 numeric matrix with values in the range [0, 1]. Each row of hsvmap is a three-element HSV triplet that specifies the hue, saturation, and value components of a single color of the colormap.

The data type of hsvmap depends on the data type of rgbmap:

  • If rgbmap is of data type single, then hsvmap is of data type single.

  • Otherwise, hsvmap is of data type double.

Data Types: single | double

References

[1] Smith, A. R. “Color Gamut Transform Pairs”. SIGGRAPH 78 Conference Proceedings. 1978, pp. 12–19.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

GPU Code Generation
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.

Version History

Introduced before R2006a

See Also

|