From my sincere personal view understanding different color models and their differences can be of tremendous importance when dealing with digital image processing and computer vision. Many new comers in the field usually try do everything with the most common color model : the RGB, but are quickly disappointed with the result they obtain. The objective of this post is not to explain in detail color models nor the HSV, rather to raise awareness about the issue.
According to
wikipedia a
color model is an abstract mathematical model describing the way
colors can be represented as
tuples of numbers, typically as three or four values or
color components (e.g.
RGB and
CMYK are color models). There are five major models, that sub-divide into others, which are: CIE, RGB, YUV, HSL/HSV, and CMYK.
What about the HSL/HSV ?
The above picture depicting the Ostwald diagram is briefly explained in this
article as follow:
-
The hue (H) of a color refers to
which pure color it resembles. All tints, tones and
shades of red have the same hue.
Hues are described by a number that specifies the position
of the corresponding pure color on the color wheel, as a
fraction between 0 and 1. Value 0 refers to red; 1/6 is
yellow; 1/3 is green; and so forth around the color wheel.
-
The saturation (S) of a color
describes how white the color is. A pure red is fully
saturated, with a saturation of 1; tints of red have
saturations less than 1; and white has a saturation of 0.
-
The value (V) of a color, also
called its lightness, describes
how dark the color is. A value of 0 is black, with
increasing lightness moving away from black.
-
The outer edge of the top of the cone is the color wheel, with
all the pure colors. The H parameter describes the angle around
the wheel.
-
The S (saturation) is zero for any color on the axis of the
cone; the center of the top circle is white. An increase in
the value of S corresponds to a movement away from the axis.
-
The V (value or lightness) is zero for black. An increase in
the value of V corresponds to a movement away from black and
toward the top of the cone.
Another important explanation is from
stackoverflow with the following key statement:
Unlike RGB, HSV separates luma, or the image intensity, from chroma or the color information. If you want to do histogram equalization of a color image, you probably want to do that only on the intensity component, and leave the color components alone. HSV is often used simply because the code for converting between RGB and HSV is widely available and can also be easily implemented.
Using only the Hue component makes the algorithm less sensitive (if not invariant) to lighting variations. Like our hand has many parts palm, back palm, and below that. we can see different color variation in these areas, but the hue for all these regions don't vary much, so hue value can be useful in hand segmentation.
Finally I can say that RGB is the way computers treats color, and HSV try to capture the components of the way we humans perceive color. Opening a view for machine color perception (RGB) vs human color perception (HSV). I am not an expert in computer vision nor in image processing but a knowledge seeker trying to explore these fields. Any constructive comment shading more light on this issue is warmly welcome.