색 영역 | 색 표현 채널 종류 | 채널 |
---|---|---|
BGR | Blue, Green, Red | 3 |
GRAY | Intensity | 1 |
HSV | Hue(색상), Saturation(채도), Value(명도) | 3 |
HLS | Hue(색상), Lightness(밝기), Saturation(채도) | 3 |
CIELab | L(명도), 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()