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 条评论
登录 后参与评论

相关文章

来自专栏IMWeb前端团队

css中如何做到容器按比例缩放

本文作者:IMWeb 结一 原文出处:IMWeb社区 未经同意,禁止转载 在说容易按比例缩放前,我们先说下图片按比例缩放。 对于图片,默认只设置图片的...

2089
来自专栏Python攻城狮

HTML 5&CSS快速入门1.计算机中的文件2.网页组成4.HTML基础操作

超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。

983
来自专栏web编程技术分享

【大结局】《从案例中学习JavaScript》之酷炫音乐播放器(四)

3194
来自专栏木子昭的博客

让css3动画变得有趣wowjs

animate.css 包含了一组炫酷、有趣、跨浏览器的动画,可以在你的项目中直接使用。

743
来自专栏cnblogs

Css3新特性应用之过渡与动画

一、缓动效果 学习和利用贝塞尔曲线,默认支持ease,ease-in,ease-out,ease-in-out和linear等 还提供一个cubic-beize...

2427
来自专栏技术小黑屋

控制RecyclerView Item的宽度

自从Android中引入RecyclerView之后,它就逐步的替换掉了ListView和GridView。本文很简单,行文目的是记录和备忘。如果能帮到你,那再...

561
来自专栏IMWeb前端团队

CSS3的3D变换和动画

CSS3的3D变换 transform属性 attr des css level transform 向元素应用 2D 或 3D 转换。 3 ...

1856
来自专栏前端知识分享

第101天:CSS3中transform-style和perspective

1、transform-style属性是3D空间一个重要属性,指定嵌套元素如何在3D空间中呈现。

573
来自专栏mukekeheart的iOS之旅

Android layout属性大全

第一类:属性值 true或者 false  android:layout_centerHrizontal 水平居中         android:layo...

2219
来自专栏進无尽的文章

绘图-视图遮罩MaskView的使用

可以这样理解,是将maskView每个point的alpha赋值给View的重叠部分相对应的point,这样view的重叠每个point都有个alpha值了,v...

712

扫码关注云+社区