Fact-checked by Grok 2 weeks ago

HSL and HSV

HSL (hue, saturation, lightness) and HSV (hue, saturation, value) are cylindrical-coordinate color models derived from the RGB color space, providing intuitive representations of colors that better align with human perception by separating hue (the type of color), (the purity or intensity of the color), and a third component representing or . These models emerged in the late 1970s within research to facilitate user-friendly color specification and manipulation on early display systems. The HSV model, introduced by in 1978, defines value (V) as the maximum of the RGB components, representing the overall from black (V=0) to the purest form of the hue at full (V=1), with (S) measuring the proportion of the maximum component relative to the minimum (S = (max(R,G,B) - min(R,G,B)) / max(R,G,B)). Geometrically, HSV maps the RGB cube onto a hexcone structure, where the apex is black, the base is a hexagonal disk of white and saturated colors, and hue corresponds to the angular position around the cone. In contrast, the HSL model, proposed by George H. Joblove and Donald P. Greenberg in the same year, replaces value with (L), calculated as the average of the maximum and minimum RGB components (L = (max(R,G,B) + min(R,G,B)) / 2), which more accurately reflects perceived by centering achromatic colors (grays) around L=0.5. Saturation in HSL adjusts based on lightness—for L ≤ 0.5, S = (max - min) / (max + min); for L > 0.5, S = (max - min) / (2 - max - min)—yielding a bi-hexcone with apices at pure black (L=0) and white (L=1), and the widest equatorial band of fully saturated colors at L=0.5. Both models share the same hue definition, typically ranging from 0° to 360° (or 0 to 1 in normalized form), with 0° at and increments cycling through the , but they differ in how they handle brightness: HSV emphasizes the vividness of colors (ideal for applications like lighting simulations), while HSL prioritizes perceptual uniformity in lightness adjustments (preferred in software). Conversions between HSL, , and RGB are piecewise and non-linear, enabling efficient algorithmic implementations in pipelines without trigonometric functions for speed. Widely adopted in digital design, (e.g., CSS color functions), and , these models simplify tasks like color picking, gradient generation, and segmentation, though they are not perceptually uniform and can exhibit inconsistencies in compared to more advanced spaces like CIELAB. Their enduring popularity stems from computational efficiency and alignment with artistic workflows, despite limitations in accurately modeling human .

Introduction

Basic Principles

HSL (Hue, Saturation, ) is a cylindrical color model that reparameterizes the RGB color space to align more closely with human perception of color attributes, where corresponds to the perceived of a color, ranging from to , and measures the purity or intensity of the hue relative to a neutral gray of the same . In this model, colors are represented in a way that facilitates intuitive adjustments, such as increasing to make a color more vivid without altering its . HSV (Hue, Saturation, Value), similarly derived from RGB, defines value as the maximum intensity among the red, green, and blue components, representing the overall brightness from black to the purest form of the color, while saturation indicates the proportion of the pure hue in the color mixture, with desaturated values approaching gray. This model emphasizes artistic color mixing concepts, such as tints and shades, making it suitable for creative applications where value controls the strength of the color independently of its hue. Both HSL and HSV employ a cylindrical geometric representation of the , with hue defined as an angular coordinate around the (typically 0° to 360°), (or in HSL contexts) as the radial distance from the central axis, and or as the height along the axis, transforming the cubic RGB space into a more perceptually uniform structure. Developed in the , these models were created to overcome the unintuitive nature of direct RGB manipulation for artists and designers in applications.

Overview of HSL and HSV

HSL (Hue, Saturation, Lightness) and HSV (Hue, Saturation, Value) are two closely related cylindrical color models derived from the RGB color space, intended to provide more intuitive representations for human color perception and manipulation in computer graphics and image processing. Both models reorganize the RGB cube into a cylindrical coordinate system, where hue defines the base color type, saturation indicates the purity or intensity of that hue relative to gray, and the third axis differentiates their approach to brightness. Developed in the late 1970s, these models facilitate tasks like color selection in software interfaces by aligning more closely with how artists and designers intuitively mix colors, such as tinting with white or shading with black. A key similarity between HSL and HSV lies in their shared definition of hue, which is computed as an angular value (typically 0° to 360°) based on the dominant RGB component and the differences between them, allowing seamless around the . Both also employ to quantify deviation from achromatic colors, though their exact computations differ to suit their respective axes. These shared elements make the models interchangeable in many applications, such as basic color picking tools, while their cylindrical geometry preserves the perceptual continuity of hues better than linear RGB coordinates. The primary differences emerge in the treatment of and . In , value is simply the maximum of the three RGB components, capturing the overall or "strength" of the color as in additive mixing processes, where full value yields the purest, brightest hue. in is then the relative difference between the maximum and minimum RGB values normalized by the maximum, emphasizing color purity at maximum intensity. In , HSL defines as the average of the maximum and minimum RGB components, promoting perceptual uniformity by treating mid-tones (around 50% ) as balanced mixtures of across all hues, which better approximates human brightness perception. HSL's adjusts dynamically relative to —higher in mid-tones and lower near —to maintain consistent color vividness. suits scenarios mimicking light addition, like , while HSL excels in design tools requiring balanced tonal adjustments. For a quick visual comparison:
AspectHSLHSV
Brightness AxisLightness: Average of max and min RGB (perceptual balance)Value: Max RGB (intensity/strength)
SaturationRelative to lightness (complex, uniform vividness)(Max - min)/max (relative to intensity)
GeometryDouble hexcone (symmetric black-white)Single hexcone (black at apex)
Intuitive UsePerceptual uniformity in tonesAdditive mixing like light sources

Historical Context and Motivation

Development History

The development of HSL and HSV color models originated in the late 1970s amid the rise of computer graphics applications, where researchers sought intuitive alternatives to the RGB model for color specification and manipulation. In 1978, Alvy Ray Smith introduced the HSV (hue, saturation, value) model in his SIGGRAPH paper "Color Gamut Transform Pairs," proposing it as a cylindrical-coordinate system to facilitate gamut mapping and color selection in graphics software by aligning with perceptual attributes like hue and brightness. Concurrently, in the same SIGGRAPH proceedings, George H. Joblove and Donald P. Greenberg presented the HSL (hue, saturation, lightness) model in "Color Spaces for Computer Graphics," emphasizing its potential for perceptual uniformity by deriving lightness as the average of maximum and minimum RGB components, which better approximated human vision compared to HSV's value metric. By the 1990s, both models had gained widespread adoption in commercial tools, reflecting their utility in intuitive color pickers and adjustments. Adobe Photoshop, released in 1990, incorporated HSB (an alias for ) as a core color selection interface from its early versions, enabling users to adjust hues and saturations more artistically than with RGB sliders. This integration helped standardize /HSB in professional workflows, with HSL variants following in subsequent updates for finer control. Open-source software further propelled their evolution; the GNU Image Manipulation Program (GIMP), launched in 1996, included HSV-based tools like decompose and colorize functions from version 1.0 onward, with HSL support added later through layer modes and pickers to enhance compatibility with perceptual editing needs. In the , HSL and HSV entered web standards via the CSS3 Color Module, formalized in 2003, which defined hsl() and hsla() notations for browser-based color definition, promoting their use in digital design beyond graphics hardware. Post-2010 advancements in addressed limitations in traditional sRGB-based HSL and HSV for emerging display technologies, with updates focusing on perceptual consistency across varying . By the , adaptations for wide-gamut and (HDR) imaging extended these models; for instance, CSS Color Module Level 4 (published 2020) enabled HSL usage within wider color spaces like Display P3, allowing HDR content creators to map extended gamuts without severe clipping, as demonstrated in modern browsers supporting rec.2020 workflows. These enhancements, building on foundational 1978 designs, have sustained HSL and HSV's relevance in HDR pipelines for tools like .

Reasons for HSL and HSV

