0

0

如何使用OpenCV Python创建一个RGB颜色调色板的滑动条?

WBOY

WBOY

发布时间:2023-08-30 16:33:01

|

900人浏览过

|

来源于tutorialspoint

转载

opencv中,可以使用 cv2.reatetrackbar()函数创建轨迹栏。要访问所选轨迹栏位置的值,我们使用 cv2.gettrackbarpos() 函数。

使用这两个函数,我们创建一个包含 R、G、B 颜色的跟踪栏的窗口和一个用于显示所选颜色的颜色窗口。通过改变轨迹条的位置RGB颜色在0255之间变化。请参阅以下这两个函数的语法。

语法

cv2.createTrackbar(trackbar_name, window_name, default_value, max_value, callback_func)
cv2.getTrackbarPos(trackbar_name, window_name)

参数

  • trackbar_name - 这是轨迹栏名称。该名称用于访问轨迹栏位置值。

  • window_name - 这是跟踪栏所附加的窗口的名称。

  • default_value - 为轨迹栏设置的默认值。

    立即学习Python免费学习笔记(深入)”;

  • max_value - 轨迹栏的最大值。

  • callback_func - 当轨迹栏值更改时执行的函数。

步骤

要创建一个RGB调色板的轨迹栏,可以按照下面给出的步骤操作 -

第一步是导入所需的库。所需的 Python 库是 OpenCV NumPy。确保您已经安装了它们。

import cv2
import numpy as np

接下来,定义一个回调函数。它将轨迹栏位置作为默认参数。我们定义这个函数不执行任何操作。

def nothing(x):
   pass

定义黑色图像并创建一个名为Trackbar Color Palette的窗口。轨迹栏和颜色将显示在此窗口中。

img = np.zeros((300,650,3), np.uint8)
window_name = 'Trackbar Color Palette'
cv2.namedWindow(window_name, cv2.WINDOW_AUTOSIZE)

通过所有五个参数创建用于颜色更改的轨迹栏。轨迹栏值的范围在 0 到 255 之间。

cv2.createTrackbar('R',window_name,0,255,nothing)
cv2.createTrackbar('G',window_name,0,255,nothing)
cv2.createTrackbar('B',window_name,0,255,nothing)

获取所有三种 RGB 颜色的当前轨迹栏位置。

r = cv2.getTrackbarPos('R',window_name)
g = cv2.getTrackbarPos('G',window_name)
b = cv2.getTrackbarPos('B',window_name)

更新上述颜色的彩色图像窗口。

Tellers AI
Tellers AI

Tellers是一款自动视频编辑工具,可以将文本、文章或故事转换为视频。

下载
img[:] = [b,g,r]

现在在颜色窗口中显示所选轨迹栏值的颜色。

while(True):
   cv2.imshow(window_name,img)
   k = cv2.waitKey(1) & 0xFF
   if k == ord('q'):
      break

示例 1

在下面的Python程序中,我们创建一个窗口作为调色板。我们为 R、G 和 B 颜色创建了三个轨迹栏。滑动滑动条即可在颜色窗口中显示相应的颜色。

# import required libraries
import cv2
import numpy as np

def nothing(x):
   pass
   
# Create a black image, and the window
img = np.zeros((300,650,3), np.uint8)
window_name = 'Trackbar Color Palette'
cv2.namedWindow(window_name, cv2.WINDOW_AUTOSIZE)

# create trackbars for color change
cv2.createTrackbar('R',window_name,0,255,nothing)
cv2.createTrackbar('G',window_name,0,255,nothing)
cv2.createTrackbar('B',window_name,0,255,nothing)
while(True):
   cv2.imshow(window_name,img)
   k = cv2.waitKey(1) & 0xFF
   if k == ord('q'):
      break
      
   # get current positions of four trackbars
   r = cv2.getTrackbarPos('R',window_name)
   g = cv2.getTrackbarPos('G',window_name)
   b = cv2.getTrackbarPos('B',window_name)
   img[:] = [b,g,r]
 cv2.destroyAllWindows()

