Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 colorsys 모듈을 활용한 색상 시스템 간 변환 방법

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)