cv.createTrackbar()函数
函数参数列表:
- 轨迹栏名称
- 窗口名称
- 默认值
- 最大值
- 回调函数(执行跟踪栏值的更改)
回调函数始终具有默认值,一般参数设置为nothing
cv.getTrackbarPos()函数
函数参数列表:
- 轨迹栏名称
- 窗口名称
函数用于获取目标轨迹栏此时的指针在轨迹栏中的取值
轨迹栏的应用
- 一般应用(调色盘轨迹栏)
- 按钮/开关(变换应用)
示例代码:
import numpy as np
import cv2 as cv
def nothing(x):
pass
# 创建一个黑色的图像,一个窗口
img = np.zeros((300,512,3), np.uint8)
cv.namedWindow('image')
# 创建颜色变化的轨迹栏
cv.createTrackbar('R','image',0,255,nothing)
cv.createTrackbar('G','image',0,255,nothing)
cv.createTrackbar('B','image',0,255,nothing)
# 为 ON/OFF 功能创建开关
switch = '0 : OFF \n1 : ON'
cv.createTrackbar(switch, 'image',0,1,nothing)
while(1):
cv.imshow('image',img)
k = cv.waitKey(1) & 0xFF
if k == 27:
break
# 得到三条轨迹的当前位置
r = cv.getTrackbarPos('R','image')
g = cv.getTrackbarPos('G','image')
b = cv.getTrackbarPos('B','image')
s = cv.getTrackbarPos(switch,'image')
# 如果 switch 为 0,则显示黑色,否则显示颜色
if s == 0:
img[:] = 0
else:
img[:] = [b,g,r]
cv.destroyAllWindows()
代码说明:
该代码使用了 OpenCV 库实现了一个可通过调整 RGB 颜色值来实时预览效果的界面。程序中使用 np.zeros
函数创建了一张黑色图像以及对应窗口,并通过 cv.createTrackbar 函数创建了三个轨迹条和一个开关。在进入主循环后,程序使用
cv.imshow 函数用于在窗口中显示图像,等待用户输入后使用 esc 键来退出程序。该程序通过调用 cv.getTrackbarPos
函数获取当前颜色值,并将其转换为 [b,g,r] 格式进行显示。
运行测试: