HSL color space

From Wikipedia, the free encyclopedia

(Redirected from HSB color space)
Jump to: navigation, search
Graphical depiction of HSV
Graphical depiction of HSV
HSL arranged as a double-cone
HSL arranged as a double-cone
HSL mapped to a sphere (with corner cut away).
HSL mapped to a sphere (with corner cut away).

HSL and HSV (also called HSB) are two related representations of points in an RGB color space, which attempt to describe perceptual color relationships more accurately than RGB, while remaining computationally simple. HSL stands for hue, saturation, lightness, while HSV stands for hue, saturation, value and HSB stands for hue, saturation, brightness.

Both HSL and HSV describe colors as points in a cylinder whose central axis ranges from black at the bottom to white at the top with neutral colors between them, where angle around the axis corresponds to “hue”, distance from the axis corresponds to “saturation”, and distance along the axis corresponds to “lightness”, “value”, or “brightness”.

The two representations are similar in purpose, but differ somewhat in approach. Both are mathematically cylindrical, but while HSV (hue, saturation, value) can be thought of conceptually as an inverted cone of colors (with a black point at the bottom, and fully-saturated colors around a circle at the top), HSL conceptually represents a double-cone or sphere (with white at the top, black at the bottom, and the fully-saturated colors around the edge of a horizontal cross-section with middle gray at its center). Note that while “hue” in HSL and HSV refers to the same attribute, their definitions of “saturation” differ dramatically.

Because HSL and HSV are simple transformations of device-dependent RGB, the color defined by a (h, s, l) or (h, s, v) triplet depends on the particular color of red, green, and blueprimaries” used. Each unique RGB device therefore has unique HSL and HSV spaces to accompany it. An (h, s, l) or (h, s, v) triplet can however become definite when it is tied to a particular RGB color space, such as sRGB.

The HSV model was created in 1978 by Alvy Ray Smith.

Contents

Artists sometimes prefer to use the HSV color model over alternative models such as RGB or CMYK, because of its similarities to the way humans tend to perceive color. RGB and CMYK are additive and subtractive models, respectively, defining color in terms of the combination of primaries, whereas HSV encapsulates information about a color in terms that are more familiar to humans: What color is it? How vibrant is it? How light or dark is it? The HSL color space is similar and arguably even better than HSV in this respect.

An HSV color wheel allows the user to quickly select a multitude of colors.
An HSV color wheel allows the user to quickly select a multitude of colors.

The HSV model is commonly used in computer graphics applications. In various application contexts, a user must choose a color to be applied to a particular graphical element. When used in this way, the HSV color wheel is often used. In it, the hue is represented by a circular region; a separate triangular region may be used to represent saturation and value. Typically, the vertical axis of the triangle indicates saturation, while the horizontal axis corresponds to value. In this way, a color can be chosen by first picking the hue from the circular region, then selecting the desired saturation and value from the triangular region.

The conical representation of the HSV model is well-suited to  visualizing the entire HSV color space in a single object.
The conical representation of the HSV model is well-suited to visualizing the entire HSV color space in a single object.

Another visualization method of the HSV model is the cone. In this representation, the hue is depicted as a three-dimensional conical formation of the color wheel. The saturation is represented by the distance from the center of a circular cross-section of the cone, and the value is the distance from the pointed end of the cone. Some representations use a hexagonal cone, or hexcone, instead of a circular cone. This method is well-suited to visualizing the entire HSV color space in a single object; however, due to its three-dimensional nature, it is not well-suited to color selection in two-dimensional computer interfaces.

The cylindrical representation of the HSV model might be considered the most mathematically accurate model of the HSV color space.
The cylindrical representation of the HSV model might be considered the most mathematically accurate model of the HSV color space.

The HSV color space could also be visualized as a cylindrical object; similar to the cone above, the hue varies along the outer circumference of a cylinder, with saturation again varying with distance from the center of a circular cross-section. Value again varies from top to bottom. Such a representation might be considered the most mathematically accurate model of the HSV color space; however, in practice the number of visually distinct saturation levels and hues decreases as the value approaches black. Additionally, computers typically store RGB values with a limited range of precision; the constraints of precision, coupled with the limitations of human color perception, make the cone visualization more practical in most cases.

HSL is similar to HSV. For some people, HSL better reflects the intuitive notion of "saturation" and "lightness" as two independent parameters, but for others its definition of saturation is wrong, as for example a very pastel, almost white color can be defined as fully saturated in HSL. It might be controversial, though, whether HSV or HSL is more suitable for use in human user interfaces.

