Color Space

Xpert·2024년 3월 9일
0

Computer Vision

목록 보기
9/10
post-thumbnail

RGB

RGB는 R(Red), G(Green), B(Blue) 3차원으로 색을 표현하는 방식이다.
255 x 255 x 255 개의 색상을 표현할 수 있으며 값이 클수록 흰색, 작을수록 검정색에 가까워진다.
OpenCV에서는 BGR 순으로 사용되며, numpy에서는 H,W에 이어 3번째 차원에 위치하게 된다.

RGBA

RGBA는 RGB에 A가 추가된 것으로 A는 alpha이며 투명도를 의미한다.

GRAY

이미지를 회색조 이미지로 바꾼다.

  • Average method
    (R + G + B / 3)
  • Luminosity method
    ((0.3 x R) + 0.59 x G) + (0.11 x B))

이미지 처리에서는 연산량을 줄이거나, 채널 정보가 크게 중요하지 않을때 Grayscale을 사용한다.

cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

HSV

  • H (Hue) : 색상
    0°에서 360°의 범위로 표현되며, 파란색은 220°에서 260° 사이에 있습니다. OpenCV에서는 0 ~ 179의 범위로 표현됩니다. → uint8에 맞추어 메모리 사용량을 줄이기 위해서
  • S (Saturation) : 채도
    색의 순수성
    0%에서 100%의 비율로 표현되며, 0%에 가까울수록 무채색, 100%에 가까울수록 가장 선명한(순수한)색이 됩니다. OpenCV에서는 0 ~ 255의 범위로 표현됩니다.
  • V (Value, Brightness) : 명도
    색의 밝기
    0%에서 100%의 비율로 표현되며, 0%에 가까울수록 검은색, 100%에 가까울수록 가장 밝은색이 됩니다. OpenCV에서는 0 ~ 255의 범위로 표현됩니다.

HSV는 색상에 따른 이미지 처리를 하고자 할때 유용하다.
예를 들면 이미지에서 파란색에 가까운 영역만 추출하고 싶을때 cv2.inRange(src, lowerb, upperb) 를 이용하여 HSV 이미지 중 H 이미지만 따고, 여기에서 파란색에 해당하는 H 값 범위를 설정해서 추출할 수 있다.

YUV, YCbCr

사람 눈에 민감한 휘도(밝기)성분과 상대적으로 덜 민감한 색상 성분으로 분리한다.
Y는 밝기를 의미하며, U는 파랑색 성분에서 밝기값을 뺀것이고, V는 빨강색 성분에서 밝기값을 뺀것이다.
YUV는 YPbPr(아날로그)와 YCbCr(디지털)로 나뉘지만, 보통은 YUV = YCbCr 이다.

YUV는 사람의 인지에 가까운 처리를 하고자 할때 유용하다. 그래서 사람이 판단하는 것과 유사하게 반응해야 하는 영상 품질 평가 알고리즘 등에서 주로 사용된다.

LAB

눈이 인지할 수 있는 색차를 거의 그대로 수치로 표현한 방식이다.

profile
Python, CV, ML, Backend

0개의 댓글

관련 채용 정보