OpenCV-7Trackbar用法

Trackbar是一个可以允许进行拖动的进条,可以通过鼠标控制其对应的值(例如下图三原色)

可以用来控制三原色,但不仅仅用来控制三原色。

OpenCV-7Trackbar用法_第1张图片

一.需要学习两个新的API:

1)createTrackbar(trackbarname, winname, value,count, onChange)用于创建Trackbar插件

trackbarname为创建的trackbar的名字  winname为trackbar创建在对应的窗口上

value为trackbar的默认值(即刚创建trackbar时对应的标点为为多少)

count为bar的最大值,最小值为0

onChange类似于上节课的callback(回调函数),即当拖动bar时数值发生了改变,此时你希望能触发一个函数做的事情

2)getTrackbarPos(trackbarname, winname)用于当拖动trackbar时,获取trackbar的当前值

二.代码展示如下:

cv2.resizeWindow("trackbar", 640, 480)   # 设置窗口大小

def callback(value):   # 创建回调函数
    print(value)


# 创建trackbar对象
cv2.createTrackbar("R", "trackbar", 0, 255, callback)
cv2.createTrackbar("G", "trackbar", 0, 255, callback)
cv2.createTrackbar("B", "trackbar", 0, 255, callback)

# 创建一张黑底图片
img = np.zeros((480, 360, 3), np.uint8)


while True:
    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(10)
    if key == ord("q"):
        break


cv2.destroyAllWindows()

三.运行结果如下:

OpenCV-7Trackbar用法_第2张图片

OpenCV-7Trackbar用法_第3张图片

当改变参数时,会打印对应的value值。

注意点:Pycharm中cv2.createTrackbar会显示不存在,此时忽略直接在其中填入参数即可。

你可能感兴趣的:(opencv,人工智能,计算机视觉)