The , while fundamental for device representation in displays and cameras, presents significant limitations for intuitive color manipulation. Adjusting individual red, green, or blue channels often leads to counterintuitive results, as changes in one primary can unpredictably alter the perceived hue, , and due to the model's additive mixing nature. This lack of perceptual alignment makes RGB challenging for users, such as artists or designers, who expect more natural controls akin to mixing paints or dyes. HSL was developed to address these issues by offering independent controls for hue (the type of color), (the vividness or purity), and (the brightness relative to and ), thereby mimicking human intuitive adjustments to color attributes. This separation allows users to vary one property without substantially affecting the others, facilitating easier specification and modification in applications like . In contrast, HSV provides a similar but distinct approach, with value representing the maximum brightness component tied directly to display output, making it particularly intuitive for and where variations need to align with device rendering. By decoupling chromatic information (hue and ) from overall intensity (), HSV enables straightforward adjustments for tasks like in rendering. Both models achieve their user-friendliness through a conceptual shift from RGB's Cartesian coordinates to a cylindrical , where hue forms an dimension around a central of achromatic colors, allowing for more natural editing that aligns with human color perception attributes like hue circling and radial gradients. This transformation simplifies operations such as rotating hues or scaling purity without the nonlinear interactions inherent in RGB.

Conceptual Foundations

Human Color Perception Attributes

Human color perception is fundamentally shaped by opponent color theory, which posits that hues are processed along antagonistic channels: a - axis and a -yellow axis, with achromatic (black-white) information handled separately. This framework, originally proposed by Ewald Hering in and later supported by physiological evidence, explains why complementary hues like and cannot be perceived simultaneously, as they oppose each other in neural signaling. In this model, hue represents the dominant angle or quality of color, akin to the of light but abstracted into these bipolar dimensions rather than a linear , allowing for the of intermediate shades like , which lacks a direct spectral counterpart. Saturation, in perceptual terms, refers to the purity or intensity of a hue, measured as its deviation from a neutral gray of equivalent , where fully saturated colors appear vivid and unmixed, while desaturated ones approach achromatic tones. This attribute arises from the relative strength of chromatic signals in the , with higher evoking stronger emotional or attentional responses compared to diluted versions of the same hue. Physiologically, perception integrates cone responses in the and opponent processing in the , making it sensitive to contextual factors like surrounding colors. Lightness, distinct from raw luminance, is the perceived brightness of a surface relative to its , often interpreted as under varying illumination, and it is profoundly influenced by contextual effects such as simultaneous contrast, where a medium gray appears lighter adjacent to than to . This illusion demonstrates how the computes through and higher-level scene interpretation, prioritizing stable over absolute light levels. In opponent , aligns with the achromatic channel, modulating overall without altering hue. These attributes—hue, saturation, and lightness—form the perceptual foundation for models like HSL and HSV, drawing from the developed by Albert H. Munsell in the early , which organized colors perceptually into hue, value (lightness), and chroma () for artistic and scientific use, and the CIE space standardized in 1976 to approximate uniform perceptual differences based on opponent dimensions. However, HSL and HSV simplify these for computational efficiency, trading some perceptual uniformity for ease in digital applications. Recent 2020s research highlights cultural variations in hue perception, such as differences in categorical boundaries for basic color terms across languages, influencing how hues are discriminated and named in non-Western contexts.

Cylindrical Coordinate Systems in Color

HSL and HSV color models represent colors in a , transforming the Cartesian RGB space into a more intuitive framework aligned with human color perception attributes such as hue, , and or . In this system, the RGB cube is projected onto a where hue serves as the coordinate (θ), typically ranging from 0° to 360°, or acts as the radial distance from the central axis, and (in HSL) or (in HSV) corresponds to the height along the vertical axis. This transformation begins by identifying key RGB values—maximum, minimum, and average—to derive the polar components, enabling colors to be conceptualized as points within a three-dimensional or . The advantages of this cylindrical representation lie in its perceptual uniformity and ease of manipulation: slices at constant hue yield pure colors along the radial direction, while scaling the adjusts color purity or desaturation independently of the axial component, facilitating tasks like tinting or in applications. For instance, moving radially outward at a fixed hue and height produces increasingly vivid versions of the same color family, mirroring how artists mix paints. This separation allows for efficient algorithmic adjustments, such as isolating hue changes without altering , which is particularly useful in and image processing. Visualizations of these models highlight a key distinction: HSV is often depicted as a hexcone, where the () tapers to a point at (value=0), with the base at value=1 forming a in which the center is and the perimeter consists of fully saturated colors, reflecting the RGB gamut's boundaries more accurately for high and low values. In contrast, HSL is depicted as a bi-hexcone, with the tapering to points at (L=0) and (L=1), providing the widest equatorial band of fully saturated colors at L=0.5, which simplifies perceptual adjustments but may extend beyond the RGB in some regions. At a high level, the defines the radial coordinate r as (the difference between maximum and minimum RGB components, scaled appropriately) and the angular hue h via an function of RGB differences, positioning colors on the perimeter for fully saturated cases.

Definitions of Components

Hue

In both the HSL (Hue, Saturation, Lightness) and HSV (Hue, Saturation, Value) color models, hue represents the dominant or tint of a given color, analogous to its position on a perceptual , such as those developed in early 20th-century systems like Ostwald's hue circle. It is quantified as an angular value, typically normalized to the range of 0° to 360° (or equivalently 0 to 1 in some implementations), where 0° corresponds to , 120° to , 240° to , and intermediate values to hues like (60°) or (180°). This angular representation captures the qualitative aspect of color perception, distinguishing it from attributes like or purity, and aligns with human visual sensations of color similarity to the rainbow or . The calculation of hue from RGB values (normalized to [0,1]) is identical in both HSL and HSV models and depends on the differences between the (R), (G), and (B) components. First, identify the maximum (C_max) and minimum (C_min) among R, G, B; if C_max = C_min, the color is achromatic (gray), and hue is undefined. Otherwise, compute the = C_max - C_min, then determine hue based on which component is maximum:
  • If C_max = R, then H = (G - B) /
  • If C_max = G, then H = 2 + (B - R) /
  • If C_max = B, then H = 4 + (R - G) /
The result H is then scaled by 60° and taken 360° to yield the final (with negative values adjusted by adding 360°). For example, if C_max = R, the hue simplifies to 60° × (G - B) / (R - C_min) 360°. This formula ensures hue remains independent of overall intensity, focusing solely on the relative contributions of the primaries to the perceived tint. Hue's perceptual utility stems from its invariance to changes in or , allowing consistent color identification across varying brightness levels; for instance, a pure at full intensity has the same hue as a dimmed . However, for achromatic colors where is zero, hue lacks meaning, as no dominant spectral component exists. This design reflects foundational work in perceptual color modeling, extending concepts from systems like Ostwald's to computational .

Chroma

In the HSL and HSV color models, chroma represents the absolute measure of a color's , quantifying the radial distance from the neutral () axis in the cylindrical coordinate representation of the . It is computed as the difference between the maximum and minimum of the normalized RGB components: C = \max(R, G, B) - \min(R, G, B), where the RGB values are scaled to the range [0, 1]. This definition captures the extent to which a color deviates from gray, independent of its or hue. Within the HSL model, serves as a foundational component for deriving , which is then scaled relative to the to approximate perceptual purity—the degree to which a color appears vivid compared to the most saturated possible color at that lightness level. Specifically, HSL S_L = \frac{C}{1 - |2L - 1|}, where L is the , ensures that reflects a normalized measure of color that aligns more closely with human perception of color strength at varying es. In contrast, HSV uses to compute its as S_V = \frac{C}{V}, where V is the (maximum component), emphasizing color purity relative to the overall rather than a perceptual adjustment. This distinction highlights 's role as a shared raw metric, but interpreted differently across the models to suit perceptual or technical needs. When equals zero, the color reduces to a gray, as all RGB components are equal, placing the point directly on the central of the color . The maximum possible , however, is not constant and varies with : it reaches its peak at mid- (L ≈ 0.5), where pure colors can be represented without desaturation, but diminishes toward (L = 0) or (L = 1), where no is achievable. For instance, a mid-tone might achieve a of 1 (fully saturated), while a near- or near- would have reduced to stay within the RGB . Visually, increasing along a fixed hue and produces gradients from muted grays through to vivid, highly colorful tones, illustrating its effect on perceived without altering the color's tint or . Hue, defined as the around the , determines the direction of this radial expansion but remains orthogonal to .

Lightness and Value