输出

当您运行上述程序时,您将看到以下输出窗口。要关闭输出窗口,请按“q”按钮。

如何使用OpenCV Python创建一个RGB颜色调色板的滑动条?

所有三个轨迹栏的默认值均为零,窗口的颜色为黑色。滑动滑动条即可在颜色窗口中看到相应的颜色。

示例 2

在此程序中,我们创建一个窗口作为带有切换按钮的调色板。

我们创建了四个轨迹栏,三个用于 R、G、B 颜色,一个用于切换按钮。

开关按钮为ON时,则仅显示颜色窗口中的颜色。滑动滑动条,颜色窗口中就会显示相应的颜色。

import cv2
import numpy as np

def nothing(x):
   pass
   
# Create a black image, a window
img = np.zeros((300,650,3), np.uint8)
window_name = 'Trackbar Color Palette'
cv2.namedWindow(window_name, cv2.WINDOW_AUTOSIZE)

# create trackbars for color change
cv2.createTrackbar('R',window_name,0,255,nothing)
cv2.createTrackbar('G',window_name,0,255,nothing)
cv2.createTrackbar('B',window_name,0,255,nothing)

# create switch for ON/OFF functionality
# switch = '0 : OFF \n1 : ON'
cv2.createTrackbar("switch", window_name,0,1,nothing)
while(True):
   cv2.imshow(window_name,img)
   key = cv2.waitKey(1) & 0xFF
   if key == ord('q'):
      break
      
   # get current positions of four trackbars
   r = cv2.getTrackbarPos('R',window_name)
   g = cv2.getTrackbarPos('G',window_name)
   b = cv2.getTrackbarPos('B',window_name)
   s = cv2.getTrackbarPos("switch",window_name)
   if s == 0:
      img[:] = 0
   else:
      img[:] = [b,g,r]
cv2.destroyAllWindows()

输出

当您运行上面的程序时,它将显示以下输出窗口。要关闭输出窗口,请按“q”按钮。

如何使用OpenCV Python创建一个RGB颜色调色板的滑动条?

所有轨迹栏的默认值为0。窗户的颜色是黑色。当您打开开关(选择1)并将RGB颜色滑块滑动到所需的值时,颜色窗口将显示相应的颜色。

如果在开关关闭(设置为 0)时滑动滑动条,则窗口的颜色不会发生变化。它将保持原样(即黑色)。

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
云朵浏览器入口合集
云朵浏览器入口合集

本专题整合了云朵浏览器入口合集,阅读专题下面的文章了解更多详细地址。

0

2026.01.20

Java JVM 原理与性能调优实战
Java JVM 原理与性能调优实战

本专题系统讲解 Java 虚拟机(JVM)的核心工作原理与性能调优方法,包括 JVM 内存结构、对象创建与回收流程、垃圾回收器(Serial、CMS、G1、ZGC)对比分析、常见内存泄漏与性能瓶颈排查,以及 JVM 参数调优与监控工具(jstat、jmap、jvisualvm)的实战使用。通过真实案例,帮助学习者掌握 Java 应用在生产环境中的性能分析与优化能力。

20

2026.01.20

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

62

2026.01.19

java用途介绍
java用途介绍

本专题整合了java用途功能相关介绍,阅读专题下面的文章了解更多详细内容。

87

2026.01.19

java输出数组相关教程
java输出数组相关教程

本专题整合了java输出数组相关教程,阅读专题下面的文章了解更多详细内容。

39

2026.01.19

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

10

2026.01.19

xml格式相关教程
xml格式相关教程

本专题整合了xml格式相关教程汇总,阅读专题下面的文章了解更多详细内容。

13

2026.01.19

PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

19

2026.01.19

微信聊天记录删除恢复导出教程汇总
微信聊天记录删除恢复导出教程汇总

本专题整合了微信聊天记录相关教程大全,阅读专题下面的文章了解更多详细内容。

160

2026.01.18

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号