Sunday, December 22, 2013

HSV a preferred color model in Computer Vision ?

           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.

No comments:

Post a Comment