In the HSL and color models, the vertical axis represents through (in HSL) and (in ), providing distinct ways to quantify the intensity dimension of a color derived from RGB coordinates. These components allow users to adjust the "light" or "dark" aspect of a hue independently of its or radial , facilitating intuitive color manipulation in graphics applications. Lightness in HSL is defined as the average of the largest and smallest RGB component values, given by the formula L = \frac{\max(R, G, B) + \min(R, G, B)}{2}, where R, G, and B are normalized to the range [0, 1]. This computation aims to approximate human-perceived brightness by balancing the overall tonal range, positioning lightness as a perceptual correlate that aligns more closely with how observers judge relative luminance in varied contexts. In contrast, value in HSV is simply the maximum of the RGB components, V = \max(R, G, B), capturing the raw or peak channel contribution without averaging. This makes value a direct measure of the strongest color signal, suitable for scenarios emphasizing maximum output, such as lighting simulations. A notable perceptual difference arises in how these axes behave at neutral points: in HSL, a lightness of 0.5 yields a mid-gray (50% ) irrespective of or , promoting consistent perceptual neutrality across colors; whereas in , a value of 1.0 results in either full (at zero saturation) or the purest saturated hue, highlighting instrumental extremes rather than a perceptual . This distinction renders HSL's lightness better suited for subtractive media like , where gravitates toward grays, while HSV's value aligns more naturally with additive media such as screens, where builds through accumulation.

Saturation Differences in HSL and HSV

In the , is defined as the of the between the RGB components to the maximum component, given by S = \frac{\max(R, G, B) - \min(R, G, B)}{\max(R, G, B)}. This yields a value of zero for achromatic colors such as or , where all RGB components are equal or the maximum is 1 with minimum 1, and a value of 1 for fully saturated pure hues, where the color consists of a single nonzero primary or two primaries with the third at zero. In contrast, the HSL color model defines relative to to better approximate perceptual uniformity, using the formula S = \frac{\max(R, G, B) - \min(R, G, B)}{1 - |2L - 1|}, where L = \frac{\max(R, G, B) + \min(R, G, B)}{2}. The modern HSL differs from the original 1978 proposal's relative ((\max - \min)/\max), adjusting to measure the purity of a color in proportion to the available at that level, aiming for steps that correspond more evenly to perceived color vividness across the range. is zero for achromatic colors and reaches 1 for the most vivid hue at the given . These differing definitions lead to distinct behaviors when adjusting . In HSV, decreasing saturation progresses the color toward a uniform gray with the same value V. In HSL, desaturation progresses toward a gray tone with the same L, preserving the perceptual lightness while reducing chromatic intensity. This makes HSL more intuitive for tasks requiring consistent perceptual purity, though both models build on the underlying as the raw color difference from gray.

Mathematical Derivation

General Derivation Approach

The derivation of HSL and HSV from RGB coordinates follows a structured geometric approach that transforms the Cartesian RGB into cylindrical representations, facilitating intuitive color manipulation aligned with . This process assumes input RGB values in a standard space such as (gamma-encoded) or linear RGB, with normalization to the [0,1] interval as the initial prerequisite to standardize component scales and enable consistent geometric projections. Linear RGB is preferred in foundational derivations for direct intensity correspondence, though practical implementations often apply the method to with minimal adjustment. The core methodology proceeds by first computing the maximum (max) and minimum (min) values among the normalized R, G, and B components, defining chroma as max - min to quantify color purity independent of overall intensity. This chroma serves as a foundational metric for subsequent saturation derivations in both models. For hue, the RGB triple is partitioned into six 60-degree sectors (sextants) of a hexagonal color wheel, determined by identifying the dominant (maximum) component and using intermediate deltas—differences between the other components and min—to interpolate angular positions within the sector. A primary distinction in the approaches arises in the achromatic dimension and computation: HSV anchors to the absolute max, yielding as a relative measure of against this peak for vividness assessment, whereas HSL centers on the average of max and min, producing as relative to twice the deviation from mid-gray for perceptual uniformity. These differences stem from HSV's cone geometry emphasizing maximum brightness and HSL's double-cone structure prioritizing balanced .

Deriving Hue and Chroma from RGB

To derive the hue and chroma components from RGB values in both HSL and HSV color spaces, the process begins by normalizing the RGB components to the range [0, 1], assuming input values are in [0, 255] by dividing by 255. This normalization ensures consistent computation across models. Chroma, denoted as C, quantifies the color's purity or difference from gray and is computed identically in both HSL and HSV as the difference between the maximum and minimum of the normalized red (r), green (g), and blue (b) components: C = \max(r, g, b) - \min(r, g, b) This value represents the radial extent in the cylindrical representation, directly measuring the excursion from the neutral axis. When C = 0, the color is achromatic (grayscale), and subsequent hue computation is undefined or conventionally set to 0 for continuity in applications. Hue, denoted as h, is the angular component representing the dominant wavelength, expressed in degrees from 0° to 360°. It is undefined for achromatic colors (C = 0) but otherwise derived by determining the dominant (maximum) channel and computing an intermediate value based on the relative positions of the other two channels, scaled by C. The RGB cube is divided into six 60° sectors corresponding to the primary and secondary colors, with the formula adjusting for the sector: Let M = \max(r, g, b) and m = \min(r, g, b). The hue is calculated as: h = \begin{cases} 0^\circ & \text{if } C = 0 \\ 60^\circ \times \left( \frac{g - b}{C} \mod 6 \right) & \text{if } M = r \\ 60^\circ \times \left( \frac{b - r}{C} + 2 \right) & \text{if } M = g \\ 60^\circ \times \left( \frac{r - g}{C} + 4 \right) & \text{if } M = b \end{cases} Here, the intermediate factor f = \frac{\text{mid} - m}{C} (where mid is the remaining channel) can be used in sector-specific adjustments, but the above case-based form directly yields the angle, with modulo 6 ensuring wrapping at 360°. For example, in the -dominant sector (0° to 60°), f = \frac{g - b}{C} positions the hue within that slice. This approach arises from projecting the RGB onto a hexagonal base for cylindrical coordinates. Hue values wrap continuously, with 0°/360° corresponding to , 120° to , and 240° to . In edge cases, such as when two channels tie for maximum (e.g., pure where r = g > b), the hue falls midway in the sector (e.g., 60°), and the selects based on (e.g., treating as green-max for stability). These derivations, rooted in of the RGB , ensure hue remains consistent across HSL and HSV despite differences in the axial component.

Deriving Lightness in HSL and Value in HSV

In the HSV color model, the value component (V) is derived directly from the RGB components as the maximum of the three normalized values: V = \max(R, G, B). This formulation, introduced by in , represents the intensity or of the color by capturing the strongest contribution from any primary color channel, ensuring that pure colors like (1,0,0) or (1,1,1) achieve V=1, while (0,0,0) yields V=0. Perceptually, V aligns with intuitive notions of in artistic and display contexts, as it treats the departure from uniformly across hues without weighting channels differently, facilitating applications like color pickers where maximum is prioritized. In contrast, the lightness component (L) in the HSL model is computed as the average of the maximum and minimum RGB components: L = \frac{\max(R, G, B) + \min(R, G, B)}{2}. Proposed by George H. Joblove and Donald P. Greenberg in as a perceptual alternative to device-dependent models, this unweighted average aims to model human more closely by centering the achromatic axis between , where mid-tones (L=0.5) occur regardless of hue . For instance, both a mid-gray and a desaturated color at equal perceptual lightness map to L=0.5, promoting uniformity in lightness adjustments across the spectrum. These definitions ensure that L=0 corresponds to (all components 0) and L=1 to (all components 1), mirroring V's endpoints but with a more balanced perceptual scaling. The derivation of L influences the saturation (S) computation in HSL, where chroma C (briefly, the difference \max(R, G, B) - \min(R, G, B)) is normalized relative to lightness: S = \frac{C}{1 - |2L - 1|} if L \leq 0.5, or S = \frac{C}{2 - \max(R, G, B) - \min(R, G, B)} otherwise. This adjustment, inherent to the Joblove-Greenberg model, prevents saturation from exceeding 1 while accounting for lightness variations, ensuring saturated colors remain vivid at both low and high L values without perceptual distortion. Perceptually, it better approximates how humans perceive color purity as independent of overall lightness, unlike HSV's value-based saturation which ties purity to maximum brightness.

