Koo's.Co

[OpenCV] 컬러 영상 기본 함수 본문

Python/영상처리

[OpenCV] 컬러 영상 기본 함수

kth321 2023. 1. 4. 22:38

1. split

BGR로 구성된 영상을 3개의 grayscale 이미지로 나누어 반환함

각 grayscale은 해당 색상 성분이 많을수록 흰색에 가깝게, 적을수록 검정색에 가깝게 표현됨

cv2.split(m, mv=None) -> dst

 - m: 다채널 영상(B, G, R)로 구성된 영상

 - mv: 출력 영상

 - dst: 출력 영상 리스트, BGR 순서에 맞는 grayscale 영상을 3개 반환함

2. merge

split을 이용해 나눈 3개의 grayscale 영상을 다시 합치는 함수

cv.merge(mv, dst=None) -> dst

 - mv: 입력 영상 리스트, BGR 순서에 맞는 grayscale 영상 리스트

 - dst: 출력 영상

3. cvtColor

영상 색상에 따라 다양한 색영역을 지원함

RGB(GBR)보다는 다른 색영역을 많이 사용

cv2.cvtColor(src, code, dst=None, dstCn=None) -> dst

 - src: 입력 영상

 - code: 색 변환 코드

 - dstCn: 결과 영상의 채널 수. 0인 경우 자동으로 결정

 - dst: 출력 영상

 

* Color Conversion Code

 

OpenCV: Color Space Conversions

enum  cv::ColorConversionCodes {   cv::COLOR_BGR2BGRA = 0,   cv::COLOR_RGB2RGBA = COLOR_BGR2BGRA,   cv::COLOR_BGRA2BGR = 1,   cv::COLOR_RGBA2RGB = COLOR_BGRA2BGR,   cv::COLOR_BGR2RGBA = 2,   cv::COLOR_RGB2BGRA = COLOR_BGR2RGBA,   cv::COLOR_R

docs.opencv.org

cv2.COLOR_BGR2GRAY / cv2.COLOR_GRAY2BGR BGR ⇔ GrayScale
cv2.COLOR_BGR2RGB / cv2.COLOR_RGB2BGR BGR ⇔ RGB
cv2.COLOR_BGR2HSV / cv2.COLOR_HSV2BGR BGR ⇔ HSV
cv2.COLOR_BGR2YCrCb / cv2.COLOR_YCrCb2BGR BGR ⇔ YCrCb

1) GRAYSCALE

 - RGB 색상을 그레이스케일 이미지로 변환

 - 색상 정보가 큰 효용이 없는 경우에 사용

 - 픽셀 당 3byte => 1byte

 - 장점: 저장 용량 감소 및 데이터 처리 속도 향상

 - 단점: 색상 정보 손실

2) HSV

 - Hue : 색상, 색의 종류

        - R(0°, 179°), G(120° or 60°), B(240° or 120°)

        - 180도로 Hue를 나타내는 경우 각각이 절반에 해당됨

 - Saturation: 채도, 색의 탁하고 선명한 정도

        - 값이 클수록 색상이 풍부해짐

        - 값이 작을수록 흰색에 가까워짐

 - Value: 명도, 빛의 밝기, 색의 밝기 정도

 

opencv에서는 크기가 1byte인 CV_8U를 사용하기 때문에 H를 0 ~ 179로 표현

3) YCrCb

 - PAL, NTSC, SECAM 등 컬러 비디오 표준에 사용되는 색 공간

 - 영상 밝기 정보와 색상 정보를 분리하여 부호화

 - 컬러 TV와 흑백 TV를 호환하기 위해 사용한 색 영역

 - Y: 밝기 정보(luma)

 - Cr, Cb: 색차(chroma)

 - Cr: Chroma에서 red 성분이 밝게 나타남

 - Cb: Chroma에서 blue 성분이 밝게 나타남

밝기에 따라 다르게 색을 나타냄

 

'Python > 영상처리' 카테고리의 다른 글

[OpenCV] 히스토그램 분석  (0) 2023.01.05
[OpenCV] 명암비 조절  (0) 2023.01.05
[OpenCV] 산술 연산  (0) 2023.01.04
[OpenCV] 마스크 연산, ROI(Region of Interest)  (0) 2023.01.04
[matplotlib] 영상 출력  (0) 2023.01.04
Comments