opencv学习——轨迹栏作为调色板

Posted 墨戈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv学习——轨迹栏作为调色板相关的知识,希望对你有一定的参考价值。

轨迹栏作为调色板

在这里,我们将创建一个简单的应用程序,以显示指定的颜色。有一个显示颜色的窗口,以及三个用于指定B、G、R颜色的轨迹栏。滑动轨迹栏,并相应地更改窗口颜色。默认情况下,初始颜色将设置为黑色。

对于cv.getTrackbarPos() 函数,第一个参数是轨迹栏名字,第二个参数是它附加到的窗口名,第三个参数是默认值,第四个是最大值,第五个是回调函数,滑条改变所执行的函数。这个回调函数也有一个默认参数,表示轨迹栏位置。我们并不关心函数做什么事,所以我们简单提一下。

轨迹栏的另一个重要应用是将其用作按钮或开关。默认情况下,OpenCV不具有按钮功能。因此,您可以使用轨迹栏获得此类功能。在我们的应用程序中,我们创建了一个开关,只有在该开关为ON的情况下,该应用程序才能在其中运行,否则屏幕始终为黑色。

import cv2
import numpy as np

def nothing(x):
    pass

#创建一个黑色的图像,一个窗口
img = np.zeros((512, 512, 3), np.uint8)

def cv_show(name, img, callback):
    cv2.namedWindow(name)
    #创建颜色变化的轨迹栏
    cv2.createTrackbar(\'R\', name, 0, 255, callback)
    cv2.createTrackbar(\'G\', name, 0, 255, callback)
    cv2.createTrackbar(\'B\', name, 0, 255, callback)
    #为ON/OFF功能创建开关
    switch = \'0 : OFF \\n 1 : ON\'
    cv2.createTrackbar(switch, name, 0, 1, callback)
    while(1):
        cv2.imshow(name, img)
        k = cv2.waitKey(1) & 0XFF
        if k == 27:
            break
        #得到四条轨迹的当前位置
        r = cv2.getTrackbarPos(\'R\', name)
        g = cv2.getTrackbarPos(\'G\', name)
        b = cv2.getTrackbarPos(\'B\', name)
        s = cv2.getTrackbarPos(switch, name)
        if s == 0:
            img[:] = 0
        else:
            img[:] = [b, g, r]
    cv2.destroyAllWindows()

cv_show(\'image\', img, nothing)

以上是关于opencv学习——轨迹栏作为调色板的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV竟然可以这样学!成神之路终将不远

26_滑动轨迹栏调色

Opencv:将使用视频的代码更改为使用轨迹栏进行颜色检测的图像

在opencv中对齐轨迹栏

Plotly:如何为使用多条轨迹创建的图形设置调色板?

无法在控制面板中创建轨迹栏。示例代码不起作用