Calculation Examples

To illustrate the conversion from RGB to HSL and HSV, consider the pure red color RGB(1, 0, 0), where RGB components are normalized to the range [0, 1]. For HSV, the value V = \max(1, 0, 0) = 1, the chroma C = V - \min(1, 0, 0) = 1, and the saturation S = C / V = 1. The hue H is determined by the dominant red component, yielding H = 0^\circ. Thus, the HSV representation is (0, 1, 1). For HSL, the lightness L = (1 + 0)/2 = 0.5, the C = 1 - 0 = 1, and the S = C / (1 - |2 \times 0.5 - 1|) = 1 / 1 = 1. The hue remains H = 0^\circ. Thus, the HSL representation is (0, 1, 0.5). Next, examine the mid-gray color RGB(0.5, 0.5, 0.5). Here, \max = 0.5 and \min = 0.5, so C = 0. For HSV, V = 0.5 and S = 0 / 0.5 = 0, with hue undefined (often set to 0 or any value). Thus, HSV is (any, 0, 0.5). For HSL, L = (0.5 + 0.5)/2 = 0.5 and S = 0 / (1 - |2 \times 0.5 - 1|) = 0, with hue undefined. Thus, HSL is (any, 0, 0.5). This demonstrates how achromatic colors yield zero in both models. For a more involved case, compute the HSL and HSV values step by step for RGB(0.4, 0.2, 0.6), again with components in [0, 1].
  • Identify \max = 0.6 (blue channel) and \min = 0.2 (green channel), so C = 0.6 - 0.2 = 0.4.
  • For hue H (identical in both models): Since the maximum is in the channel, compute the intermediate hue angle h = 4 + (R - G)/C = 4 + (0.4 - 0.2)/0.4 = 4 + 0.5 = 4.5. Then H = 4.5 \times 60^\circ = 270^\circ.
  • For : V = 0.6 and S = C / V = 0.4 / 0.6 \approx 0.667. Thus, HSV is (270, 0.667, 0.6).
  • For HSL: L = (\max + \min)/2 = (0.6 + 0.2)/2 = 0.4. Since L \leq 0.5, S = C / (2L) = 0.4 / (2 \times 0.4) = 0.4 / 0.8 = 0.5. Thus, HSL is (270, 0.5, 0.4).
This example highlights the procedural application of the derivations, where the shared and hue computations branch into distinct / and definitions. The values differ notably for the same RGB input, as seen above: HSV (0.667) emphasizes purity relative to maximum , while HSL (0.5) scales relative to the lightness midpoint, yielding a lower value for darker tones like this one (L = 0.4 < 0.5). This variation arises from the models' geometric foundations—HSV's hexcone versus HSL's bi-hexcone—leading to divergent perceptual interpretations of color vividness.

Practical Applications

Use in Image Editing and Design Software

HSL and HSV color models are widely implemented in image editing and design software to facilitate intuitive color adjustments, separating hue from lightness or value for more precise control over specific color ranges without affecting overall brightness or contrast. Their cylindrical representation allows users to target individual hues, making them ideal for creative tasks like color grading and correction. This separation of components enables non-destructive edits, where adjustments can be modified or removed at any time, preserving the original image data. In Adobe Photoshop, HSL sliders have been available since the 1990s for selective adjustments, enabling photographers and designers to fine-tune specific colors, such as shifting the hue of reds in a portrait while maintaining natural skin tones. The Hue/Saturation adjustment layer, introduced in early versions like Photoshop 4.0, supports targeted modifications to chroma and lightness, often used in professional workflows for enhancing vibrancy or correcting color casts. Similarly, GIMP utilizes HSV for hue rotation in non-destructive edits, particularly through its Hue-Saturation tool and layer blend modes like HSV Color, which allow reversible changes to color properties without altering the underlying pixel data. Affinity Photo incorporates an HSV option within its HSL adjustment layer, permitting users to switch models for hue rotations that better suit high-saturation scenarios, such as creative color swaps in graphic design. These models are preferred over RGB for targeted edits like skin tone correction because they decouple color information (hue and saturation/chroma) from intensity (lightness or value), allowing adjustments to skin hues without unintended shifts in brightness that could make tones appear unnatural or washed out. In web design, CSS supports since the CSS Color Module Level 3, with extensions in Level 4 during the 2020s enabling dynamic styling through relative color modifications, such as for theme-based variations.

Use in Image Analysis and Computer Vision

HSL and HSV color spaces are widely employed in image analysis and computer vision for their ability to separate chromaticity from intensity, facilitating robust feature extraction under varying lighting conditions. In object segmentation tasks, HSV is particularly favored for color-based thresholding to create binary masks that isolate specific objects, such as in chroma keying for green screen compositing where the hue and saturation components allow precise separation of foreground from uniform backgrounds despite illumination changes. Skin detection algorithms often leverage HSL due to its perceptual uniformity in lightness, providing robustness similar to YCbCr models by defining ranges that minimize sensitivity to shadows and highlights; for instance, thresholds on hue (around 0-20° for reddish tones) and saturation (above 0.2) combined with lightness constraints effectively identify human skin pixels across diverse ethnicities and lighting. This approach has been shown to achieve detection accuracies exceeding 90% in controlled datasets, outperforming RGB-based methods by reducing false positives from non-skin regions with similar intensities. In practical applications, HSV enables color tracking in robotics, where real-time segmentation of colored markers guides autonomous navigation and manipulation; for example, robots use HSV thresholding to localize and grasp objects like red balls in dynamic environments. Similarly, in medical imaging, HSV supports lesion detection by enhancing contrast in dermatoscopic images, where hue-saturation histograms segment pigmented areas like melanomas from surrounding skin, improving diagnostic precision in automated systems. The OpenCV library preferentially utilizes for many vision primitives due to its illumination invariance, as the value channel decouples brightness variations, allowing algorithms like contour detection to remain stable across exposure changes. In recent deep learning pipelines from the 2020s, and serve as preprocessing steps for color normalization, particularly in histopathology and skin lesion analysis, where converting inputs to these spaces prior to convolutional networks mitigates domain shifts from staining variations, improving segmentation performance in multi-site datasets.

Limitations

Perceptual Inaccuracies

HSL and HSV color spaces fail to achieve perceptual uniformity, such that equal steps in their hue, saturation, or lightness/value components do not produce equivalent perceived color differences in human vision. This non-uniformity arises because both models are direct transformations of the device-dependent , preserving its inherent perceptual irregularities rather than aligning with psychophysical models of color appearance. As a result, applications involving color gradients, interpolation, or mapping often exhibit visual distortions, where intended subtle variations appear exaggerated or compressed. A key issue lies in saturation, where adjustments yield non-uniform perceptual changes, particularly overemphasizing differences in darker tones due to disproportionate luminance variations across lightness levels. For instance, when saturation and lightness are held constant, equal angular separations in hue do not correspond to equal perceived similarities between colors, leading to inconsistent colorfulness perception. In HSV, saturation is relative to the maximum channel value, which amplifies distortions in low-value (dark) regions, while HSL's saturation definition further compounds this by tying it to the midpoint lightness, resulting in perceived over-saturation in shadows. Hue representation in both spaces introduces additional inaccuracies, including a discontinuity at the 0°/360° boundary where red transitions abruptly, and uneven perceptual spacing, notably poor discrimination between blue and green hues due to the underlying RGB primaries' uneven spectral coverage. Equal hue increments, such as 60° steps, produce varying degrees of perceived hue difference, with larger shifts around cyan-blue areas compared to red-yellow regions. These issues stem from the angular mapping derived from RGB ratios, which does not match the non-linear nature of human hue perception. Lightness flaws further highlight the perceptual mismatches: HSL's lightness, computed as the average of the maximum and minimum RGB components, forces saturation to zero at the extremes (lightness of 0 or 1), clipping color information in deep shadows and bright highlights in a way that does not reflect human brightness perception, where subtle differences remain discernible. In HSV, the value component simply scales to the brightest channel, disregarding relative luminance contributions from other channels and thus underrepresenting perceived brightness for colors with balanced components. These limitations contrast sharply with the , established in 1976 as a more uniform model where Euclidean distances approximate equal perceptual differences, providing a benchmark for evaluating such inaccuracies.

