在这里,将创建一个简单的应用程序,以显示您指定的颜色。有一个显示颜色的窗口,以及三个用于指定B、G、R颜色的跟踪栏。滑动轨迹栏,并相应地更改窗口颜色。默认情况下,初始颜色将设置为黑色。
两个相关的API:
1.cv2.createTrackbar(创建trackbar)
2.cv2.getTrackbarPos(获取trackbar的值)
对于 cv.getTrackbarPos() 函数,第一个参数是轨迹栏名称,第二个参数是它附加到的窗口名称,第三个参数是默认值,第四个参数是最大值,第五个是执行的回调函数每次跟踪栏值更改。回调函数始终具有默认参数,即轨迹栏位置。在我们的例子中,函数什么都不做,所以我们简单地通过。
代码:
python
import cv2
import numpy as np
# 创建窗口
cv2.namedWindow('trackbar', cv2.WINDOW_NORMAL)
# 创建图片, 大小为480*640 全黑
img = np.zeros((480,640,3), np.uint8)
# 创建三个trackbar 参数1:trackbar名称,参数2:窗口名称,参数3:初始值,参数4:最大值,参数5:回调函数
cv2.createTrackbar('R', 'trackbar', 0, 255, lambda x: None)
cv2.createTrackbar('G', 'trackbar', 0, 255, lambda x: None)
cv2.createTrackbar('B', 'trackbar', 0, 255, lambda x: None)
while True:
# 获取trackbar的值 参数1:trackbar名称,参数2:窗口名称
r = cv2.getTrackbarPos('R', 'trackbar')
g = cv2.getTrackbarPos('G', 'trackbar')
b = cv2.getTrackbarPos('B', 'trackbar')
# 设置图片颜色
img[:] = [b, g, r]
# 显示图片
cv2.imshow('trackbar', img)
key = cv2.waitKey(1)
if key & 0xFF == ord('q'):
break
cv2.destroyAllWindows()
执行后如图所示:

可以滑动试试,查看颜色变化。