python Trackbar 作为调色板

优质
小牛编辑
152浏览
2023-12-01

目标

  • 学习将轨迹栏绑定到OpenCV窗口
  • 使用函数cv2.getTrackbarPos();cv2.creatTrackbar()

通过调节滑动条来设定画板颜色。

  • 1.1窗口显示颜色,三个滑动条来设置RGB的颜色
  • 1.2当滑动滑动条时,窗口颜色实时发生改变,默认窗口为黑色。
  • 1.3cv2.getTrackbarPos()参数详情:
  • 1.3.1滑动条的名字
  • 1.3.2滑动条被放置窗口的名字
  • 1.3.3滑动条默认的位置
  • 1.3.4滑动条最大的值
  • 1.3.5回调函数,每次滑动都会调用回调函数,回调函数通常都会含有一个默认参数,就是滑动条的位置。
  • 1.4滑动条的另一个应用就是用作转换按钮,默认OpenCV是不带有按钮函数的,这里以滑动条代替,需要先创建一个转换按钮,只有当转换按钮指向ON时滑动条才有用。
    
    import cv2
    import numpy as np
    def nothing(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) if k == ord('q'):#按q键退出 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[:]=[r,g,b]

cv2.destroyAllWindows()


![pytorch Trackbar作为调色板](https://www.xnip.cn/wp-content/uploads/2021/docimg15/5-qb3zbtzun33.jpg)