The CSS3 specification from the W3C states, "Advantages of HSL are that it is symmetrical to lightness and darkness (which is not the case with HSV for example)…" This means that:

  • In HSL, the Saturation component always goes from fully saturated color to the equivalent gray (in HSV, with V at maximum, it goes from saturated color to white, which may be considered counterintuitive).
  • The Lightness in HSL always spans the entire range from black through the chosen hue to white (in HSV, the V component only goes half that way, from black to the chosen hue).

In software, a hue-based color model (HSV or HSL) is usually presented to the user in the form of a linear or circular hue chooser and a two-dimensional area (usually a square or a triangle) where you can choose saturation and value/lightness for the selected hue. With this representation, the difference between HSV and HSL is irrelevant. However, many programs also let you select a color via linear sliders or numeric entry fields, and for those controls, usually either HSL or HSV (not both) are used. HSV is traditionally more common. Here are some examples:

  • Applications that use HSV (HSB):

The HSV tristimulus space does not technically support a one-to-one mapping to physical power spectra as measured in radiometry. Thus it is not generally advisable to try to make direct comparisons between HSV coordinates and physical light properties such as wavelength or amplitude.

An RGB image of the John Moulton Barn at the base of the Teton Range, along with its H, S and L components.
An RGB image of the John Moulton Barn at the base of the Teton Range, along with its H, S and L components.
An image, along with its H, S and V components.  Compare the dark on the left side of the barn roof and the white of the snow; though one is much brighter than the other, these near-neutral colors both have low saturation. Notice that the green grass is highly saturated and of moderate brightness, while the blue of the mountains has consistent hue but widely varying brightness and saturation, and the sky has constant hue and brightness but varying saturation.
An image, along with its H, S and V components. Compare the dark on the left side of the barn roof and the white of the snow; though one is much brighter than the other, these near-neutral colors both have low saturation. Notice that the green grass is highly saturated and of moderate brightness, while the blue of the mountains has consistent hue but widely varying brightness and saturation, and the sky has constant hue and brightness but varying saturation.
An illustration of the relationship between the “hue” of colors with maximal saturation in HSV and HSL with their corresponding RGB coordinates.
An illustration of the relationship between the “hue” of colors with maximal saturation in HSV and HSL with their corresponding RGB coordinates.

HSL and HSV are defined mathematically by a transformation of the R, G, and B coordinates of colors in RGB space.

Let (r, g, b) be the red, green, and blue coordinates of a color, respectively, whose values are real numbers between 0 and 1. Let max equal the greatest of r, g, and b. Let min equal the least of those values. To find (h, s, l) values in HSL space, where h ∈ [0, 360) is the hue angle in degrees, and s, l ∈ [0,1] are the saturation and lightness, compute:



h =
\begin{cases}
\mbox{undefined} & \mbox{if } max = min \\
60^\circ \times \frac{g - b}{max - min} + 0^\circ,   & \mbox{if } max = r \mbox{ and } g \ge b \\
60^\circ \times \frac{g - b}{max - min} + 360^\circ,   & \mbox{if } max = r \mbox{ and } g < b \\
60^\circ \times \frac{b - r}{max - min} + 120^\circ, & \mbox{if } max = g \\
60^\circ \times \frac{r - g}{max - min} + 240^\circ, & \mbox{if } max = b
\end{cases}
l = \begin{matrix} \frac{1}{2} \end{matrix} (max + min)

s = 
\begin{cases}
0 & \mbox{if } l = 0 \mbox{ or } max = min \\
\frac{max-min}{max+min} = \frac{max-min}{2l}, & \mbox{if } 0 < l \leq \frac{1}{2} \\
\frac{max-min}{2-(max+min)} = \frac{max-min}{2-2l}, & \mbox{if } l > \frac{1}{2}
\end{cases}


The value of h is generally normalized to lie between 0 and 360°, and h = 0 is used when max = min (that is, for grays) instead of leaving h undefined.

HSL and HSV have the same definition of hue, but the other components differ. The values for s and v of an HSV color are defined as follows:


s = 
\begin{cases}
0, & \mbox{if } max = 0 \\
\frac{max - min}{max} = 1 - \frac{min}{max}, & \mbox{otherwise}
\end{cases}
v = max \,

Given a color defined by (h, s, l) values in HSL space, with h in the range [0, 360), indicating the angle, in degrees of the hue, and with s and l in the range [0, 1], representing the saturation and lightness, respectively, a corresponding (r, g, b) triplet in RGB space, with r, g, and b also in range [0, 1], and corresponding to red, green, and blue, respectively, can be computed as follows:

First, if s = 0, then the resulting color is achromatic, or gray. In this special case, r, g, and b all equal l. Note that the value of h is undefined in this situation.

When s ≠ 0, the following procedure can be used:[1]


