OpenCV学习——实现滑动条式调色板

本文介绍如何利用OpenCV中的滑动条实现RGB颜色调节,通过创建滑动条来控制红、绿、蓝三原色的值,并根据滑动条位置实时更新窗口颜色。文中提供了一个示例代码,展示了如何使用cv2.createTrackbar和cv2.getTrackbarPos函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过滑动条来控制R、G、B这3个颜色的值,从而调配出各种颜色。滑动条式调色板的目标有以下两个:

  • 窗口显示颜色,3个滑动条来设置R、G、B的值;

  • 当滑动滑动条时,窗口颜色实时发生改变,默认窗口为黑色。

这个过程涉及两个函数:cv2.createTrackbar 函数和 cv2.getTrackbarPos 函数。 cv2.createTrackbar 函数的作用是创建一个滑动条, cv2.getTrackbarPos 函数的作用是调用回调函数去接收指定滑动条的值。

cv2.createTrackbar 函数的语法如下:

cv2.createTrackbar(Track_name, img, min, max, TrackbarCallback)
- Track_name:滑动条的名字。
- img:滑动条所在画布。
- min:滑动条的最小值。
- max:滑动条的最大值。
- TrackbarCallback:滑动条的回调函数。

cv2.getTrackbarPos 函数的语法如下:

cv2.getTrackbarPos(Track_name, img)
- Track_name:滑动条的名字。
- img:滑动条所在画布。
函数返回值是滑动条当前所在的位置。

示例:滑动条控制的不只有R、G、B的值,还有一个使能端用于控制是否需要改变值。OpenCV中没有按钮,所以需要设置一个滑动条,它的值是0或1,当使能端值为1时,画布才会发生变化。

import cv2
import numpy as np


def nothing(x):
    # 回调函数
    pass


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)
    if k == ord('q'):
        break
    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()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笨小古

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值