RGB는 R(Red), G(Green), B(Blue) 3차원으로 색을 표현하는 방식이다.
255 x 255 x 255 개의 색상을 표현할 수 있으며 값이 클수록 흰색, 작을수록 검정색에 가까워진다.
OpenCV에서는 BGR 순으로 사용되며, numpy에서는 H,W에 이어 3번째 차원에 위치하게 된다.
RGBA는 RGB에 A가 추가된 것으로 A는 alpha이며 투명도를 의미한다.
이미지를 회색조 이미지로 바꾼다.
이미지 처리에서는 연산량을 줄이거나, 채널 정보가 크게 중요하지 않을때 Grayscale을 사용한다.
cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
HSV는 색상에 따른 이미지 처리를 하고자 할때 유용하다.
예를 들면 이미지에서 파란색에 가까운 영역만 추출하고 싶을때 cv2.inRange(src, lowerb, upperb)
를 이용하여 HSV 이미지 중 H 이미지만 따고, 여기에서 파란색에 해당하는 H 값 범위를 설정해서 추출할 수 있다.
사람 눈에 민감한 휘도(밝기)성분과 상대적으로 덜 민감한 색상 성분으로 분리한다.
Y는 밝기를 의미하며, U는 파랑색 성분에서 밝기값을 뺀것이고, V는 빨강색 성분에서 밝기값을 뺀것이다.
YUV는 YPbPr(아날로그)와 YCbCr(디지털)로 나뉘지만, 보통은 YUV = YCbCr 이다.
YUV는 사람의 인지에 가까운 처리를 하고자 할때 유용하다. 그래서 사람이 판단하는 것과 유사하게 반응해야 하는 영상 품질 평가 알고리즘 등에서 주로 사용된다.
눈이 인지할 수 있는 색차를 거의 그대로 수치로 표현한 방식이다.