cv2滚动条
import cv2
import numpy as np
# 回调函数
def redValue(x):
print('R:', x)
def greenValue(x):
print('G:', x)
def blueValue(x):
print('B:', x)
def switchValue(x):
print('Switch:', x)
if __name__ == '__main__':
img = np.zeros((500, 500, 3), np.uint8) # 500x500黑色背景
cv2.namedWindow('test') # 窗体名
cv2.createTrackbar('R', 'test', 0, 255, redValue) # 滚动条名,窗体名,最小值,最大值,回调函数
cv2.createTrackbar('G', 'test', 0, 255, greenValue)
cv2.createTrackbar('B', 'test', 0, 255, blueValue)
cv2.createTrackbar('switch', 'test', 0, 1, switchValue)
while True:
cv2.imshow('test', img)
if cv2.waitKey(1) & 0xFF == ord('q'): # 摁下q退出
break
R = cv2.getTrackbarPos('R', 'test') # 获取数值
G = cv2.getTrackbarPos('G', 'test')
B = cv2.getTrackbarPos('B', 'test')
switch = cv2.getTrackbarPos('switch', 'test')
if switch == 0:
img[:] = 0 # 无操作
else:
img[:] = [B, G, R] # 设置颜色,opencv中为BGR
cv2.destroyAllWindows()
参考文献:
OpenCV官方教程中文版(For Python)
https://www.linuxidc.com/Linux/2015-08/121400.htm