【OpenCv-Python】五、Trackbar as the Color Palette

标签: OpenCv Python 图像识别 调色板滑动条 OpenCv-python
64人阅读 评论(0) 收藏 举报
分类:

用滑动条做调色板

目标

5.1 代码示例

现在我们来创建一个简单的程:通过调节滑动条来设定画板颜色。我们要创建一个窗口来显示颜色,还有三个滑动条来设置B,G,R的颜色。当我们滑动滚动条时窗口的颜色也会发生相应改变。默认情况下,窗口的起始颜色为黑色。

cv2.getTrackbarPos()函数的一个参数时滑动条的名字,第二个参数时滑动条被放置窗口的名字,第三个参数时滑动条的默认位置,第四个参数是滑动条的最大值,第五个函数是回调函数,每次滑动条的滑动都会调用回调函数。回调函数通常会有一个默认参数,就是滑动条的位置。在本例子中函数不需要做任何事情,我们在函数中只写 pass 就可以了。

滑动条的另外一个重要应用就是用作转换按钮。默认情况下 OpenCv 本身不带有按钮函数。所以我们使用滑动条来代替。在我们的程序中,我们要创建一个转换按钮,只有当转换按钮只想ON时,滑动条才有用,否则窗口都是黑的。

import cv2
import numpy as np

def nothing(x):
    pass

# 创建一个黑色图像,一个名为‘image’的窗口
img = np.zeros((300,512,3), np.uint8)
cv2.namedWindow('image')

# 为每个颜色创建滑动条
cv2.createTrackbar('R','image',0,255,nothing)
cv2.createTrackbar('G','image',0,255,nothing)
cv2.createTrackbar('B','image',0,255,nothing)

# 创建一个转换按钮
switch = '0 : OFF \n1 : ON'
cv2.createTrackbar(switch, 'image',0,1,nothing)

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

    # get current positions of four trackbars
    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()

练习

1.结合上一节的知识,创建一个画板,可以选择各种颜色的画笔画各种图形。

查看评论

SEM实战教程(五)

-
  • 1970年01月01日 08:00

Palette颜色提取使用详解

摘要 如果你试过android Lollipop的sdk,你可能注意到了Palette。Palette从图像中提取突出的颜色,这样可以把色值赋给ActionBar、或者其他,可以让界面整个色调统一。 ...
  • sada09
  • sada09
  • 2015-01-11 22:21:03
  • 896

OpenCV-Python Trackbar

参考 Trackbar as the Color Palette 代码 import cv2 import numpy as np def nothing(x): p...
  • u010827085
  • u010827085
  • 2018-02-12 15:31:40
  • 19

Material Design设计之Palette调色板

Material Design设计之Palette调色板   Palette的作用是从图像中提取突出的颜色,这样我们可以根据提取到的色值把它赋给Toolbar,标题,状态栏等,可以使我们的整个界面色...
  • u010456903
  • u010456903
  • 2016-10-28 14:02:01
  • 950

C++/GDI+ 学习笔记(四)——实用技巧——调色板(ColorPalette)

在使用的过程中,遇到了这样的一个情况。维护很久前的一个项目的时候,想把之前的程序作成DLL。里面有一部分是描画一张8位DIB图片的,用的是纯C写的一段代码。可是在使用的时候发现,GDI+中由于使用了A...
  • eplanet
  • eplanet
  • 2008-01-30 11:06:00
  • 7115

216-Color Webmaster's Palette系列色板

  • 2011年12月19日 16:56
  • 1.05MB
  • 下载

android studio UI 通过material palette配置颜色

颜色配置网站:http://www.materialpalette.com/blue/deep-orange  colors.xml: xml version="1.0" encoding="...
  • sdsfs443
  • sdsfs443
  • 2016-08-05 12:50:44
  • 580

C#-TrackBar-RGB颜色窗体背景色,动态加载颜色效果,通过Trackbar设置,值255.---ShinePans

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin...
  • panshang1994
  • panshang1994
  • 2014-10-20 13:26:59
  • 2805

[Material Design]使用Palette类提取图片的颜色信息

在Material Design设计中很重要的一部分内容是应用中图片颜色和文字颜色需要和主题相匹配,比如下面在这个应用: 文本的颜色根据不同图片动态进行对应适配(也许你会说,如果全部用白...
  • hahashui123
  • hahashui123
  • 2015-07-17 17:00:56
  • 779

使用Palette来对图片进行颜色提取

使用Palette来对图片进行颜色提取Palette是Google在5.0中引入的来获取bitmap颜色值的一个工具类,为了兼容以前的版本,所以放在Support v7 Library中,在使用该类之...
  • u014697083
  • u014697083
  • 2017-04-27 14:32:37
  • 609
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 14万+
    积分: 3336
    排名: 1万+
    微信公众号
    课程设计、视频资源、有料趣文
    免费资源网站


    微信公众号:Worldhello
    期待您的关注!
    博客专栏
    最新评论