영상추적 알고리즘을 공부하다가 색상모델에 대해 좀 더 알게 되었다.
우선 색을 표현하는 방법에는 가장 흔하게 알고있는 RGB와 GRAY기반의 색상모델이 있다.
그렇다면 HSV는 다소 생소한데 HSV 색상모델에 대해 알아보자.
HSV 색상모델은 색상(Hue), 채도(Saturation), 명도(Value)의 3차원 좌표를 써서 특정한 색을 지정한다.
각각의 구성요소에 대해 더 알아보자
1. HSV 색상모델
1) 색상(Hue)
- 색상이란 가시광선 스펙트럼을 원모양으로 배치한 색상환에서 가장 파장이 긴 빨강색을 0°라고 하였을 때 상대적인 배치 각도를 의미한다.
- 전체 원은 0°~360°의 범위를 갖고 360°와 0°는 결국 같은 색상인 빨강색을 의미한다.
- 즉, 위의 원기둥 모양에서 색상은 원기둥을 위에서 아래로 바라보았을때(2D 원) 빨강색을 기준(0°)으로 상대적인 각도를 의미한다.
2) 채도(Saturation)
- 채도란 특정 색상의 가장 진한 상태를 100%라 할 때, 진함의 퍼센트 정도를 나타낸다.
- 채도값 0%는 같은 명도의 무채색을 나타내는데, 무채색의 정의 또한 위키피디아를 찾아보면 "무채색 : 색상과 명도는 갖추고 있으나, 채도를 갖추고 있지 않은 색으로 하양과 검정, 회색이 있다" 로 나와있다.
- 그러면 하양,검정,회색을 결정하는건 뭐지?라고 생각할 수 있는데 저 원기둥에서 생각해보자
- 원기둥에서 채도를 의미하는것은 같은 색상아래 진하기이기 때문에 원기둥을 위에서 아래로 바라보았을때(2D 원) 특정 각도(색상)에서 반지름의 크기이다. 반지름이 클수록 색이 진하고 작을수록 채도가 낮다고 보면 된다.
- 그러면 무채색으로 돌아가서 하양,검정,회색을 결정하는 것은 다음 칸에서 알아볼 명도이다. 명도 값에 따라 가장 밝은 흰색일 수 도, 가장 어두운 검은 색일 수도 있다.
- 채도를 보다 직관적으로 느끼기 위해서는 쉽게 핸드폰에서 이미지 편집 기능을 통해 확인할 수 있다. 대부분의 이미지 편집 툴에서는 채도를 조절할 수 있는데 채도를 높히면 각 색들이 찐해지고 낮추면 색들이 옅어져 GRAY 이미지와 비슷해지는 것을 확인할 수 있다. (사실 채도가 0%라면 실제 그 이미지는 GRAY One channel로 바뀔것이다.)
3) 명도(Value)
- 명도는 쉽게 말해서 특정 색의 밝은 정도이다.
- 모든 색은 어두워지면 공통적으로 검은색이 된다.
- 원기둥에서 명도가 의미하는것은 높이인데 가장 아래에 명도가 0일때 모두 검은색인 것을 확인할 수 있다.
다음과 같이 HSV 색상모델을 이용해서 색을 표현할 때, 위의 세가지 구성요소의 조합을 활용하는 것을 알 수 있다.
즉, 하나의 색은 3가지 좌표의 조합으로 표현할 수 있고 위의 원기둥 모형 내부의 한 점으로 mapping 할 수 있다.
위에서 다룬 HSV 색상 모델은 그림과 같이 원기둥(cylindric) 형태이지만 아래와 같이 원뿔(conic) 형태도 있으니 참고하면 좋을 듯 하다.
2. 영상처리/영상인식에서 HSV 색상모델?
- 색상, 채도, 명도 각각은 0 ~ 255 사이의 값으로 표현한다.
- 색상 값은 색의 종류를 나타내기 때문에 빨강,파랑,초록 등 단순한 인덱스(index)를 의미한다.
- 채도 값은 0이면 무채색(gray 색), 255면 가장 선명한(순수한) 색이다.
- 명도 값은 위의 설명과 같이 0에 가까울수록 어둡고 255에 가까울수록 밝은 색임을 나타낸다.
끝!