개발/Computer Vision

[영상처리] 색상 모델(Gray, HSV, RGB, YCbCr)

hojak99 2016. 10. 27. 01:22

코딩을 하다 보면 내가 어떤 색상 모델을 선택해야하는 지 고민이 올 때가 있다.

매번 RGB, GRAY, HSV, YCbCr 이 뭐였는지 까먹어서 인터넷으로 찾고 그럴 때가 있는데 그래서 다시 복습할 겸 정리를 한다.



우선 내가 자주 사용하는 모델인 이 4가지 (RGB, GRAY, HSV, YCbCr)에 대해서 작성하도록 하겠다.




[RGB 모델]


RGB 모델은 RED, GREEN, BLUE 세종류의 광원을 이용하여 색을 혼합한다.  각각의 R, G, B는 0 ~ 255의 숫자가 들어가며 색을 혼합할 수 록 밝아 진다.


(0, 0, 0) : 검정

(255, 255, 255) : 하양

(255, 0, 0) : 빨강

(0, 255, 0) : 초록

(0, 0, 255) : 파랑

(255, 255, 0) : 노랑

(0, 255, 255) : 시안

(255, 0, 255): 마젠타.



[GRAY 모델]


GRAY 모델은 색을 사용하지 않고 오직 밝기로만 표현을 하는 것이다.

GARY 모델은 0 부터 255까지 총 256단계의 밝기 값으로 표현한다.



[YCbCr 모델]


YCbCr 모델은 보통 영상 시스템에서 사용되는 색공간의 일종인데 Y는 *휘도 성분이며 Cb와 Cr은 *색차 성분이다.

여기서 중요한 것은 YCbCr은 절대 색공간이 아니고 RGB 정보를 인코딩하는 방식 중 하나다. 

Y, Cb, Cr은 각각 0 ~ 255 사이의 값을 가지고 여기서 Y가 커지면 전체적으로 밝아지고 반대로 작아진다면 어두워진다. 


*휘도: 어떤 광원의 단위 면적당의 광도, 즉 광원의 단위 면적에서 단위 입체각으로 발산하는 빛의 양을 의미

*색차: 임의의 색과 그 색과 같은 휘도를 가진 기준색과의 측색적인 차





[HSV 모델]


HSV 모델은 색상, 채도, 명도 즉 Hue, Saturation, Value의 3가지 성분으로 색을 표현한 것이다.


*색상(Hue): 가시광선 스펙트럼을 고리모양으로 배치한 색상환에서 가장 파장이 긴 빨강을 0도로 했을 때의 상대적인 배치 각도를 의미. 즉 H값은 0도에서 360도 범위를 갖고 있으며 360도와 0도는 빨강을 가리킨다.

쉽게 말해서 무슨 색인지를 나타내는 것

- 색의 종류를 나타내는 것이기 때문에 크기는 의미 X, 단순한 인덱스를 나타냄


*채도(Saturation): 색상의 가장 진한 상태를 100%로 하였을 때의 진함 정도를 나타낸 것, 0%는 무채색이다.

얼마나 선명한 색인지를 나타내는 것

- 0이면 GRAY 색, 255면 가장 선명한 색


*명도(Value): 흰색, 빨간색 등을 100%, 검은색을 0%로 하였을 때의 밝은 정도를 나타냄

발기를 나타내는 것

- 작을 수록 어두움, 클수록 밝음


반응형