Color Space
Ⅰ. 색상 공간 변경
-
dst = cv.cvtColor(src, code)
- src : input image
- code : 색상 변환 코드
-
색상 변환 코드
- COLOR_BGR2GRAY : BGR에서 Grayscale로
- COLOR_BGR2HSV : BGR에서 HSV로 (8비트 이미지인 경우 H는 0~179 범위를 가짐)
- COLOR_GRAY2BGR : 1채널에서 3채널로
- 등등
import cv2 color_img = cv2.imread("src/ex_codes/opencv.png", cv2.IMREAD_COLOR) grayscale_img = cv2.cvtColor(color_img, cv2.COLOR_BGR2GRAY) cv2.imshow("color", color_img) cv2.imshow("grayscale", grayscale_img) cv2.waitKey(0) cv2.destroyAllWindows()
Ⅱ. 채널 분리/병합
mv = cv.split(m)
: 채널 분리dst = cv.merge(mv)
: 채널 병합
import cv2 src = cv2.imread("src/ex_codes/opencv.png", cv2.IMREAD_COLOR) b, g, r = cv2.split(src) inversebgr = cv2.merge((r, g, b)) cv2.imshow("b", b) cv2.imshow("g", g) cv2.imshow("r", r) cv2.imshow("inverse", inversebgr) cv2.waitKey(0) cv2.destroyAllWindows()
Ⅲ. masking
-
HSV 색상 공간에서 자주 쓰임 (특정 색이나 명도의 픽셀만 뽑고 싶을 때)
-
dst = cv.inRange(src, lowerb, upperb)
: 채널별 범위로 마스킹- src : input 이미지
- lowerb : 채널별 하한값 ndarray
- upperb : 채널별 상한값 ndarray
-
dst = cv.bitwise_and(src1, src2 , mask = mask)
: 픽셀간 비트 연산- src1 : 첫번째 이미지
- src2 : 두번째 이미지
- mask : 연산 적용 범위
import cv2 import numpy as np src = cv2.imread("src/ex_codes/person.jpeg", cv2.IMREAD_COLOR) hsv = cv2.cvtColor(src, cv2.COLOR_BGR2HSV) mask = cv2.inRange(hsv, np.array([0, 0, 200]), np.array([255, 255, 255])) res = cv2.bitwise_and(src, src, mask = mask) cv2.imshow('frame', src) cv2.imshow('mask', mask) cv2.imshow('res', res) cv2.waitKey(0) cv2.destroyAllWindows()
Author And Source
이 문제에 관하여(Color Space), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@legendre13/Color-Space저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)