Technical Drawbacks in Computation

One significant computational challenge in HSL and HSV arises from division by zero during hue calculation. In both models, hue is derived using differences between the RGB components divided by the chroma (the difference between the maximum and minimum RGB values). When chroma is zero—as occurs for achromatic colors (grays, blacks, and whites)—this division is undefined, requiring special handling such as setting hue to zero or an arbitrary value like the last known hue. Similarly, in HSV, saturation is computed as chroma divided by value (the maximum RGB component); if value is zero (pure black), saturation is conventionally set to zero to avoid division by zero. Floating-point precision errors further complicate hue computation, particularly in low-chroma scenarios. The hue formula often employs the atan2 function on small differences between RGB components (e.g., (r - g)/chroma and (b - r)/chroma after normalization). When chroma is small, these differences suffer from subtractive cancellation in floating-point arithmetic, amplifying relative errors and leading to unstable or inaccurate hue angles. Hardware implementations mitigate this by using fixed-point arithmetic, achieving up to 99% accuracy in parallel designs but at the cost of reduced frequency beyond 50 MHz. Conversions between HSL/HSV and RGB can also generate out-of-gamut values, especially in wide color workflows. While HSL and HSV are tightly coupled to the sRGB gamut—ensuring in-gamut inputs remain valid—the reverse conversion (e.g., increasing saturation beyond perceptual limits) may yield RGB components outside [0, 1], necessitating clipping or advanced gamut mapping to prevent artifacts like desaturation or hue shifts. Post-2010 developments in color management, such as , addressed this by allowing out-of-gamut HSL values without automatic clipping, enabling more flexible handling in extended gamuts like , though software must still apply mapping for display compatibility. Finally, these models incur higher computational cost than direct RGB operations, primarily due to the min/max comparisons and conditional branches required for chroma and sector determination. In software, this overhead—typically 10-20 arithmetic operations per pixel—renders HSL/HSV slower for real-time processing like video rendering without optimization, as evidenced by execution times 2-5 times longer than equivalent RGB manipulations on unaccelerated CPUs. Hardware pipelining reduces latency to 7 cycles at 120 MHz but still demands specialized architectures for high-frame-rate applications.

Other Cylindrical Color Spaces

The HSI (Hue, Saturation, Intensity) color model represents colors in a cylindrical coordinate system, where hue describes the color type, saturation indicates the purity or dilution of the color, and intensity captures the overall brightness. Intensity is computed as the average of the red, green, and blue components: I = \frac{R + G + B}{3}. Saturation is then defined as S = 1 - \frac{3 \cdot \min(R, G, B)}{R + G + B}, which measures the proportion of the intensity contributed by the dominant color relative to the achromatic component. This model was first proposed in on color perception calculations, emphasizing its alignment with human visual segmentation of scenes. HSI gained traction in early computer vision and image processing applications during the 1980s, particularly for tasks like edge detection and segmentation where separating intensity from chromaticity proved useful. The YIQ color space, developed for the NTSC analog television standard in the United States, also employs a cylindrical-like structure by decoupling luminance from chrominance to optimize bandwidth in broadcast signals. Here, Y represents luminance (similar to luma), while I (in-phase) and Q (quadrature) form the chrominance components that are modulated onto a subcarrier. Hue is derived from the phase angle of the I-Q vector, \theta = \atan2(Q, I), allowing for angular representation akin to hue in HSV, with saturation related to the magnitude \sqrt{I^2 + Q^2}. This design, introduced in the 1950s as part of NTSC color encoding, prioritizes compatibility with black-and-white broadcasts and efficient transmission over cable, differing from purely computational models by its focus on signal processing constraints. Another notable cylindrical model is HCL (Hue, Chroma, Luma), which builds on perceptually uniform spaces like to achieve better correspondence with human color perception. In HCL, hue follows the angular dimension, chroma quantifies colorfulness relative to a neutral axis, and luma provides a lightness measure that approximates perceived brightness more accurately than simple averages. This space addresses nonuniformities in earlier models by projecting into polar coordinates from a Cartesian perceptual base, enabling smoother interpolations and adjustments in visualization tools. The model was formalized in statistical graphics contexts by Zeileis, Hornik, and Murrell in 2009, promoting its use for generating palettes that maintain perceptual distances across color changes.

Comparisons with HSL and HSV

In the HSI (Hue, Saturation, Intensity) color space, intensity is computed as the arithmetic mean of the R, G, and B components, offering a balanced measure of brightness that proves advantageous for certain image analysis applications, such as segmentation under varying illumination conditions where average luminance provides more stable separation from chromatic information. However, HSI's saturation, defined as S = 1 - \frac{3 \cdot \min(R,G,B)}{R + G + B}, relates the purity of color to the overall intensity, which can be less intuitive for user interfaces and color manipulation tasks compared to 's saturation, S = 1 - \frac{\min(R,G,B)}{\max(R,G,B)}, that scales relative to the brightest channel for a more direct sense of color vividness against black. Compared to CIE LCH (Lightness, Chroma, Hue), a cylindrical representation derived from the perceptually uniform CIE LAB space, both HSL and HSV exhibit inferior uniformity in perceived color differences, as LCH ensures that equal changes in lightness, chroma, or hue correspond more closely to human visual perception across the spectrum. While LCH excels in applications requiring precise color matching, such as printing and display calibration, it demands more complex computations involving matrix transformations and non-linear adjustments from RGB, making HSL and HSV preferable for simpler user interfaces in design software where cylindrical geometry facilitates intuitive hue-saturation adjustments. A key trade-off in using HSL and HSV lies in their computational efficiency versus perceptual accuracy; these models transform RGB coordinates into a regular cylinder with straightforward trigonometric operations, enabling fast real-time processing in graphics rendering and interactive tools, but they fall short in uniformity compared to LAB-derived cylinders like , where lightness variations across hues (e.g., yellow appearing brighter than blue at equal values) lead to noticeable distortions in perceived brightness and saturation. HSL's lightness component, defined as the average of the maximum and minimum RGB values, approximates perceptual lightness more closely than HSV's value (the maximum RGB), aligning better with the uniform value scale in the , which prioritizes balanced brightness perception over peak intensity.

Conversion Formulas

HSL to RGB

To convert a color from the HSL (Hue, Saturation, Lightness) model to RGB, the components are first normalized such that hue H is in the range [0^\circ, 360^\circ), while saturation S and lightness L are in [0, 1]. The algorithm inverts the RGB-to-HSL transformation by computing intermediate values that position the color within the RGB cube based on hue sectors, then scales by lightness. This process ensures the resulting RGB values are in the range [0, 1] before final scaling to [0, 255] for 8-bit representation. The conversion begins with a special case: if S = 0, the color is achromatic, yielding R = G = B = L (after normalization), which produces shades of gray regardless of H. For S > 0, compute the chroma C = (1 - |2L - 1|) \times S, which represents the perceptual relative to . Next, determine the intermediate value X = C \times (1 - |((H / 60^\circ) \mod [2](/page/R)) - 1|), and the m = L - C/2. These values define the temporary RGB components (R', G', B') before adding the offset. The temporary components (R', G', B') are assigned based on the hue sector H' = H / 60^\circ, with i = \lfloor H' \rfloor \mod 6:
  • If i = 0: R' = C, G' = X, B' = 0
  • If i = 1: R' = X, G' = C, B' = 0
  • If i = 2: R' = 0, G' = C, B' = X
  • If i = 3: R' = 0, G' = X, B' = C
  • If i = 4: R' = X, G' = 0, B' = C
  • If i = 5: R' = C, G' = 0, B' = X
For intermediate hues within a sector (i.e., non-integer H'), may be applied between adjacent cases, though the sector-based assignment suffices for exact conversion at boundaries. The final RGB values are then R = (R' + m) \times 255, G = (G' + m) \times 255, B = (B' + m) \times 255, clamped to [0, 255] to handle any minor overflow due to rounding. This method, equivalent to the compact formulation in web standards, ensures consistent mapping across implementations.

