[OpenCV] 7. 색상 공간 변환

최재혁·2022년 10월 4일
0

opencv-python

목록 보기
8/10

색 영역 종류

색 영역색 표현 채널 종류채널
BGRBlue, Green, Red3
GRAYIntensity1
HSVHue(색상), Saturation(채도), Value(명도)3
HLSHue(색상), Lightness(밝기), Saturation(채도)3
CIELabL(명도), a(Red 와 Green의 정도), b(Yellow 와 Blue의 정도)3

색 영역 사진

- HSV

- HLS

- CIELab

색 영역 변환

cv2.cvtColor(src, code) 영상의 색영역을 변환해주는 함수

src(numpy,ndarray) : 변환할 영상

code : (원본 이미지 색상 공간)2(결과 이미지 색상 공간)

BGR2GRAY는 RGB 채널 영상을 Grayscale 단일 채널 영상으로 변환한다

예제 코드

import cv2
import numpy as np

path = "D:/dev/wego-project/erp_udp/bookcode/"
image = "lena512.bmp"

# 영상 불러오기
color = cv2.imread(path+image,1)
gray = cv2.imread(path+image,0)

# 색 변환
cvt_gray = cv2.cvtColor(color,cv2.COLOR_BGR2GRAY)
cvt_hsv = cv2.cvtColor(color,cv2.COLOR_BGR2HSV)
cvt_hsl = cv2.cvtColor(color,cv2.COLOR_BGR2HLS)
cvt_lab = cv2.cvtColor(color,cv2.COLOR_BGR2Lab)

# 이미지 옆으로 붙이기
gray_3d = np.dstack((cvt_gray, cvt_gray, cvt_gray))
cvt1 = cv2.hconcat([gray_3d,cvt_lab])
cvt2 = cv2.hconcat([cvt_hsv,cvt_hsl])

rst = cv2.vconcat([cvt1,cvt2])
dst = cv2.resize(rst,(750,750),interpolation=cv2.INTER_LINEAR)

cv2.imshow("color",color)
cv2.imshow("converted",dst)

cv2.waitKey()
cv2.destroyAllWindows()

결과

  • 원본

  • cvtColor를 사용하여 원본에서 변환
    좌상단 : GRAY, 우상단 : CIELab,
    좌하단 : HSV, 우하단 : HLS

profile
Autonomous driving vision

0개의 댓글