OpenCV中TrackBar控件
Trackbar(轨迹条/滑块)是 OpenCV 提供的 GUI 控件,让用户用鼠标拖动滑块,实时把 0~N 的整数值传给你的程序。

API介绍:
1.cv2.createTrackbar() 是 OpenCV 提供的一个 GUI 函数。
用来在指定窗口里“挂”一条可拖动的滑块(Trackbar)。借助它,你可以在调试图像处理程序时实时改变某个参数(阈值、亮度、颜色范围等),并立即看到效果,而无需反复改代码、重新运行。
函数原型:
cv2.createTrackbar(trackbarname, # 滑块名字,同一窗口内不能重名。winname, # 依附的窗口名字(必须先 namedWindow)value, # 初始值(int),滑块初始位置。count, # 最大值(最小值固定为 0),滑块上限(下限恒为 0)。onChange # 回调函数,滑块移动时自动调用
)2.cv2.getTrackbarPos() 是 OpenCV 提供的唯一一条“读取滑块当前位置”的函数。
它与 cv2.createTrackbar() 成对出现:前者负责“创建”,后者负责“取值”。只要知道滑块名字和它所在的窗口名字,就能在任何时刻拿到滑块的整数值。
函数原型:
cv2.getTrackbarPos(trackbarname, # 滑块名字(创建时给的那个字符串)winname # 窗口名字(namedWindow 时给的那个字符串)
)通过Trackbar调节背景颜色:
import cv2
import numpy as np
def callback():pass
cv2.namedWindow('taskbar',cv2.WINDOW_NORMAL)
cv2.createTrackbar('R','taskbar',0,255,callback)
cv2.createTrackbar('G','taskbar',0,255,callback)
cv2.createTrackbar('B','taskbar',0,255,callback)
img=np.zeros((480,640,3),np.uint8)
while True:r=cv2.getTrackbarPos('R','taskbar')g=cv2.getTrackbarPos('G','taskbar')b=cv2.getTrackbarPos('B','taskbar')img[:]=[b,g,r]cv2.imshow('taskbar',img)key=cv2.waitKey(10)if key&0xFF==ord('q'):break
cv2.destroyAllWindows()