q=
\begin{cases}
l \times (1+s), & \mbox{if } l < \frac{1}{2} \\
l+s-(l \times s), & \mbox{if } l \ge \frac{1}{2}
\end{cases}
p = 2 \times l - q \,
h_k = {h \over 360} \, (h normalized to be in the range [0,1))
t_R = h_k+\frac{1}{3} \,
t_G = h_k \,
t_B = h_k-\frac{1}{3} \,
\mbox{if } t_C < 0 \rightarrow t_C = t_C + 1.0 \quad \mbox{for each}\,C \in \{R,G,B\}
\mbox{if } t_C > 1 \rightarrow t_C = t_C - 1.0 \quad \mbox{for each}\,C \in \{R,G,B\}


For each color vector Color = (ColorR, ColorG, ColorB) = (r, g, b),


{Color}_C =
\begin{cases}
p+ \left((q-p) \times 6 \times t_C\right), & \mbox{if } t_C < \frac{1}{6}  \\
q, & \mbox{if } \frac{1}{6} \le t_C < \frac{1}{2}  \\
p+\left((q-p) \times 6 \times (\frac{2}{3} - t_C) \right), & \mbox{if } \frac{1}{2} \le t_C < \frac{2}{3} \\
p, & \mbox{otherwise }
\end{cases}
\mbox{for each}\,C \in \{R,G,B\}

Similarly, given a color defined by (h, s, v) values in HSV space, with h as above, and with s and v varying between 0 and 1, representing the saturation and value, respectively, a corresponding (r, g, b) triplet in RGB space can be computed:

h_i = \left\lfloor \frac{h}{60} \right\rfloor \mod 6
f = \frac{h}{60} - h_i
p = v \times (1 - s) \,
q = v \times (1 - f \times s) \,
t = v \times (1 - (1 - f) \times s) \,


For each color vector (r, g, b),


(r, g, b) = 
\begin{cases}
(v, t, p), & \mbox{if } h_i = 0  \\
(q, v, p), & \mbox{if } h_i = 1  \\
(p, v, t), & \mbox{if } h_i = 2  \\
(p, q, v), & \mbox{if } h_i = 3  \\
(t, p, v), & \mbox{if } h_i = 4  \\
(v, p, q), & \mbox{if } h_i = 5  \\
\end{cases}

The terms attributed to the "L" component of HSL color space may be misleading since they have little to do with color science definitions of the terms.

  • Lightness refers to the perceived reflectance of a surface.[2]
  • Luminance typically refers to relative luminance, which is based on the photometric definition of luminance but normalized with respect to a reference white.
  • Luminosity typically (and incorrectly) refers to relative luminance. This usage was popularized by Adobe Photoshop; in the documentation of the CS3 version, the luminosity blending mode is still present, but is described in terms of luminance: "Luminosity: Creates a result color with the hue and saturation of the base color and the luminance of the blend color."[3]

The RGB values are shown in the range 0.0 to 1.0.

RGB HSL HSV Result
(1, 0, 0) (0°, 1, 0.5) (0°, 1, 1)  
(0.5, 1, 0.5) (120°, 1, 0.75) (120°, 0.5, 1)  
(0, 0, 0.5) (240°, 1, 0.25) (240°, 1, 0.5)  

  1. ^ Foley, James D.; Andries van Dam (1982). Fundamentals of Interactive Computer Graphics. Boston, MA, USA: Addison-Wesley. ISBN 0-201-14468-9. 
  2. ^ Edward H. Adelson (2000). Lightness Perception and Lightness Illusions – Some terminology. Massachusetts Institute of Technology. Retrieved on 2007-07-17.
  3. ^ List of Blending Modes. Adobe Help Resource Center. Retrieved on 2007-11-10.

Advanced Search
Included Web Search Engines


Safe Search

close

Top Matching Results

Occasionally Search.com will highlight specialized results that are based on the context of your query. Examples of specialized results include specific links to news, images, or video.

Top Matching Results may highlight information from other Search.com pages, content from the CNET Network of sites, or third party content. The listings are based purely on relevance. Search.com does not receive payment for listings in this section but our partners that provide this data may get paid for listing these products.

Sponsored Links

This section contains paid listings which have been purchased by companies that want to have their sites appear for specific search terms and related content. These listings are administered, sorted and maintained by a third party and are not endorsed by Search.com.

Search Results

Search.com sends your search query to several search engines at one time and integrates the results into one list which has been sorted by relevance using Search.com's proprietary algorithm. You can customize the list of search engines included in your metasearch from the preferences.

The search engines that are used in your metasearch may allow companies to pay to have their Web sites included within the results. To view the Paid Inclusion policy for a specific search engine, please visit their Web site. Search.com does not accept payment or share revenue with any search engine partner for listings in this section.