컴퓨터비전, 영상처리 분야에서는 색상을 표현하는데 빛의 삼원색(rgb)을 사용한다.
- 빛의 삼원색(Primary colors of light) : Blue, Green, Red
- 색의 삼원색(Secondary colors of light) : Magenta, Yellow, Cyan
- 무채색(Achromatic color) : 색상 정보가 존재하지 않는, 각각의 color component의 비율이 같은 경우.(rgb의 비율이 같다.) <-> 유채색
Color Models
1. RGB
R-channel, G-channel, B-channel로 이루어져있다.
intensity level은 일반적으로 256이므로 [0,255]로 표현가능하다
Red = (255,0,0)
White = (255,255,255) (무채색이기 때문에 비율이 같다.)
Black = (0,0,0)
(이때, open CV에서는 bgr순서대로 값을 입력한다.)
2. HSI(=HSV)
Hue-channel, Saturation-channel, Intensity-channel 값으로 구성되어 있다.
- Intensity(Brightness) : 어떤 색상의 밝기 값. 색상정보값은 포함되어있지 않고, 단지 세기를 표현
- Hue : 색조. 특정한 색상을 결정짓는 우세한 파장.
- Saturation : 상대적인 (색상의) 순도. 백색이 하나도 섞여있지 않은, 특정한 색상이 순수하게 특정한 하나의 파장으로 구성되어있으면 saturation이 높다고 할 수 있다.
HSI는 HSV라고도 불리는데 이때 V는 value의 약자이다.
S가 크면 선명한 색상, I가 크면 밝기가 밝은 색상이다.
HSI 모델은 원뿔을 두개 겹쳐놓은 모양으로 표현가능.
원뿔을 수직방향으로 자르면 원이 나타나는데, 원의 중점에 무채색이 존재하고, hue는 원의 각도에 해당한다.
saturation은 원의 bound, 즉 둘레에 가까워지면 높다고 할 수 있다.
각각의 채널의 값의 범위
- 0<H<360, OpenCV 에서의 range는 H/2(0<H<180)
- 0<S<1, OpenCV 에서의 range는 255*S(0<S<255)
- 0<V<1, OpenCV 에서의 range는 255*V(0<V<255)
3. YCbCr
- Y : brightness(밝기 값). HSI모델에서 Intensity값에 해당한다고 생각하면 된다.(물론 값은 미세하게 다르다)
- Cb : blue값과 brightness(밝기 값)의 차이 (B-Y)
- Cr : Red값과 brightness(밝기 값)의 차이 (R-Y)
하늘은 주로 파란색. Y라는 값을 어떻게 계산하느냐? 보통 rgb값의 평균이라고 생각하면 된다.
하늘 영역의 Blue값은 크고 red, green값은 상대적으로 적을것이다. 즉, 우리가 이 영역에 대해 Y값을 계산하면 이 영역의 blue값보다는 상대적으로 작을 수 밖에 없다. 가운데 영상을 보면 하늘에 대한 픽셀값이 상대적으로 다른 부분보다 값이 크기때문에 Cb임을 알 수 있다.
4. Grayscale image
Hue나 saturation 픽셀의 값이 모두 0인 것.
즉, 각각의 픽셀이 밝기만 표현 가능한 것으로 흑백영상을 의미한다.
lightness(or brightness)의 픽셀값이 0에 가까울수록 검정, 255에 가까울수록 흰색이다.
이 게시물은 한동대학교 황성수 교수님의 컴퓨터비전 강의를 공부하며 정리한 내용입니다.
'Computer Vision' 카테고리의 다른 글
[OpenCV] Drawing 함수(Drawing Function) (0) | 2020.01.11 |
---|---|
[OpenCV] Mat 연산자(Mat operator) (0) | 2020.01.11 |
[OpenCV] Open CV 기초 (0) | 2020.01.09 |
[컴퓨터 비전] 디지털 영상/ 동영상의 기초 (0) | 2020.01.09 |
[컴퓨터 비전] 컴퓨터비전(Computer Vision)이란? (0) | 2020.01.09 |