안녕하세요. 지난 포스팅의 디지털 영상 처리 - 칼라 기초에서는 칼라 영상 처리에서 사용되는 다양한 용어들에 대해서 알아보았습니다. 오늘은 칼라를 표현하기 위한 다양한 모델들에 대해서 알아보도록 하겠습니다.
칼라 모델(Color Model)은 칼라 공간(Color Space) 또는 칼라 시스템(Color System)이라고도 불립니다. 지난 포스팅에서도 언급했지만 칼라를 느끼는 기준을 표준화하는 것은 굉장히 어려운 일입니다. 이번 포스팅의 목적은 인간이 느끼는 칼라를 몇 가지 기준으로 표현하는 방법에 대해서 설명하고자 합니다.
현대 사회에서 칼라 모델은 크게 2가지로 나눌 수 있습니다.
- 하드웨어 지향적(칼라 모니터, 프린터)
- 응용 지향적(만화 영화용 칼라 그래픽스의 창작)
디지털 영상 처리에서 언급하는 칼라 모델은 주고 하드웨어 지향적 모델을 의미하고 이는 대표적으로 RGB, CMYK, HSI 모델 등이 있습니다. 위에서 언급한 3가지 말고도 어떤 하드웨어에서 작업하느냐에 따라서 더 다양한 칼라 모델들이 존재할 수 있다는 점 참고해주시길 바랍니다.
1. RGB(적/녹/청) 칼라 모델
RGB 모델은 저희가 가장 잘 알고있는 칼라 모델입니다. 각 칼라는 적색, 녹색, 청색 스펙트럼 성분들에 의해 나타납니다. 이 모델은 3차원 데카르트 좌표계를 기반으로 하기 때문에 0부터 1 사이로 정규화하여 아래와 같이 표현합니다.
위 그림을 보시면 R축, G축, B축이 있고 각 축에서 0에 가까울 수록 검은색에 가까워지고 1에 가까울수록 흰색에 가까워짐을 관찰할 수 있습니다. 그리고 그레이 스케일은 RGB의 값이 각각 균등하게 배분되어 원점인 검은색에서 흰색까지의 직선 사이가 됩니다. RGB 모델의 다른 칼라들은 $[0, 1]^{3}$ 내부의 임의의 칼라로 표현될 수 있습니다.
위 그림을 설명하기 위해서 한 가지 중요한 용어인 화소 깊이(pixel depth)를 설명해야할 거 같습니다. 화소 깊이란 각 칼라(R/G/B)를 구성하기 위해 사용된 비트의 수를 의미합니다. 예를 들어, R/G/B의 각 칼라가 8비트로 구성되면 총 24비트의 픽셀 깊이를 가지게 됩니다. 일반적으로 24비트 RGB 칼라 영상을 "풀 칼라(Full-Color)" 영상이라고 하고 이를 위의 그림과 같이 표현하게 됩니다. 그리고 풀 칼라 영상에서 표현할 수 있는 색의 수는 $2^{24} = 16,777,216$개입니다.
일반적으로 RGB 컬러 모델의 칼라 모니터에서 자주 사용됩니다. 위의 그림과 같이 RGB 각각의 칼라 채널들이 칼라 모니터에 합쳐져서 하나의 칼라를 표현하게 됩니다.
2. CMY와 CMYK 칼라 모델
CMY 칼라 모델은 각각 Cyan, Magenta, Yellow로 색의 삼원색을 이용한 칼라 모델을 의미합니다. RGB 칼라 모델을 빛의 삼원색을 사용했다는 점과 크게 다르죠. CMY 칼라 모델은 RGB 칼라 모델로부터 아주 쉽게 추출됩니다. 1에서 RGB 각 칼라에 해당하는 값을 빼주면 됩니다. 즉, $C = 1 - R, M = 1 - G, Y = 1 - B$가 됩니다. CMY 칼라 모델은 보통 칼라 프린터에서 활용됩니다.
여기서 CMY 칼라 모델에서 검은색을 표현하기 위해서는 각 칼라를 모두 사용하면 됩니다. 하지만, 그 결과는 상대적으로 탁한 흑색이기 때문에 진짜 흑색을 만들기 위해서 4번째 칼라 요소인 검은색, 즉 K를 추가한 것입니다.
3. HSI 칼라 모델
마지막으로 HSI 칼라 모델을 알아보도록 하겠습니다. 지금까지 모았던 RGB, CMY, CMYK 칼라 모델들은 하드웨어 구현에 적합합니다. 하지만, 인간의 눈에는 맞지 않는 방법입니다. 어떤 칼라를 보고 사람들이 R은 0.1, G은 0.5, B는 0.2라고 말할 수 없듯이 말입니다. 저희가 어떤 칼라를 보았을 때 가장 먼저 관찰되는 것은 지배적인 색상일 것 입니다. 예를 들어 사과의 색이 빨간색인지 초록색인지 정도의 표현이 되겠지요. 다음으로 관찰하는 것은 해당 색상이 얼마나 선명한가일 것 입니다. 같은 색상이라고 하더라도 진한 빨간색이 있고 탁한 빨간색이 있듯이요. 마지막으로는 전체적인 밝기를 보게되겠지요. 이와 같이 색상(Hue), 채도(Saturation), 밝기(Intensity, Brightness, Value, Lightness)로 표현하는 칼라 모델을 HSI(HSB, HSV, HSL) 칼라 모델이라고 합니다.
HSI 칼라 모델에서 색상은 Red를 기준으로 하는 각 칼라의 각도로 표현됩니다. 그래서 Red라면 H = 0이 됩니다. 채도는 중심에서 해당 칼라까지의 거리로 표현됩니다.
마지막으로 밝기는 3차원 상에서 높이로 표현됩니다. 아주 간단합니다. 이외에 HSI에서 RGB로의 변환거 그 역변환에 대한 설명이 있지만 이 부분은 다루지 않도록 하겠습니다. 궁금하신 분들은 아래의 링크를 참조해주시길 바랍니다.