【Opencv-Python 官方教程】5.Trackbar调色板

本节目标

  • 学会在opencv的显示窗口中绑定trackbar
  • 将会学到以下几个函数:cv2.getTrackbarPos(), cv2.createTrackbar()

原文地址:Trackbar as the Color Palette


Demo

我们将会建立一个简单的应用,显示我们指定的颜色。将会建立一个窗口,显示三个trackbar指定RGB三个颜色通道值。可以滑动trackbar来改变相应的颜色。默认情况下,初始颜色为黑色。

cv2.getTrackbarPos()函数,第一个参数为trackbar名称,第二个参数为window的名称以指定该trackbar将会绑定到哪个窗口。第三个参数为trackbar的初始默认值,第四个参数为最大值,第五个参数为trackbar的回调函数(callback function),每一次trackbar值发生改变都会自动调用其指定的callback。callback函数中由默认由一个获取当前trackbar值得参数。本例中,我们的callback并没有什么操作。

trackbar的另一个重要的应用是用作开关或按钮。opencv默认并没有button功能。所以你可以使用trackbar实现按钮的功能,在我们的应用中,我们创建了一个开关(switch),我们的demo仅在swith为on的时候工作。

代码如下

import cv2
import numpy as np

def nothing(x):
    pass

# 创建一个黑色背景图和一个窗口
img = np.zeros((300,512,3), np.uint8)
cv2.namedWindow('image')

# 创建3个trackbar
cv2.createTrackbar('R','image',0,255,nothing)
cv2.createTrackbar('G','image',0,255,nothing)
cv2.createTrackbar('B','image',0,255,nothing)

# 用trackbar创建一个开关
switch = r'0 : OFF \n 1 : ON'
cv2.createTrackbar(switch, 'image',0,1,nothing)

while(1):
    cv2.imshow('image',img)
    k = cv2.waitKey(1)
    if k == 27:
        break

    # 获取当前trackbar的位置(值)
    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[:] = [b,g,r]

cv2.destroyAllWindows()

实验图如下

这里写图片描述

猜你喜欢

转载自blog.csdn.net/u013095718/article/details/80658117