본문 바로가기

Make Something

로봇비전(2) : 컬러모델

 디지털 환경에서 색을 표현하는 방법은 여러가지가 있다.
 
1. RGB
 - 색을 빛의 3원색인 Red, Green, Blue로 색으르 표현하는 방식으로 비디오 디스플레이 장치에 사용된다.

* 참고로 RGB포맷은 한 픽셀당 24bits만 필요하지만 때때로 32bits의 공간을 사용하기도 한다. 32bits를 사용하는 이유가 몇가지가 있는데, 첫째는 PC가 32bits의 단위로 데이터를 처리하기 때문에 속도가 더 빠른 이점이 있고, 둘째는 마지막 8bits로 색의 투명도를 표현할 수 있기 때문이다.


2. CMY(CMYK)
 - 색을 Cyan, Magenta, Yellow, (K(검정색))으로 색을 표현하는 방식으로 컬러 프린터에서 사용된다.

 - 추가로 검은색이 들어간 이유는 C+M+Y로 완벽한 검정색을 만들지 못하기 때문이다.

## 변환공식
C = 1 - (R/255)
M = 1 - (G/255)
Y = 1 - (B/255)
R = (1-C) * 255
G = (1-M) * 255
B = (1-Y) * 255


3. YIQ(YUV, YCrCb)
 - 색을 휘도(luminance)와 색상(chrominance, color difference)으로 표현하는 방식으로 TV방송에서 사용된다.
 - YIQ는 NTSC방식이고, YUV는 PAL, SECAM 방식이다.

## 변환공식(RGB <-> YIQ)
Y = 0.30R + 0.59G + 0.11B
I = 0.60R - 0.28G - 0.32B
Q = 0.21R - 0.52G + 0.31B
R = 1.0Y + 0.956I + 0.620Q
G = 1.0Y - 0.272I - 0.647Q
B = 1.0Y - 1.108I - 1.705Q
(RGB <-> YUV)
Y = 0.30R + 0.59G + 0.11B
U = (B-Y) * 0.493
V = (R-Y) * 0.877
R = 1.0Y + 0.956U + 0,621V
G = 1.0Y - 0.272U - 0.647V
B = 1.0Y - 1.1061U - 1.703V
(RGB <-> YCrCb)
Y = 0.30R + 0.59G + 0.11B
Cr = R-Y
Cb = B - Y


4. HSI(HSV)
 - 색상(hue), 채도(saturation), 명도(intensity, value)로 색을 표현하는 방식으로 영상처리에 사용된다.


 - 색상은 0~360도의 값을 가지고, 0도는 rec, 120도는 green, 240도는 blue를 나타낸다.