
对于opencv来说创建一个trackbar控件是非常简单的,只需要调用一个api,createTrackbar即可。
另外getTrackbarPos这个api也是很重要的,具体是获得trackbar当前值的api。
createTrackbar的参数:
- trackbarname,winname:trackbar的名称和它要显示在具体哪个窗口里的窗口名称
- value:trackbar:当前值,可以设置成默认值0
- count:最小值为0,最大值为count。
- callback,userdata:回调函数和回调函数的默认值
- trackbarname:输入参数,具体是trackbar的名字
- winname:输入参数,具体是trackbar所在的窗口名字
使用trackbar滑动实现改变窗帘背景色案例 import cv2 import numpy as np def callback(): pass # 创建窗口 cv2.namedWindow('trackbar',cv2.WINDOW_NORMAL) cv2.resizeWindow('trackbar',640,360) # 创建trackbar cv2.createTrackbar('R','trackbar',0,255,callback) cv2.createTrackbar('G','trackbar',0,255,callback) cv2.createTrackbar('B','trackbar',0,255,callback) # 创建一个背景图片 img=np.zeros((360,640,3),np.uint8) while 1: # 获取当前trackbar的值 r=cv2.getTrackbarPos('R','trackbar') g=cv2.getTrackbarPos('G','trackbar') b=cv2.getTrackbarPos('B','trackbar') # 改变背景图片颜色 img[:]=[b,g,r] cv2.imshow('trackbar',img) # 按q键退出 key=cv2.waitKey(10) if key==ord('q'): break cv2.destroyAllWindows()