Python-OpenCV(2)

这次咱们写个有点意思的东西,上个博客在最后写了画线、画矩形之类的,涉及到取颜色(r g b值),这次咱们就写个图形化的调色板。 具体就是: 三个滑动条分别代表R、G、B的值,下方有个矩形区域,显示颜色

cv2.createTrackbar(trackbarName, windowName, value, count, onChange) # 创建滑动条 cv2.getTrackbarPos(trackbarname, winname) # 获取滑动条的值

其中的参数含义相信大家看名字就能明白了,不多说了

代码:

__author__ = 'gavinzhou'
# -*- coding: utf-8 -*-

import cv2
import numpy as np


def recall_nothing():
    """
    回调函数,我们不做任何事情所以直接pass
    :return:
    """
    pass


# 创建一幅三通道的图
image = np.zeros((300, 500, 3), dtype=np.uint8)
cv2.namedWindow('Image')

# 创建滑动条
cv2.createTrackbar('R', 'Image', 0, 255, recall_nothing)
cv2.createTrackbar('G', 'Image', 0, 255, recall_nothing)
cv2.createTrackbar('B', 'Image', 0, 255, recall_nothing)

# 创建开关(0表示关闭RGB的调色效果,此时效果为黑)
switch = '0:OFF\n1:ON'
cv2.createTrackbar(switch, 'Image', 0, 1, recall_nothing)


while 1:
    cv2.imshow('Image', image)
    key = cv2.waitKey(1) & 0xFF
    if key == 27:
        # 'ESC键代表退出'
        break
    # 获得各个滑动条的值
    r = cv2.getTrackbarPos('R', 'Image')
    g = cv2.getTrackbarPos('G', 'Image')
    b = cv2.getTrackbarPos('B', 'Image')
    s = cv2.getTrackbarPos(switch, 'Image')

    # 显示
    if s == 0:
        # 开关关闭,显示全黑
        image[:] = 0
    else:
        # 对于彩色图像(RGB),OpenCV按照BGR来显示,Matplotlib按照RGB来显示
        image[:] = [b, g, r]

结果是:

可以使用,OK的!!

对于这部分大家有兴趣的可以看看OpenCV中的事件及回调函数,百度下关键字,就能找到更多的资源和教程。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏GIS讲堂

jquery判断一个div的边界是否超出另外一个div的边界

摘要:本文简单介绍jquery判断一个div的边界是否超出另外一个div的边界,如果超出边界做出相应的处理。

934
来自专栏人工智能

如何在Weka中加载CSV机器学习数据

原文地址:https://machinelearningmastery.com/load-csv-machine-learning-data-weka/

49910
来自专栏ytkah

css自动换行如何设置?url太长会撑开页面

  我们更新文章时如果有引用其他文章一般会带一个原文url,但这个链接如果太长的话会把内容的版块撑开,整个排版乱了。那我们能不能设置css自动换行呢?如下图所示...

2745
来自专栏阿炬.NET

FineUIMvc表格数据库分页,使用CYQ.Data组件

4118
来自专栏AI研习社

如何使用 OpenCV 编写基于 Node.js 命令行界面和神经网络模型的图像分类

如何使用 OpenCV 编写基于 Node.js 命令行界面和神经网络模型的图像分类

1265
来自专栏阿炬.NET

FineUIMvc表格数据库分页,使用CYQ.Data组件

1224
来自专栏游戏杂谈

Unity插件扩展中组件常用的几个方法

最近为美术编写一个Unity编辑器的扩展,主要为了减轻美术在修改预制对象时的机械化操作的繁琐和出错。具体实现的几个功能:

2041
来自专栏ionic3+

【组件篇】ionic3均分列等宽高图像显示(上)

我在《ionic3开源组件》提到了图片选择组件,但是后来发现其实现功能很简单,而且我不喜欢它写死了宽高大小,这对于不同分别率不太友好。于是尝试实现了一下,先上效...

745
来自专栏木头编程 - moTzxx

PHP 自定义图片的生成与保存实例讲解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

1923
来自专栏生信宝典

R语言学习 - 热图绘制 (heatmap)

热图绘制 热图是做分析时常用的展示方式,简单、直观、清晰。可以用来显示基因在不同样品中表达的高低、表观修饰水平的高低等。任何一个数值矩阵都可以通过合适的方式用热...

8278

扫码关注云+社区