【python】OpenCV GUI——Trackbar(14.2)

2024-06-09 22:20
文章标签 python opencv gui 14.2 trackbar

本文主要是介绍【python】OpenCV GUI——Trackbar(14.2),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

学习来自 OpenCV基础(12)OpenCV GUI中的鼠标和滑动条

文章目录

  • GUI 滑条介绍
  • cv2.createTrackbar 介绍
  • 牛刀小试

GUI 滑条介绍

GUI滑动条是一种直观且快速的调节控件,主要用于改变一个数值或相对值。以下是关于GUI滑动条的详细介绍:

一、功能和应用:

滑动条可应用于多种调节功能中,如温度、音量、亮度等。

它允许用户通过拖动滑块来改变一个数值或相对值,从而实现对某个参数或设置的快速调整。

二、类型:

滑动条有垂直(JScrollBar.VERTICAL)和水平(JScrollBar.HORIZONTAL)两种类型,分别用于垂直和水平方向的数值调节。

三、范围设置:

滑动条具有可自定义的最大值和最小值。例如,在MATLAB GUI编程中,可以通过设置滑动条的“min”和“max”属性来定义其范围。

四、显示与交互:

滑动条通常与文本框或其他显示控件结合使用,以便用户能够直观地看到当前的数值或相对值。

当用户拖动滑块时,滑动条会触发一个回调函数(Callback),该函数可以获取滑动条的当前值,并根据需要进行相应的处理或显示。

五、自定义:

滑动条的外观和行为可以通过多种属性进行自定义,如滑块的颜色、大小、形状等。
在某些GUI设计工具中,还可以为滑动条添加自定义的图片或图标,以提供更好的用户体验。

六、编程实现:

在编程实现GUI滑动条时,通常需要创建一个滑动条控件,并设置其属性(如范围、初始值等)。

然后,需要编写一个回调函数来处理滑动条的事件(如用户拖动滑块)。在回调函数中,可以获取滑动条的当前值,并更新其他控件的显示或执行相应的操作。

七、示例:

例如,在MATLAB GUI编程中,可以使用App Designer或GUIDE等工具来创建滑动条控件。然后,通过双击滑动条来查看其属性并设置范围等参数。接下来,可以编写一个回调函数来获取滑动条的当前值,并将其显示在文本框中或用于其他计算和操作。

八、总结:

GUI滑动条是一种功能强大且易于使用的控件,它允许用户通过拖动滑块来快速改变一个数值或相对值。通过合理的设计和编程实现,滑动条可以为用户提供直观、便捷的交互体验。

cv2.createTrackbar 介绍

cv2.createTrackbar 是 OpenCV-Python 中用于在窗口中创建滑动条(Trackbar)的函数。以下是对 cv2.createTrackbar 函数的中文文档说明:

一、函数原型

cv2.createTrackbar(trackbarName, windowName, value, count, onChange=None, userdata=None)

二、参数说明

trackbarName (str): 滑动条的名称。

windowName (str): 滑动条所附着的窗口的名称。

value (int): 滑动条的默认值(整数类型)。创建时,滑块位置由此变量定义。

count (int): 滑动条的最大值。注意,滑动条的最小位置始终为 0。

onChange (callable, optional): 回调函数,每次滑动都会调用该函数。该函数通常都会含有一个默认参数,即滑动条的位置。如果未提供,则默认为 None。

userdata (any, optional): 按原样传递到回调函数的用户数据。它可用于处理跟踪条事件,而无需使用全局变量。如果未提供,则默认为 None。

三、返回值
该函数没有返回值。

牛刀小试

输入图片

在这里插入图片描述
实现根据滑动条来缩放图片

1/2 至 2 倍之间

import cv2maxScaleUp = 150
scaleFactor = 1
windowName = "Resize Image"
trackbarValue = "Scale"  # 滑动条的名字# 读取图片
image = cv2.imread("1.jpg")# 创建一个显示结果的窗口,并将标志设置为“cv2.WINDOW_AUTOSIZE”
cv2.namedWindow(windowName, cv2.WINDOW_AUTOSIZE)# 回调函数
def scaleImage(*args):# 从滑动条得到比例因子scaleFactor = 0.5 + args[0]/100.0# 调整图像大小scaledImage = cv2.resize(image, None, fx=scaleFactor, fy= scaleFactor, interpolation=cv2.INTER_LINEAR)cv2.imshow(windowName, scaledImage)# 创建滑动条并关联回调函数
cv2.createTrackbar(trackbarValue, windowName, scaleFactor, maxScaleUp, scaleImage)# 显示图像
cv2.imshow(windowName, image)
c = cv2.waitKey(0)
cv2.destroyAllWindows()

初始化到时候,为原图
在这里插入图片描述

拖动到最小,为原图的一半

在这里插入图片描述

拖拽到最大,为原图的两倍

在这里插入图片描述

这篇关于【python】OpenCV GUI——Trackbar(14.2)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1046456

相关文章

Python中Json和其他类型相互转换的实现示例

《Python中Json和其他类型相互转换的实现示例》本文介绍了在Python中使用json模块实现json数据与dict、object之间的高效转换,包括loads(),load(),dumps()... 项目中经常会用到json格式转为object对象、dict字典格式等。在此做个记录,方便后续用到该方

从基础到高级详解Python数值格式化输出的完全指南

《从基础到高级详解Python数值格式化输出的完全指南》在数据分析、金融计算和科学报告领域,数值格式化是提升可读性和专业性的关键技术,本文将深入解析Python中数值格式化输出的相关方法,感兴趣的小伙... 目录引言:数值格式化的核心价值一、基础格式化方法1.1 三种核心格式化方式对比1.2 基础格式化示例

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

Python ORM神器之SQLAlchemy基本使用完全指南

《PythonORM神器之SQLAlchemy基本使用完全指南》SQLAlchemy是Python主流ORM框架,通过对象化方式简化数据库操作,支持多数据库,提供引擎、会话、模型等核心组件,实现事务... 目录一、什么是SQLAlchemy?二、安装SQLAlchemy三、核心概念1. Engine(引擎)

Ubuntu如何升级Python版本

《Ubuntu如何升级Python版本》Ubuntu22.04Docker中,安装Python3.11后,使用update-alternatives设置为默认版本,最后用python3-V验证... 目China编程录问题描述前提环境解决方法总结问题描述Ubuntu22.04系统自带python3.10,想升级

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模