이 글의 원문은 https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_gui/py_trackbar/py_trackbar.html 입니다.
OpenCV는 Trackbar UI를 자체적으로 제공하는데, OpenCV의 Window에 이 Trackbar를 붙일 수 있습니다. 이미지의 특성값의 설정에 이 Trackbar UI가 효과적으로 사용될 수 있습니다. 간단한 예를 통해 필요한 함수를 살펴보겠습니다.
import cv2
import numpy as np
def nothing(x):
pass
img = np.zeros((300,512,3), np.uint8)
cv2.namedWindow('image')
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', 0, 1, nothing)
while(1):
cv2.imshow('image', img)
k = cv2.waitKey(1) & 0xFF
if k == 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
else:
img[:] = [b,g,r]
cv2.destroyAllWindows()
위의 실행 화면은 다음과 같습니다.

화면에서와 같이 총 4개의 Trackbar가 표시되고 있습니다. 이 트랙바는 10, 11, 12, 15번 코드의 cv2.createTrackbar 함수를 통해 생성됩니다. 이 함수의 첫번째 인자는 트랙바의 ID이자 표시되는 라벨이고, 두번째는 붙을 Window의 이름, 세번째는 트랙바가 조정할 수 있는 값의 최소치, 네번째는 조정할 수 있는 값의 최대치입니다. 마지막 인자는 트랙바의 값이 변경될때마다 호출되는 이벤트 함수입니다. 이 프로그램은 트랙바로 조정한 값을 RGB 색상으로 조합하여 표시합니다.
