Trackbar¶
Goal¶
- trackbar와 OpenCV의 연동 방법에 대해서 알 수 있다.
cv2.getTrackbarPos()
,cv2.createTrackbar()
함수에 대해서 알 수 있다.
Demo¶
Trackbar에 대해서는 간단한 Demo를 보면서 설명하겠습니다. Demo의 내용은 4개의 Tranckbar로 구성이 되어 있습니다. 3개는 RGB의 값을 표현하며, 나머지 하나는 초기화 하는 기능입니다.
Demo에서 사용하는 cv2.getTrackbarPos()
, cv2.createTrackbar()
함수에 대해서 알아 보겠습니다.
-
cv2.
createTrackbar
(trackbarName, windowName, value, count, onChange)¶ Parameters: - trackbarName – trackbar Name
- windowName – Named Window
- value (int) – Trackbar가 생성될 때 초기 값
- count – Tracbar의 Max값. Min값은 항상 0
- onChange – Slide값이 변경될 때 호출 되는 Callback함수. 전달되는 Paramter는 trackbar Position
-
cv2.
getTrackbarPos
(trackbarName, windowName)¶ Parameters: - trackbarName – trackbar Name
- windowName – Trackbar가 등록된 Named Window
Sample Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #-*- coding: utf-8 -*-
import cv2
import numpy as np
def nothing(x):
pass
img = np.zeros((300,512,3), np.uint8)
cv2.namedWindow('image')
# trackbar를 생성하여 named window에 등록
cv2.createTrackbar('R', 'image', 0, 255, nothing)
cv2.createTrackbar('G', 'image', 0, 255, nothing)
cv2.createTrackbar('B', 'image', 0, 255, nothing)
switch = '0:OFF\n1:On'
cv2.createTrackbar(switch, 'image', 1, 1, nothing)
while(1):
cv2.imshow('image', img)
if cv2.waitKey(1) & 0xFF == 27:
break
r = cv2.getTrackbarPos('R','image')
g = cv2.getTrackbarPos('G', 'image')
b = cv2.getTrackbarPos('B', 'image')
s = cv2.getTrackbarPos(switch, 'image')
if s == 0:
img[:] = 0 # 모든 행/열 좌표 값을 0으로 변경. 검은색
else:
img[:] = [b,g,r] # 모든 행/열 좌표값을 [b,g,r]로 변경
cv2.destroyAllWindows()
|