[OpenCv-python 기초 사용법] 색공간 변경하기, 추적하기
2018. 6. 2. 20:15ㆍ카테고리 없음
색공간 변경하기, 추적하기
이번에는 BGR을 Gray, BGR을 HSV로 변경시켜 보겠다. hsv란 BGR은 파란색, 초록색, 빨간색의 강도에 따라 색을 정하는 반면 HSV는 색상(Hue), 채도(Saturation), 명도(Value)의 조합으로 색이 정해진다.
참고 이미지
예제 코드
import cv2 import numpy as np blue = np.uint8([[[255, 0, 0]]]) green = np.uint8([[[0, 255, 0]]]) red = np.uint8([[[0, 0, 255]]]) HSV_R = cv2.cvtColor(red, cv2.COLOR_BGR2HSV) HSV_G = cv2.cvtColor(green, cv2.COLOR_BGR2HSV) HSV_B = cv2.cvtColor(blue, cv2.COLOR_BGR2HSV) print('HSV Blue', HSV_B) print('HSV Green', HSV_G) print('HSV Red', HSV_R)
import cv2 import numpy as np cap = cv2.VideoCapture(0) while True: ret, frame = cap.read() hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) Bmask = cv2.inRange(hsv, np.array([100, 80, 80]), np.array([140, 255, 255])) 각각의 범위 지정 Gmask = cv2.inRange(hsv, np.array([35, 80, 80]), np.array([80, 255, 255])) Rmask = cv2.inRange(hsv, np.array([-10, 100, 100]), np.array([10, 255, 255])) B = cv2.bitwise_and(frame, frame, mask=Bmask) G = cv2.bitwise_and(frame, frame, mask=Gmask) R = cv2.bitwise_and(frame, frame, mask=Rmask) cv2.imshow('original', frame) cv2.imshow('blue', B) cv2.imshow('green', G) cv2.imshow('red', R) k = cv2.waitKey(1) if k == 27: break cv2.destroyAllWindows()
결과물
초록 파랑색