영상처리 색공간 변환

컴퓨터비전/영상처리 2014. 10. 20. 07:26

지난 포스트 영상처리 색변환 에 이어 색 모델에 관해 정리한다.

사람의 색 인지방법 등 기초적인 색 모델에 관심있으면 지난 포스트를 참조 바란다.


RGB와 CMY 색공간

 색의 3원소라는 말이 있다. 이 용어가 의미하는 것은 세가지의 색의 기본 원소만 있으면

이들을 조합하여 어떠한 색이든(모든색)을 만들수 있는 것을 의미한다. 이 용어가 가리키는

중요한 점은 사람이 인식할 수 있는 색은 3차원 공간에서 표현된다는 것이다.


       [그림 1] RGB 색공간 모형(3차원)


컴퓨터와 디지털 영상 처리에서 색상 표현에 가장 널리 사용되는 RGB 색 공간은 빨간색과 초록색,

파란색 총 3가지 색이 기본 축으로 이 세가지 색이 빛의 3원색이다.

빛의 3원색에서 각 색을 더하면 더 밝은 색이 나온다. 다른 색의 조명을 같은 곳에 비추면 더 밝은

빛이 나는것과 동일한 원리다. 실제 색의 3원색 은 하늘색(Cyan), 자홍색(Magenta), 노란색(Yellow)로

여러 물감을 섞으면 검정색이 되는것과 같은 원리다. RGB 색공간 모형은 [그림 1]과 같이 표현 할

수 있다.


색의 3원색에 해당하는 색공간을 CMY 색공간 이라고 한다. 빛을 이용한 장치(모니터 등)은 RGB색 

공간을 사용하는 반명, 색깔을 이용하는 장치(프린터 등)은 CMY 색공간을 사용한다. 이 세가지 색을

조합하면 어떤 원하는 색이든 출력이 가능하다.


CMY 색상은 RGB색상의 보색에 해당하므로([그림 1] 참조) 색상 사이 변환은 

흰색에서 R, G, B 각 채널 값을 빼면 된다.



프린터로 출력하는 경우 검정색 글씨를 많이 사용하기 때문에 검정색 잉크를 별도로 추가한

CMYK 색 공간을 쓰는 경우가 많다. K 는 검정색을 의미하며 K = min(C, Y, K)로 정의한다.

K는 C, Y, K 각 채널 중 최소값으로 정의한다. 이렇게 하면 잉크를 절약할수 있는 장점이 있다.

프린터 출력할때 CMY 채널이 공통으로 가지는 양은 검정색 잉크를 K만큼 사용, 

각 채널별로 초과하는 부분만 C, Y, K 각각의 채널에 할당된 잉크를 사용하면 된다.



1수식을 토대로 2수을 계산해 최종 C, M, Y 를 계산한다.


YIQ, YUV, YCbCr 색공간

앞의 색공간은 세 종류의 색을 이용한 축이지만, 지금 소개할 색상은 색상의 특성을 이용하여 

축을 구성한다. 세 원소에 동일하게 포함된 Y 채널은 색상의 밝고 어두움을 나타내는 성분을

의미한다. 그리고 나머지 두 축을 이용해 색상 정보를 표현한다. 이 기법은 텔레비전 신호나

비디오 데이터를 효율적으로 전송하기 위해 개발되었다. 방송국에서 흑백 TV, 컬러 TV에 신호

를 전송할 때, 흑백 TV에서는 밝기 신호(Y성분)만 사용하고, 컬러 TV에서는 나머지 정보를 모두

사용하면 되므로 효율적인 신호 전달이 가능했다.


YUV색 공간은 컬러 비디오 표준에서 사용하는 색 표현 기법으로, Y축을 밝기 성분으로 하고

U, V 두축을 이용하여 색상(chrominance)를 표현한다. U축은 파란색에서 밝기 성분을 뺀

값이고, V축은 빨간색에서 밝기 성분을 뺀 값이다. RGB 색 공간에서 YUV 색 공간으로 변환

하는 것은 다음과 같이 RGB 각 채널에 가중치를 적용하여 더하는 방식으로 계산한다.


RGB 색공간 YUV 색공간

YUV 색공간  RGB 색공간


YIQ 색 공간은 컬러 TV의 표준에서 사용하는 모델이다. YUV와 같은 원리를 사용하며

RGB 색 공간에서 Y(밝기)성분을 구하는 방법은 같고, I, Q값을 구하는 방법은 다르다.


RGB 색공간  YIQ 색공간

YIQ 색공간  RGB 색공간


YCbCr 색 공간은 디지털 텔레비전 시스템에서 사용하는 색 공간이다. 이 색 공간은

YPbPr이라는 아날로그 신호의 색 공간을 디지털화 한 것이다. 


RGB 색공간 → YPbPr 색공간

여기서 RGB 채널 값이 아날로그 신호로서 0에서 1사이의 값이라고 하는 YPbPr 색 공간으로

변환한 결과값은 다음 범위를 갖는다.



YCbCr 색 공간은 YPbPr 색 공간의 디지털 버전임으로, RGB채널이 0~255 값을 가지므로

YCbCr 변환의 결과값도 0~255 값을 가져야하므로 다음과 같이 변환한다.


이 결과 YCbCr은 다음과 같은 범위를 갖는다.



YCbCr 색공간  RGB 색공간




HSV, HSL, HSI 색 공간

HSV 색 공간은 [그림 2] 와 같이 육각뿔의 형태로 표현 할 수 있다. 육각뿔의 높이는 밝기 값인

V이고, 육각뿔 축으로부터 거리가 색의 진한 정도(채도)를 나타내는 S(Saturation)값이다.

S값이 0이면 원뿔의 축에 해당하여 아무런 색채값이 없는 회색이 된다.

V값이 0이면 육각뿔의 아래 꼭짓점에 해당하는 검은색이 된다. 반면 S값이 증가할 수록

점점 색이 진해져 원색에 가까워진다.

H(Hue)값은 빨주노초파남보와 같은 색상을 표현하는 값으로, 육각뿔에서의 각도를 나타내며

0도가 빨간색, 60도가 노란색, 120도가 초록색, 180도가 하늘색, 240도가 파란색, 300도가 

자홍색에 해당한다.


   

                      [그림 2] HSV 색 공간 모델


HSL 색 공간은 [그림 3] 과 같이 나타낼수 있는데, 이중의 뿔 구조로 이루어져있다.

색상 값 H와 채도 값 S는 HSV 색 공간과 거의 같지만, 밝기를 나타내는 축으로 검은색 꼭지점의

반대 방향에 해당하는 꼭지점이 하나 더 있다. 


           

                  [그림 3] HSL 색 공간 모델


RGB에서 HSV와 HSL 색 공간으로 변환하는 방법을 정리하면

두 색 공간이 공통으로 갖는 색상 H는 다음과 같다.




H는 0도에서 360도 사이의 각도 값을 갖는다(음수라면 360을 더하면 된다)

HSV 색 공간의  밝기 V와 채도 S는 다음과 같이 계산할 수 있다.



HSL 색 공간의 밝기 L과 채도 S값은 다음과 같이 계산할 수 있다.



HSI 색 공간의 밝기 I와 채도 S값은 다음과 같이 계산할 수 있다.



'컴퓨터비전/영상처리' 카테고리의 다른 글

Tracking Learning and Detection(TLD)  (0) 2014.10.30
random tree(임의 숲)  (0) 2014.10.25
특징 기술자, 관심 기술자  (0) 2014.10.18
모라벡 알고리즘  (0) 2014.10.13
지역 특징(Local Feature)을 찾는법  (0) 2014.10.13