본문 바로가기
Python/Computer Vision

[파이썬, Python] OpenCV - 컬러 영상과 색상 정보

by coding-choonsik 2023. 8. 24.
728x90
반응형
SMALL

1. 컬러 영상과 색

  • 컬러 영상은 3차원 배열
  • numpy.ndarray로 다룰 수 있음
  • img.shape: (h, w, 3) -> OpenCV에서는 BGR
  • 색상 채널 분리
    • cv2.split(영상)
  • 색상 채널 결합
    • cv2.merge(입력 영상 리스트 또는 튜플)
import cv2

src = cv2.imread('candies.png', cv2.IMREAD_UNCHANGED)  # BGRA로 가져올 수 있음(png파일이라 알파채널 포함)
print('shape:', src.shape)
print('dtype:', src.dtype)

# b = src[:,:,0]
# g = src[:,:,1]
# r = src[:,:,2]
b, g, r = cv2.split(src)

cv2.imshow('src', src)
cv2.imshow('b', b)
cv2.imshow('g', g)
cv2.imshow('r', r)
cv2.waitKey()

 

▲ src
▲ 순서대로 B, G, R


2. 색상 정보

2-1. BGR(RGB)

  • Blue(파랑), Green(녹색), Red(빨강)의 각 색상 채널을 표현하는 순서로, 이미지의 각 픽셀을 나타냄
  • 파랑 (Blue): 0에서 255까지의 값으로 픽셀의 파란색 성분을 나타냄
  • 녹색 (Green): 0에서 255까지의 값으로 픽셀의 녹색 성분을 나타냄
  • 빨강 (Red): 0에서 255까지의 값으로 픽셀의 빨간색 성분을 나타냄

 

2-2. YCbCr

  • 색공간을 밝기 정보로 표현하는 방식
  • Y: 밝기 정보
  • YCbCr을 줄여서 YCC라고 부르기도 함

출처:https://en.wikipedia.org/wiki/YCbCr

 


2-3. HSV

  • 색을 표현하는 방법이자 색을 배치하는 방식
  • 색상(빨강, 녹색, 파랑 등 H ),채도(선명도, S), 명도(빛의 밝기, V)의 좌표를 써서 특정한 색을 지정

출처: https://shaeod.tistory.com/165

 

 

728x90
반응형
LIST