[opencv-python] 트랙바 만들기
2019. 7. 2. 00:47ㆍPython-이론/python-opencv
이번에는 여러 가지(색, ONOFF)등을 조절할 수 있는 트랙바를 만들어 보겠습니다.
코드
import numpy as np
import cv2
def onChange():
pass
def trackBar():
img = np.zeros((200, 512, 3), np.uint8)
cv2.namedWindow("color Track Bar")
cv2.createTrackbar('B', 'color Track Bar', 0, 255, onChange)
cv2.createTrackbar('G', 'color Track Bar', 0, 255, onChange)
cv2.createTrackbar('R', 'color Track Bar', 0, 255, onChange)
switch = "0: OFF\n1: ON"
cv2.createTrackbar(switch, 'color Track Bar', 0, 1, onChange)
while True:
cv2.imshow('color Track Bar', img)
k = cv2.waitKey(1) & 0xFF
if k == 27:
break
b = cv2.getTrackbarPos('B', 'color Track Bar')
g = cv2.getTrackbarPos('G', 'color Track Bar')
r = cv2.getTrackbarPos('R', 'color Track Bar')
s = cv2.getTrackbarPos(switch, 'color Track Bar')
if s == 0:
img[:] = 0
else:
img[:] = [b, g, r]
cv2.destroyAllWindows()
trackBar()
코드 설명
cv2.createTrackbar('B', 'color Track Bar', 0, 255, onChange)
트랙바를 만들면서 요소를 추가해준다. 첫요소는 어떤 값을 의미하는지 텍스트 값이고 두번째 요소는 윈도우 값인데 윈도우의 이름은 항상 동일해야한다. 그리고 0, 255는 값의 범위이다. 이벤트를 처리하기 위한 콜백함수 onChange가 있는데 우리는 아무 이벤트도 없기 때문에 pass하나뿐인 함수를 만들어준다.
b = cv2.getTrackbarPos('B', 'color Track Bar')
만들어 놓은 트랙바의 값을 가져옵니다. 가져오기 위해서는 지정했을 때 사용한 값과 윈도우의 이름을 적어 주면 됩니다.
cv2.createTrackbar(switch, 'color Track Bar', 0, 1, onChange)
스위치 요소를 만들어서 1이면 색 trackBar가 작동하고 아니면 작동하지 않습니다. switch 값이 0이면 검은 화면이 나오고 1이면 지정된 색으로 나옵니다.
결과
'Python-이론 > python-opencv' 카테고리의 다른 글
[opencv-python] 이미지 연산 처리를 이용한 합성 (0) | 2019.07.02 |
---|---|
[opencv-python] roi 및 속성, 채널 (0) | 2019.07.02 |
[opencv-python] 도형 그리기 with 마우스 (0) | 2019.07.02 |
[opencv-python] 도형 그리기 (0) | 2019.07.01 |
[opencv-python] 비디오 읽고 쓰기 (0) | 2019.07.01 |