跟踪栏(Trackbar)是OpenCV为图像窗口提供的交互工具。用户可以通过跟踪栏中的滑块位置获取特定范围内的值。
cv2.createTrackbar()函数用于创建跟踪栏,其基本格式如下。
cv2.createTrackbar(trackbarname,wname,value,count,onChange,userdata)
参数说明如下。
trackbarname为跟踪栏的名称。
wname为图像窗口的名称。
value为跟踪栏中滑块的初始位置。
count为跟踪栏的最大值,最小值为0。
onChange为跟踪栏滑块位置变化时调用的回调函数名称。
userdata为传递给回调函数的其他可选数据。
cv2.getTrackbarPos()函数用于返回跟踪栏的当前值,其基本格式如下。
retval=cv2.getTrackbarPos(trackbarname, wname)
参数说明如下。
trackbarname为跟踪栏的名称。
wname为图像窗口的名称。
示例代码如下。
使用跟踪栏
import numpy as np
import cv2
img=np.zeros((120,400,3), np.uint8) #创建一幅黑色图像
def doChange(x):
b=cv2.getTrackbarPos('B','tracebar')
g=cv2.getTrackbarPos('G','tracebar')
r=cv2.getTrackbarPos('R','tracebar')
img[:]=[b,g,r] #更改图像
cv2.namedWindow('tracebar')
cv2.createTrackbar('B','trackbar',0,255,doChange) #创建跟踪栏
cv2.createTrackbar('G','trackbar',0,255,doChange)
cv2.createTrackbar('R','trackbar',0,255,doChange)
while(True):
cv2.imshow('trackbar',img) #显示图像
k = cv2.waitKey(1)
if k == 27: #按【Esc】键时结束循环
break
cv2.destroyAllWindows()