zoukankan      html  css  js  c++  java
  • 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)
    

    image

  • 相关阅读:
    迅雷极速版 2020年 防止升级方法
    微PE WEPEMENU.INI CDLINUX BEINI 启动菜单
    tcping 0.39
    海康威视楼宇可视对讲解码器拨码规则计算器-安卓版
    博客园-文字互动插件
    WSL-Ubuntu 安装Xubuntu-Desktop 记录
    html css的冷门相关基础知识整理
    git hub 的冲突解决方案
    css实现垂直居中的方式
    js中BOM相关知识
  • 原文地址:https://www.cnblogs.com/mogebw/p/15684090.html
Copyright © 2011-2022 走看看