cv2.getTrackbarPos(),cv2.CreateTrackbar()
cv2.CreateTrackbar()
def CreateTrackbar(trackbarname, winname, default, maximum, callback_function)
Trackbarname:轨迹条的名称
Winname:轨迹条从属的窗口名称
Default:轨迹条默认值,也就是轨迹条不起作用的时候的值
Maximum:轨迹条显示的最大值
callback_function:轨迹条满足某一个值的时候执行的函数,一般这个函数有一个默认的参数就是轨迹条的位置
在open cv里面是没有按键的功能的,所以这个函数就可以充当这个功能。
cv2.getTrackbarPos()
def getTrackbarPos(trackbarname, winname): # real signature unknown; restored from __doc__
"""
getTrackbarPos(trackbarname, winname) -> retval
. @brief Returns the trackbar position.
.
. The function returns the current position of the specified trackbar.
.
. @note
.
. [__Qt Backend Only__] winname can be empty if the trackbar is attached to the control
. panel.
.
. @param trackbarname Name of the trackbar.
. @param winname Name of the window that is the parent of the trackbar.
"""
pass
返回当前的轨迹条的位置,第一个参数是轨迹条的名称,第二个是轨迹条所属的窗口名称
import cv2
import numpy as np
def nothing(x):
pass
#因为函数什么事情不用做,但是又需要一个默认参数,因而传入一个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()