1. 개요
색 공간(Color Space) 변환은 이미지가 표현되는 색의 구조를 다른 체계로 바꾸는 과정을 의미합니다. 일반적으로 우리가 사용하는 디지털 이미지는 RGB(Red, Green, Blue) 기반이지만, 상황에 따라 HSV, LAB, YCrCb 등 다양한 색 공간을 사용해야 합니다. OpenCV에서는 cv2.cvtColor() 함수를 통해 이미지의 색 공간을 손쉽게 전환할 수 있으며, 이는 색상 기반 객체 추적, 조명 변화에 강한 영상 분석, 피부 톤 분류 등 여러 영상처리 작업에서 필수적인 기능입니다.
2. OpenCV 색 공간 변환
OpenCV는 cv2.cvtColor(src, code) 형태로 색상 변환을 지원합니다. 여기서 src는 입력 이미지이며, code는 변환 타입을 의미합니다. 주요 변환 코드는 다음과 같습니다.
● RGB ↔ BGR
OpenCV는 기본적으로 BGR 채널 순서를 사용하므로 RGB 이미지와 상호 변환이 자주 필요합니다.
- cv2.COLOR_BGR2RGB
- cv2.COLOR_RGB2BGR
● BGR ↔ Gray
컬러 이미지를 명암 이미지로 변환합니다. 다양한 필터링·에지 검출 전처리로 활용됩니다.
- cv2.COLOR_BGR2GRAY
● BGR ↔ HSV
HSV는 조명 변화에 강하며 색 기반 객체 추적에 널리 사용됩니다.
- cv2.COLOR_BGR2HSV
- cv2.COLOR_HSV2BGR
● BGR ↔ LAB
LAB은 사람의 시각 특성을 반영한 색 공간으로 색 분석·이미지 향상에 활용됩니다.
- cv2.COLOR_BGR2LAB
- cv2.COLOR_LAB2BGR
● BGR ↔ YCrCb
밝기(Y)와 색차(Cr, Cb) 정보로 구성되며 피부 톤 분리에 유용합니다.
- cv2.COLOR_BGR2YCrCb
- cv2.COLOR_YCrCb2BGR
3. 예제 코드 (Python)
import cv2
# 이미지 불러오기
img = cv2.imread('sample.jpg')
# BGR → HSV 변환
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# BGR → LAB 변환
lab = cv2.cvtColor(img, cv2.COLOR_BGR2LAB)
# BGR → Gray 변환
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 결과 확인
cv2.imshow("Original", img)
cv2.imshow("HSV", hsv)
cv2.imshow("LAB", lab)
cv2.imshow("GRAY", gray)
cv2.waitKey(0)
cv2.destroyAllWindows()
'영상처리 도구' 카테고리의 다른 글
| OpenCV 드로네 삼각분할과 보로노이를 이용한 2D 공간 분석 방법 (0) | 2025.12.05 |
|---|---|
| OpenCV 카메라 보정, 왜곡 제거 방법 (Camera Calibration) (0) | 2025.12.02 |
| OpenCV 이미지 크기 조절 방법 (Resize, Scaling) (0) | 2025.11.28 |
| OpenCV 이미지를 읽고, 보여주고, 저장하는 방법 (Python, C++) (0) | 2025.11.18 |
| OpenCV 웨이블릿 변환 Wavelet Transform (pywavelets, wavelib) (0) | 2025.10.19 |
