본래의 색상 공간에서 다른 색상 공간으로 변환할 때 사용. 색상 공간 변환 함수는 데이터 타입을 같게 유지하고 채널을 변환. 출력된 이미지는 입력된 이미지의 이미지 크기와 정밀도가 동일한 배열이 됨.
# 색상 공간 변환 함수
dst = cv2.cvtColor(
src,
code,
dstCn=None
)
색상 공간 변환 함수는 입력 이미지(src)에 색상 변환 코드(code)를 적용해 출력 이미지(dst)로 반환. 색상 변환코드를 사용해 BGR 색상 공간을 RGBA 색상 공간으로 변환하거나 그레이스케일, HSV, CIE Luv 등 단일 채널부터 3/4채널의 색상 공간으로도 변환 가능.
출력 채널(dstCn)은 출력 이미지(dst)에 필요한 채널 수를 설정. 일반적으로 출력 채널에 값을 할당하지 않아 기본값을 사용해 자동으로 채널의 수를 결정하게 함.
# 색상 공간 변환
import cv2
src = cv2.imread("Chapter5\Example-05-02-Py\crow.jpg")
dst = cv2.cvtColor(src, cv2.COLOR_BGR2HSV)
cv2.imshow("dst", dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
다중 채널 색상 이미지(HSV)로 변환하는 예제
HSV : Hue, Saturation, Value -> 색상, 채도, 명도
cv2.imshow() 함수는 기본적으로 bgr의 색상 패턴. hsv 중 h는 유일하게 0~179의 범위로 표현되고, s와 v는 0~255로 표현. 이로인해 출력 결과는 이미지가 깨진 형태처럼 보임.
색상 변환 코드 : ‘원본 이미지 색상 공간 2 결과 이미지 색상 공간’ -> BGR2GRAY
8비트 이미지 색상 범위 : 0 ~ 255
16비트 이미지 색상 범위 : 0 ~ 65,536
32비트 이미지 색상 범위 : 0.0 ~ 1.0