WIPIVERSE

HSL과 HSV

개요
HSL(Hue, Saturation, Lightness)과 HSV(Hue, Saturation, Value)는 색을 표현하기 위해 RGB(Red, Green, Blue) 색 공간을 보다 직관적으로 변환한 색 모델이다. 두 모델 모두 색상의 Hue(색상)를 원형 색상 휠(0°~360°)로 나타내며, Saturation(채도)는 색상의 순수함을 0%~100% 범위로 표시한다. 차이는 세 번째 축에 있다: HSL은 Lightness(명도), HSV는 Value(명도 혹은 밝기)를 사용한다.


1. HSL (Hue‑Saturation‑Lightness)

축 의미 값 범위
Hue (H) 색상의 기본 색, 빨강‑초록‑파랑 순환 0° ~ 360°
Saturation (S) 색상의 채도(순수함), 0%이면 회색, 100%이면 가장 순수한 색 0% ~ 100%
Lightness (L) 색상의 밝기, 0%이면 검정, 50%이면 중간 밝기, 100%이면 흰색 0% ~ 100%
  • Lightness는 색상의 가장 어두운 상태(검정)와 가장 밝은 상태(흰색) 사이의 중간값을 의미한다.
  • 색상이 회색(채도 0%)일 경우, Lightness 값에 따라 검정‑회색‑흰색으로 변한다.

2. HSV (Hue‑Saturation‑Value)

축 의미 값 범위
Hue (H) 색상의 기본 색 0° ~ 360°
Saturation (S) 색상의 채도, 0%이면 회색, 100%이면 가장 순수한 색 0% ~ 100%
Value (V) 색상의 밝기(명도), 0%이면 검정, 100%이면 가장 밝은 색 0% ~ 100%
  • Value는 색상의 가장 밝은 상태(흰색에 가까운 색)와 가장 어두운 상태(검정) 사이를 나타낸다.
  • 채도가 0%인 경우, Value에 따라 회색 음영이 결정된다.

3. 주요 차이점

항목 HSL HSV
명도 정의 Lightness는 색상의 중간 밝기(검정‑중간‑흰색) Value는 색상의 최댓값(가장 밝은 색)
색상 변환 시 직관성 색상의 밝기 조절이 ‘회색‑색‑흰색’ 순서로 직관적 색상의 밝기 조절이 ‘어두운‑색‑밝은’ 순서로 직관적(디지털 그래픽에서 흔히 사용)
색상 보존 동일 Hue와 Saturation에서 Lightness가 50%일 때 가장 순수한 색 동일 Hue와 Saturation에서 Value가 100%일 때 가장 순수한 색

4. 활용 분야

  • 디지털 그래픽: 포토샵, 일러스트레이터 등에서 색상 조절 도구에 HSL/HSV 슬라이더가 제공된다.
  • 컴퓨터 비전 및 이미지 처리: 물체 검출, 색 기반 분할 등에 HSV가 선호되는 경우가 많다(밝기 변화에 강인).
  • 웹 디자인: CSS 색상 표기법 hsl()과 hsv()(CSS 4에서 제안)로 색을 정의한다.
  • 게임 엔진: Unity, Unreal Engine 등에서 색상 파라미터를 HSV 형태로 다루는 API가 존재한다.

5. 변환 식 (RGB ↔ HSL/HSV)

아래는 일반적인 변환 수식이다. 모든 수식은 0 ~ 1 범위(또는 0 ~ 255를 255로 나눈 값)에서 적용한다.

RGB → HSV

  1. $C_{max} = \max(R,G,B)$
  2. $C_{min} = \min(R,G,B)$
  3. $\Delta = C_{max} - C_{min}$
  4. Hue
    • $\Delta = 0$ → H = 0°
    • $C_{max}=R$ → $H = 60^\circ \times \left( \frac{G-B}{\Delta} \mod 6 \right)$
    • $C_{max}=G$ → $H = 60^\circ \times \left( \frac{B-R}{\Delta} + 2 \right)$
    • $C_{max}=B$ → $H = 60^\circ \times \left( \frac{R-G}{\Delta} + 4 \right)$
  5. Saturation $= \begin{cases}0 & C_{max}=0 \ \frac{\Delta}{C_{max}} & \text{else}\end{cases}$
  6. Value $= C_{max}$

RGB → HSL

  1. 위와 동일하게 $C_{max}, C_{min}, \Delta$ 계산
  2. Lightness $L = \frac{C_{max}+C_{min}}{2}$
  3. Saturation
    • $\Delta = 0$ → S = 0
    • $L < 0.5$ → $S = \frac{\Delta}{C_{max}+C_{min}}$
    • $L \ge 0.5$ → $S = \frac{\Delta}{2 - C_{max} - C_{min}}$
  4. Hue는 HSV와 동일한 방법으로 계산한다.

(반대 변환도 위 수식의 역과정을 적용하여 구현한다.)


6. 참고 문헌 및 표준

  • IEC 61966‑2‑1 (sRGB) – 색 공간 정의에 HSV/HSL 변환이 언급됨.
  • CSS Color Module Level 4 – hsl() 및 hsv() 표기법을 정의.
  • W3C “Color Module” – 색 모델 비교 표 제공.

이상으로 HSL과 HSV에 대한 객관적인 개요와 주요 특성, 활용 분야, 변환 방법을 정리하였다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기