OPENCV FOR PYTHON 学习笔记 - 滑动条

import numpy as np
import cv2 as cv
#滑动条做调色板

def nothing(x):
    pass
#创建一幅黑色图像
img = np.zeros((512,512,3),np.uint8)
cv.namedWindow('img')

'''
createTrackbar() 这个函数用于创建一个可以调整数值的滑动条,并将滑动条附加到指定的窗口上。
参数1 trackbarname:跟踪栏名称,创建的轨迹栏的名称。
参数2 Winname:窗口的名字,表示这个轨迹条会依附到哪个窗口上,即对应namedWindow()创建窗口时填的窗口名。 
参数3 value:指向整数变量的可选指针,该变量的值反映滑块的初始位置。
参数4 count:表示滑块可以达到的最大位置的值,最小位置始终为0。
参数5 onChange:指向每次滑块更改位置时要调用的函数的指针,有默认值0。此函数的原型应为void XXX (int, void *); ,其中第一个参数是轨迹栏位置,第二个参数是用户数据(请参阅下一个参数)。如果回调是NULL指针,则不调用任何回调,而仅更新值。
'''
cv.createTrackbar('R','img',0,255,nothing)
cv.createTrackbar('G','img',0,255,nothing)
cv.createTrackbar('B','img',0,255,nothing)

switch = '0:OFF\n1:ON'
cv.createTrackbar(switch,'img',0,1,nothing)

while(1):
    cv.imshow('img',img)
    k = cv.waitKey(1)&0xFF
    if k == ord('q'):
        break
    r = cv.getTrackbarPos('R','img')
    g = cv.getTrackbarPos('G','img')
    b = cv.getTrackbarPos('B','img')
    s = cv.getTrackbarPos(switch,'img')
    if s == 0:
        img[:]=0
    else:
        img[:]=[b,g,r]

cv.destroyAllWindows()

  

posted @ 2021-08-18 15:04  HappyChen2016  阅读(29)  评论(0编辑  收藏  举报