RGB 색상 모델이란?
RGB 색상 모델은 가산 혼합의 삼원색인 빨강(Red), 초록(Green), 파랑(Blue)의 이니셜에서 이름이 유래한 색상 모델로, 세 가지 빛을 더해 다양한 색상을 표현하는 가산 혼합 방식입니다.
RGB 색상 모델은 인간의 색상 지각에 기반을 두고 있으며, TV나 컴퓨터 같은 전자 시스템에서 이미지를 표현하고 화면에 출력할 때 널리 사용됩니다. RGB 외에도 다양한 색상 표현 방식이 존재합니다.
- YIQ: 휘도(Luminance)와 색차(Chrominance)로 구성되며, 컴포지트 비디오 신호에서 사용됩니다.
- HLS: 색상(Hue), 명도(Luminance), 채도(Saturation)로 구성됩니다.
- HSV: 색상(Hue), 채도(Saturation), 명도(Value)로 구성됩니다.
colorsys 모듈 소개
파이썬의 colorsys 모듈은 RGB 색상 모델과 위에서 언급한 세 가지 좌표계(YIQ, HLS, HSV) 사이에서 색상 값을 상호 변환할 수 있는 함수들을 제공합니다.
각 모델마다 값의 범위가 다르다는 점에 유의해야 합니다. YIQ 모델에서는 Y 값이 0과 1 사이에 있지만, I와 Q 값은 양수 또는 음수가 될 수 있습니다. 반면 RGB, HLS, HSV 모델에서는 모든 값이 0과 1 사이로 표현됩니다.
colorsys 모듈은 각 색상 시스템별로 RGB로 변환하는 함수와 RGB에서 해당 시스템으로 변환하는 함수, 즉 두 개의 함수를 제공합니다.
| rgb_to_yiq() | RGB를 YIQ로 변환 |
| yiq_to_rgb() | YIQ를 RGB로 변환 |
| rgb_to_hls() | RGB를 HLS로 변환 |
| hls_to_rgb() | HLS를 RGB로 변환 |
| rgb_to_hsv() | RGB를 HSV로 변환 |
| hsv_to_rgb() | HSV를 RGB로 변환 |
사용 예제
아래 예제는 동일한 RGB 값(1, 0.753, 0.80)을 HLS, HSV, YIQ 좌표계로 각각 변환하는 과정을 보여줍니다.
>>> import colorsys
>>> r,g,b=1, 0.753, 0.80
>>> colorsys.rgb_to_hls(r,g,b)
(0.9682860998650472, 0.8765000000000001, 1.0)
>>> colorsys.rgb_to_hsv(r,g,b)
(0.9682860998650472, 0.247, 1)
>>> colorsys.rgb_to_yiq(r,g,b)
(0.83227, 0.1328331, 0.06727970000000007)