HSV to RGB

The conversion from HSV to RGB reconstructs colors by emphasizing the value (V) as the maximum intensity among the red, green, and blue components, while hue (H) determines the dominant color and saturation (S) controls the purity of that color relative to gray. This value-driven approach ensures that the brightest channel in the resulting RGB tuple matches V, making it suitable for applications where brightness preservation is key, such as in graphics rendering. The algorithm divides the 360° hue range into six 60° sectors, computing intermediate values that interpolate between primary colors. Assuming H is in degrees ranging from 0 to 360 (not including 360), and S and V are normalized to [0, 1], the process begins with three key computations:
  • Chroma: C = V \times S
  • Intermediate value: X = C \times \left(1 - \left| \left( \frac{H}{60} \mod 2 \right) - 1 \right| \right)
  • Offset: m = V - C
These yield temporary unnormalized components RGB', which are assigned based on the sector i = \left\lfloor \frac{H}{60} \right\rfloor (where i ranges from 0 to 5). The assignments cycle the primary contributions (C for the dominant color, X for the secondary, and 0 for the tertiary) across sectors to cover the full hue spectrum. The sector-specific RGB' values are as follows:
Sector iHue RangeR'G'B'
0[0°, 60°)CX0
1[60°, 120°)XC0
2[120°, 180°)0CX
3[180°, 240°)0XC
4[240°, 300°)X0C
5[300°, 360°)C0X
The final RGB values, scaled to the common 8-bit range [0, 255], are obtained by adding the offset and multiplying by 255:
R = (R' + m) \times 255
G = (G' + m) \times 255
B = (B' + m) \times 255
This method guarantees that \max(R, G, B) / 255 = V, directly tying the output brightness to the input value while distributing saturation across channels.

RGB to HSL

To convert an RGB color to the HSL color space, the RGB components are first normalized to the range [0, 1] by dividing each by 255 if they are provided in the integer range [0, 255]. This normalization ensures consistent computation across different input representations. Let R', G', B' denote the normalized values, where $0 \leq R', G', B' \leq 1. Next, identify the maximum and minimum values among the normalized components:
\max = \max(R', G', B'), \quad \min = \min(R', G', B')
The C is then computed as the difference:
C = \max - \min
This chroma value quantifies the color's purity or range of component variation, serving as a foundational element for .
The L is derived as the average of the components, providing a measure of the color's overall brightness:
L = \frac{\max + \min}{2}
Lightness ranges from 0 () to 1 (), with midtones at 0.5, and it perceptually aligns with by balancing the darkest and lightest aspects of the color.
Saturation S is calculated based on the and . If C = 0 (indicating a color), then S = 0. Otherwise,
S = \frac{C}{1 - |2L - 1|}
This formula adjusts saturation to be relative to lightness: for L \leq 0.5, it simplifies to S = C / (2L), emphasizing how chroma spreads within darker tones; for L > 0.5, it becomes S = C / (2(1 - L)), accounting for compression in lighter tones. thus ranges from 0 (achromatic) to 1 (fully vivid), making HSL suitable for intuitive color adjustments in graphics applications.
The hue component, which determines the color's position on the (ranging from 0° to 360°), is computed from the differences between the normalized RGB components and the , as detailed in the mathematical derivation of hue.

RGB to HSV

To convert RGB values to the color space, the RGB components are first normalized to the range [0, 1], assuming input values are in [0, 255] by dividing each by 255. The value component V is defined as the maximum of the normalized red (r), green (g), and blue (b) components: V = \max(r, g, b) This represents the overall or of the color, focusing on the highest contribution from the primaries. Next, compute the C as the difference between the maximum and minimum RGB components: C = V - \min(r, g, b) The S is then derived relative to the value: if V = 0, then S = 0 (achromatic case); otherwise, S = \frac{C}{V} This measures the purity of the color, scaled by the total , with S = 0 indicating and S = 1 full at maximum value. For the hue H, which describes the color's position on the spectrum (in degrees, 0 to 360), if C = 0, hue is undefined. Otherwise, first calculate the intermediate values: r' = \frac{V - r}{C}, \quad g' = \frac{V - g}{C}, \quad b' = \frac{V - b}{C} Then compute an intermediate H' in [0, 6):
  • If r = V: H' = (g = \min(r, g, b) ? 5 + b' : 1 - g')
  • If g = V: H' = (b = \min(r, g, b) ? 1 + r' : 3 - b')
  • If b = V: H' = (r = \min(r, g, b) ? 3 + g' : 5 - r')
Finally, H = H' \times 60^\circ \mod 360^\circ. This conversion emphasizes the intensity-driven of HSV, where captures the peak channel strength, distinguishing it from relative models.

HSL to HSV Interconversion

Converting between HSL and HSV color spaces directly leverages their shared hue component and the geometric relationships between their and lightness/ components, both of which are defined in terms of the maximum and minimum RGB values. To obtain HSV from HSL, the value V is given by V = L + S_\text{hsl} \cdot \min(L, 1 - L), where L and S_\text{hsl} are normalized to [0, 1], and this follows from expressing the RGB maximum as \max = L + \frac{\Delta}{2}, with \Delta = S_\text{hsl} \cdot (1 - |2L - 1|) = 2 S_\text{hsl} \cdot \min(L, 1 - L). The HSV saturation is then S_\text{hsv} = \frac{2 \cdot S_\text{hsl} \cdot \min(L, 1 - L)}{V} if V > 0, otherwise S_\text{hsv} = 0. These relations derive from the HSL lightness formula L = \frac{\max + \min}{2} and saturation S_\text{hsl} = \frac{\max - \min}{1 - |2L - 1|}, combined with the HSV definitions V = \max and S_\text{hsv} = \frac{\max - \min}{V}. Conversely, to convert HSV to HSL, first compute the lightness L = V \left(1 - \frac{S_\text{hsv}}{2}\right), which arises from L = \frac{V + \min}{2} and \min = V (1 - S_\text{hsv}). The HSL saturation is S_\text{hsl} = \frac{S_\text{hsv} \cdot V}{1 - |2L - 1|} if L \neq 0 and L \neq 1, otherwise S_\text{hsl} = 0; here, $1 - |2L - 1| = 2 \min(L, 1 - L). These steps stem from the HSV component definitions and the HSL saturation expression. Such direct interconversions avoid RGB intermediates, enabling efficient model switching in for tasks like color adjustment or palette generation without redundant computations.

Visual Illustrations

HSL Swatches

Visual swatches for the HSL color space typically illustrate variations in hue, , and through structured or projections that highlight perceptual relationships. One common type is fixed-hue slices, which depict versus ramps for a specific hue, forming a two-dimensional where the represents (from 0% achromatic grays to 100% fully saturated colors) and the vertical represents (from 0% to 100% ). These ramps demonstrate how colors transition smoothly; for instance, at hue=0° (), the swatch progresses from at low and zero , through desaturated pinks and mid-tones at increasing , to pure bright red at maximum and around 50%, before fading to at high . A key feature revealed in these swatches is that , or color purity, reaches its maximum range at mid- (lightness=50%), where fully saturated hues (=100%) produce the most vivid colors, while extremes of lightness collapse the saturation range to neutrals. This property arises from HSL's design to mimic human perception of lightness independently of color intensity, allowing designers to create balanced palettes by adjusting lightness without distorting hue or saturation disproportionately. For a more comprehensive view, HSL swatches often include cylinder projections, where hue wraps around the cylinder's (0° to 360°), saturation extends radially from the central (grays) to the outer edge (pure colors), and runs vertically from black at the bottom to white at the top. Unrolling this cylinder yields a rectangular with hue horizontally, vertically, and multiple layers stacked or sliced, emphasizing the space's geometric uniformity. In modern digital encyclopedias as of 2025, interactive HSL swatches enhance understanding through dynamic elements, such as rotatable cylinders or sliders that animate saturation-lightness ramps in , enabling users to explore fixed-hue variations—like rotating through reds, oranges, and yellows—while visualizing peaks at mid-lightness. These tools, often implemented in web-based color pickers, facilitate practical applications in design software by providing immediate feedback on color adjustments.

HSV Swatches

Swatches for the color space are typically visualized using hexagonal projections derived from the RGB color cube, where each fixed hue (H) produces a hexagonal slice illustrating the interplay between (S) and (V). These slices form stacked disks that collectively represent the full hexcone structure of HSV, with the central axis spanning from black (V=0) to (V=1), and the radius of each expanding with increasing V to encompass the full of saturated colors. For a fixed hue, swatches demonstrate that at maximum value (V=1) and zero saturation (S=0), the color appears as white, as all RGB primaries are equally at full intensity. Increasing saturation to 1 at V=1 yields the pure hue, where one primary dominates at full value while the others are at zero, producing vivid spectral colors like red, green, or blue. At lower values, such as V approaching 0, colors desaturate progressively toward black regardless of saturation level, as all primaries scale down uniformly, emphasizing HSV's model of brightness as an overall intensity multiplier. These visualizations highlight the intuitive additive mixing principles underlying , where effectively mixes the pure hue with a neutral gray at the given value level, mimicking how artists dilute color with or . For instance, at identical HSV coordinates, yellow hues often appear perceptually brighter than blues due to the inherent differences in RGB primaries, underscoring the model's alignment with human color intuition despite non-uniform perceptual brightness across hues. Swatches further reveal HSV's characteristic tendency for desaturation to produce darker tones, as reducing S at moderate V levels shifts colors toward deeper grays rather than mid-tones, a direct consequence of the hexcone's compressing the at lower values.

References

  1. [1]
    Color gamut transform pairs | ACM SIGGRAPH Computer Graphics
    Color gamut transform pairs. Author: Alvy Ray Smith. Alvy Ray Smith. Computer ... Published: 23 August 1978 Publication History. 970citation6,335Downloads.
  2. [2]
    Color spaces for computer graphics - ACM Digital Library
    Joblove. George H. Joblove. Program of Computer Graphics, Cornell University. View Profile. , Donald Greenberg ... Published: 23 August 1978 Publication History.
  3. [3]
    [PDF] Color Gamut Transform Pairs - Alvy Ray Smith
    A transform pair consists of the algorithm for transforming from the colorcube to. Page 3. Color Gamut Transform Pairs. 3 one of the alternatives and the ...
  4. [4]
    [PDF] The HSV and HSL Color Models and the - Doug A. Kerr
    May 12, 2008 · The HSV (sometimes called HSB) and HSL color models (they become “color spaces” when certain details are specified1) describe a color in terms ...<|control11|><|separator|>
  5. [5]
    Color spaces for computer graphics
    COLOR SPACES FOR COMPUTER GRAPHICS by. George H. Joblove and Donald Greenberg. Program of Computer Graphics. Cornell University. ABSTRACT. Normal human color ...
  6. [6]
    Lecture 18 Color - MIT
    HSL Math: Saturation & Lightness. // red, green, blue in [0-100] let min = Math.min(red, green, blue); let max = Math.max(red, green, blue); let d = max - min ...
  7. [7]
    [PDF] Sea of Images - Purdue Computer Science - Purdue University
    • Min = min(R, G, B). • S = (max – min)/max. • If R==Max → h = (G-B)/(max-min). • If G==Max → h = 2+(B-R)/(max-min). • If B==Max → h = 4 + (R-G)/(max-min).
  8. [8]
    CSS3 Color Module - W3C
    May 14, 2003 · CSS3 adds numerical hue-saturation-lightness (HSL) colors as a complement to numerical RGB colors. It has been observed that RGB colors have the ...
  9. [9]
    CSS Color Module Level 3 - W3C
    Jan 18, 2022 · HSL colors are encoding as a triple (hue, saturation, lightness). Hue is represented as an angle of the color circle (i.e. the rainbow ...Introduction · Color properties · Color units · Profiles
  10. [10]
    Color opponency: tutorial - PMC - NIH
    Opponent-color theory holds that every hue is represented by some value on the red–green axis, be it positive (reddish), negative (greenish), or zero (not at ...
  11. [11]
    [PDF] Perceiving Opponent Hues in Color Induction Displays
    Human color perception is normally compatible with the classic opponent color theory of Hering (1872), which describes chromaticity in two dimensions formed.
  12. [12]
    Perception of saturation in natural objects - Optica Publishing Group
    Feb 23, 2023 · The distribution of colors across a surface depends on the interaction between its surface properties, its shape, and the lighting environment.
  13. [13]
    Individual differences and their implications for color perception - PMC
    Jun 17, 2019 · Abstract. Individual differences are a conspicuous feature of color vision and arise from many sources, in both the observer and the world.<|separator|>
  14. [14]
    The effects of color and saturation on the enjoyment of real-life images
    This study investigated the effects of color presence and saturation on the affective judgment of real-life images, as functions of the image's affective ...
  15. [15]
    Mechanisms Underlying Simultaneous Brightness Contrast
    May 25, 2020 · We emphasize that the focus of this work is the perception of brightness (perceived luminance), rather than lightness (perceived surface ...
  16. [16]
    Simultaneous Contrast – Introduction to Sensation and Perception
    Simultaneous contrast is the visual effect when a gray patch looks lighter when it's next to a darker patch. This shows how fluid our perception of lightness ...
  17. [17]
    [PDF] Lightness and Brightness
    It ranges from 'dim' to 'bright'. ▫ Lightness is 'relative brightness'. It is an attribute of visual sensation according to which a visual stimulus.
  18. [18]
    A Colorful Life | Science History Institute
    Nov 3, 2009 · When he published A Color Notation in 1905, he first proposed a sphere system for describing colors. Munsell discovered that three elements were ...
  19. [19]
    The Munsell System: History and Color Solutions | X-Rite
    Oct 17, 2022 · We'll look back at Albert Munsell's contribution to the world of color and share the products his work has inspired to help us manage color.
  20. [20]
  21. [21]
    Categorical color perception shown in a cross‐lingual comparison of ...
    Jan 10, 2025 · Categorical perception (CP) for colors entails that hues within a category look more similar than would be predicted by their perceptual ...
  22. [22]
  23. [23]
    [PDF] Colour Space Conversions - Charles Poynton
    (Gonzalez and Woods). Gonzalez and Woods give a different colour space using intensity rather than value to denote the lightness axis. RGB to HSI. I = R+G+B.
  24. [24]
    The well-tempered color circle: A chromatic Gestalt - PMC
    The common hsv and hsl systems use “chroma” like Ostwald's Farbton and introduce various qualities (“value,” “lightness,” “saturation,” etc.) that are just ...
  25. [25]
    [PDF] Sea of Images - Computer Science Purdue - Purdue University
    • The RGB color cube sits within CIE color space ... HSV/HSL Color Space. • Intensity/Value. – total ... • S = (max – min)/max. • If R==Max → h = (G-B)/( ...
  26. [26]
    Color spaces for computer graphics - ACM Digital Library
    Perceptual color spaces for computer graphics. SIGGRAPH '80: Proceedings of the 7th annual conference on Computer graphics and interactive techniques.
  27. [27]
    HSL Color Schemes: A Painter's True Dream | Coconut©
    ... additive and subtractive color models respectively, HSL is based on human perception. ... HSV: Mastering the Art of Color Selection. HSV: Dabble in hue, ...
  28. [28]
    CSS Color Module Level 4 - W3C
    Apr 24, 2025 · This module describes CSS properties which allow authors to specify the foreground color and opacity of the text content of an element.HSL Colors: hsl() and hsla... · Device-independent Colors... · Color Interpolation
  29. [29]
    [PDF] HWB - A More Intuitive Hue-Based Color Model - Alvy Ray Smith
    Oct 29, 2011 · The HSV [Smith78] and HSL [GSPC79] color space models are well-known hue-based representations of the RGB color space of computer graphics. They ...Missing: original | Show results with:original
  30. [30]
    Gamut Mapping in Cylindrical and Conic Spaces
    May 11, 2020 · The current model is deceptively simple: HSV with Control over Hue Wedges, Saturation Compression, and Unaltered Region. It is very close to the ...Missing: Scharfenberg paper
  31. [31]
    Background – CIRL
    There is no simple formula for conversion from RGB to HSV, primarily due to the hue component. <math> \max = \max(R,G,B)</math> <math> \min = \min(R,G,B) ...Missing: derivation | Show results with:derivation
  32. [32]
    hsl() - CSS - MDN Web Docs - Mozilla
    Oct 31, 2025 · The hsl() functional notation expresses a color in the sRGB color space according to its hue, saturation, and lightness components.
  33. [33]
    8.5. Hue-Saturation - GIMP Documentation
    The Hue-Saturation command is used to adjust hue, saturation and lightness levels on a range of color weights for the selected area or active layer.
  34. [34]
    Why do we use the HSV colour space so often in vision and image ...
    Jun 22, 2012 · The simple answer is that unlike RGB, HSV separates luma, or the image intensity, from chroma or the color information. This is very useful in many ...Missing: tone | Show results with:tone
  35. [35]
    New features summary for Lightroom Classic (June 2025 release)
    Jul 15, 2025 · View and control all AI edits together ... View and update edits made with AI-powered tools like Denoise, Super Resolution, Raw Details, and more.View AI Edit Status and... · Remove distracting people
  36. [36]
    Choosing the correct upper and lower HSV boundaries for color ...
    Sep 26, 2024 · In this article, we will walk through the steps to correctly select the upper and lower HSV boundaries for color detection using cv::inRange() in Python.
  37. [37]
    Image Segmentation Using Color Spaces in OpenCV + Python
    In this article, you will learn how to simply segment an object from an image based on color in Python using OpenCV. ... Then to calculate the HSV code based on ...
  38. [38]
    [PDF] Skin Detection - a Short Tutorial - CS-Rutgers University
    Perceptual Color Spaces and Skin Detection: Perceptual color spaces, such as HSI, HSV/HSB, and HSL(HLS), have also been popular in skin detection.
  39. [39]
    PKT: fast color-based spatial model for human skin detection
    Aug 7, 2021 · We propose (1) an improved RGB/HSL human skin color threshold to tackle darker human skin color detection problem. (2), we also present a new ...
  40. [40]
    Comparative Study of Skin Color Detection and Segmentation in ...
    This paper presented a comparative study of human skin color detection HSV and YCbCr color space. Skin color detection is the process of separation between ...
  41. [41]
    HSV Color-Space-Based Automated Object Localization for Robot ...
    The algorithm automatically identifies the object's location by using the HSV color-space-based ROI random sampling, ROI similarity comparison, and ROI merging.
  42. [42]
    Using HSV-based approach for detecting and grasping an object by ...
    Introducing the concept of HSV-based color space to recognize and analyze the location and orientation of an object in 3D workspace. •. Proposing the task ...
  43. [43]
    [PDF] Automatic Skin Lesion Segmentation Using GrabCut in HSV ... - arXiv
    In HSV color space most of the skin lesion appears to be green. Green color was extracted from the image and applying thresholding mask was obtained.
  44. [44]
    Segmentation of skin lesion images using discrete wavelet transform
    Colour spaces such as YCbCr, HSV are used in this work to effectively identify skin lesion to achieve better lesion identification and segmentation from the ...
  45. [45]
    Color Spaces in OpenCV | Python - GeeksforGeeks
    Aug 7, 2025 · The HSV color space is often preferred over the RGB color space for tasks like color detection because it separates color (hue) from ...
  46. [46]
    Automatic crop detection under field conditions using the HSV ...
    Additionally, the HSV colour space is robust to illumination variation ... The proposed algorithm was implemented in OpenCV. Optimum cauliflower ...
  47. [47]
    The impact of pre- and post-image processing techniques on deep ...
    Stain color normalization has been shown to have a great influence on deep learning frameworks (Table 1). Almost all the published deep learning methods for ...
  48. [48]
    Assessing the Impact of Color Normalization in Convolutional ...
    In this paper, we evaluate the effect of popular CN methods on CNN-based nuclei segmentation frameworks.
  49. [49]
    [PDF] Analysis of the Impact of Color Spaces on Skin Cancer Diagnosis ...
    Dec 27, 2023 · The proposed methodology exploits various color spaces, including RGB, Lab, HSV, and YUV, to meticulously analyze skin lesion color ...
  50. [50]
    One of the many challenges associated with atmo - AMS Journals
    Other prevalent color spaces, such as hue–saturation value (HSV) and hue–saturation–luminance (HSL), suffer from the same problems as the RGB color space. ( ...
  51. [51]
    [PDF] Colour - NUS Computing
    ◉ HSV, HSL, YCbCr also not perceptually uniform. ◉ Perceptually (more) uniform colour spaces: ○ Munsell colour space. ○ CIELAB. ○ CIELUB. CS4243. Colour. 24 ...
  52. [52]
    [PDF] Gray Bar
    HSL Slab 360◦. Page 75. HSL. HSL is not perceptually uniform when saturation and lightness are held constant. The perceived difference between colors is not ...
  53. [53]
    [PDF] Polarization-color mapping strategies - PROCEEDINGS OF SPIE
    Since HSV is not designed to be perceptually uniform, the extent of non-uniformity should be evaluated by using robust color difference formulae and by.
  54. [54]
    Comparative Study of Parallelism and Pipelining of RGB to HSL ...
    However, HSL is capable to provide other useful information such as colour in degree, saturation of the colour and brightness of colour. In this work, RGB to ...
  55. [55]
    Gamut Mapping - ColorAide Documentation
    HSL has a very tight conversion to and from sRGB, so when an sRGB color is precisely in gamut, it will remain in gamut throughout the conversion to and from HSL ...
  56. [56]
    [PDF] Time performance of RGB to HSI colour space transformation methods
    hue coordinate in HSI, HSV, HSL colour spaces. HB. – hue value for B = max in ... The other example of linear transformation of RGB colour space to HSV.<|control11|><|separator|>
  57. [57]
    Saturation, hue, and normalized color - Google Books
    Authors, Carnegie Mellon University. Computer Science Department, John R. Kender ; Publisher, Carnegie-Mellon University. Department of Computer Science, 1976.Missing: HSI space thesis
  58. [58]
    Understanding Color Spaces and Color Space Conversion
    The XYZ color space is the original model developed by the CIE. The Y channel represents the luminance of a color. The Z channel approximately relates to the ...Missing: HSL | Show results with:HSL
  59. [59]
    [PDF] Escaping RGBland: Selecting Colors for Statistical Graphics
    Use perceptually-based HCL color space, vary hue/brightness, avoid saturated colors, and ensure colors work in different contexts to avoid optical illusions.
  60. [60]
    Colour spaces
    ### Summary of HSL, HSV, HSI Comparisons from http://paulbourke.net/miscellaneous/colourspace/
  61. [61]
    Digital Image Processing - Color Spaces and Color Filtering
    Sep 11, 2018 · HSI coordinates provide a central axis (I) that ignores color altogether and measures the brightness (sometimes described as intensity or ...
  62. [62]
    A perceptual color space for image processing - Björn Ottosson
    Dec 23, 2020 · Unfortunately, as far as I am aware, while there are color spaces that aim to be perceptually uniform, none are without significant drawbacks ...Missing: HSL | Show results with:HSL
  63. [63]
    Two new color spaces for color picking - Okhsv and Okhsl
    Sep 8, 2021 · HSL and HSV designed to roughly correlate with perceptual color properties while being very simple and cheap to compute.
  64. [64]
  65. [65]
    Perceptual color models | Chromatone.center
    HSL (for hue, saturation, lightness) and HSV (for hue, saturation, value; also known as HSB, for hue, saturation, brightness) are alternative representations ...
  66. [66]
    Color models and color spaces - Programming Design Systems
    HSL is another cylindrical color model that shares two dimensions with HSV, while replacing the value dimension with a lightness dimension. Hue specifies the ...Missing: definitions - - | Show results with:definitions - -
  67. [67]
    Visualizing Colors in HSL Space – Eric's Archived Thoughts
    Jun 4, 2012 · It's a balanced set, at least mathematically, and seeing the relationships between the colors and thus how to present them helped me develop a ...Missing: original | Show results with:original
  68. [68]
    Color - Computer Science
    HLS (hue, lightness, saturation) is a close relative of the HSV model. HLS basically pulls up the center of the HSV cone to make a double-ended cone, which is ...