使用函数

cv2.createTrackbar(trackbarname,winname,value,count,onChange)

  • 功能:创建TrackBar控件
  • trackbarname:名称
  • winname:显示窗口
  • value为trackbar的默认值
  • count为bar的最大值,最小为0
  • OnChange:回调函数

cv2.getTrackbarPos(trackbarname,winname)

  • 功能获取TrackBar当前值
  • trackbarname:上面创建的trackbar对象名称
  • winname:显示窗口的名称

回调函数

1
2
def callback(value):
print(value)

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :Opencv学习
@File :trackBar控件.py
@IDE :PyCharm
@Author :咋
@Date :2023/1/11 18:19
"""
import cv2
import numpy as np
cv2.namedWindow("window",cv2.WINDOW_NORMAL)
cv2.resizeWindow("window",(640,480))

# 定义回调函数
def callback(value):
print(value)

# 创建Trackbar控件
cv2.createTrackbar("R","window",0,255,callback)
cv2.createTrackbar("G","window",0,255,callback)
cv2.createTrackbar("B","window",0,255,callback)
# 用np创建一个图像矩阵
image = np.zeros((480,640,3),np.uint8) # 注意这里的长宽是相反的,3是指通道数,np.uint8指无符号的整数
while True:
# 获取Trackbar控件的值
r = cv2.getTrackbarPos("R","window")
g = cv2.getTrackbarPos("G","window")
b = cv2.getTrackbarPos("B","window")
# 用获取的值来生成图片
image[:] = [r,g,b] # 替换像素
# 显示图片
cv2.imshow("window",image)
if cv2.waitKey(1) == ord("q"):
break


cv2.destroyAllWindows()

image.png