【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()

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

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

在这里插入图片描述

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/25287.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win10文件夹.git或者文件被隐藏的开启姿势

按需排查,有的文件隐藏是好事 基本操作更多操作某些系统设置的隐藏操作在idea或者pycharm项目中显示.git文件夹 基本操作 文件夹-> 查看 -> 隐藏的项目点亮 更多操作 文件夹 -> 查看 -> 选项 -> 查看 -> 高级设置 -> 文件和文件夹 -> 隐…

服务器部署spring项目jar包使用bat文件,省略每次输入java -jar了

echo off set pathC:\Program Files\Java\jre1.8.0_191\bin START "YiXiangZhengHe-8516" "%path%/java" -Xdebug -jar -Dspring.profiles.activeprod -Dserver.port8516 YiXiangZhengHe-0.0.1-SNAPSHOT.jar 将set path后面改成jre的bin文件夹 START 后…

knoXSS(case01~10)

case 01: 先在每个框里都输入:<script>alert(1)</script> 检查源码 这里第三个和第四个点都被处理过了&#xff0c;所以先考虑第一个和第二个点 这里试了一下&#xff0c;发现GET也能传参&#xff0c;所以构造 成功 case 02: 这里发现变量a和这个似乎有关联&…

专业学习|南开大学《随机过程》学习笔记(一)

&#xff08;1&#xff09;有哪些经典的关于基本随机过程的书籍推荐&#xff1f; 对于想要系统学习基本随机过程的学生来说&#xff0c;可以参考Sheldon M.Rose编著的经典著作《随机过程》。该书涉及的内容也比较宽泛。但并不局限于单个细节论证。 此外&#xff0c;萨缪尔科林(…

嵌入式学习——Linux高级编程复习(标准IO)——day36

1. 标准IO概念——&#xff08;有缓存、流指针&#xff09; &#xff08;1&#xff09;标准IO是编程语言中处理输入和输出的一种通用方法&#xff0c;涉及以下三个预定义的文件指针&#xff1a; 1. stdin&#xff1a;标准输入&#xff0c;通常默认关联到键盘输入。 2. stdout&…

抓住时机的核心:坚持学习准备着

在这个快节奏的时代&#xff0c;时间对于每个人来说都是宝贵的。能否在合适的时间做正确的事情&#xff0c;往往决定了我们成功的概率。但同时&#xff0c;我们也要认识到&#xff0c;逆风翻盘虽少&#xff0c;却并非不可能。在这个过程中&#xff0c;投资自己&#xff0c;投资…

LabVIEW与Python的比较及联合开发

LabVIEW和Python在工业自动化和数据处理领域各具优势&#xff0c;联合开发可以充分发挥两者的优点。本文将从语言特性、开发效率、应用场景等多个角度进行比较&#xff0c;并详细介绍如何实现LabVIEW与Python的联合开发。 语言特性 LabVIEW 图形化编程&#xff1a;LabVIEW使用…

【数据结构】队列的应用(详解)

目录 0 引言 1 打印机任务队列 2 广度优先搜索&#xff08;BFS&#xff09; 3 总结 0 引言 队列&#xff08;Queue&#xff09;是一种先进先出&#xff08;FIFO&#xff09;的数据结构&#xff0c;它允许在尾部添加元素&#xff08;入队操作&#xff09;&#xff0c;并…

三维地图Cesium,加载一个模型,模型沿着给定的一组经纬度路线移动

目录 实现效果 实现思路 功能点 选择移动路线 加载模型和移动路线 重新运行 指定位置(经纬度点)开始移动 视角切换 到站提示 运行 停止 联动接口 完整代码 html js逻辑 trainOperation.js sourceData.js gitee仓库项目代码 疑问解答 实现效果 三维地图Cesiu…

CopyOnWriteArrayList详解

目录 CopyOnWriteArrayList详解1、CopyOnWriteArrayList简介2、如何理解"写时复制"3、CopyOnWriteArrayList的继承体系4、CopyOnWriteArrayList的构造函数5、CopyOnWriteArrayList的使用示例6、CopyOnWriteArrayList 的 add方法7、CopyOnWriteArrayList弱一致性的体现…

LeetCode790多米诺和托米诺平铺

题目描述 有两种形状的瓷砖&#xff1a;一种是 2 x 1 的多米诺形&#xff0c;另一种是形如 “L” 的托米诺形。两种形状都可以旋转。给定整数 n &#xff0c;返回可以平铺 2 x n 的面板的方法的数量。返回对 109 7 取模 的值。平铺指的是每个正方形都必须有瓷砖覆盖。两个平铺…

Android基础-binder机制

一、引言 在Android系统中&#xff0c;进程间的通信&#xff08;IPC&#xff09;是一个至关重要的概念。不同于传统操作系统中的进程间通信方式&#xff0c;如管道、消息队列、信号量、共享内存等&#xff0c;Android采用了独特的Binder机制来实现进程间的通信。Binder机制不仅…

Qt 读取excel文件

在Qt中&#xff0c;你可以使用QtXlsxWriter库来对Excel文件进行操作。QtXlsxWriter是一个开源库&#xff0c;用于在Qt应用程序中生成和编辑Excel文件。以下是如何使用QtXlsxWriter库在Qt中对Excel文件进行操作的步骤&#xff1a; 添加QtXlsxWriter库到你的Qt项目中。可以通过在…

先进封装技术的一些优缺点探讨

半导体封装技术是半导体制造过程中的关键环节&#xff0c;它不仅保护了芯片免受物理损伤&#xff0c;还提供了电气连接和散热功能。随着技术的发展&#xff0c;出现了多种先进的封装技术&#xff0c;每种技术都有其特定的应用场景和优缺点。 --> 1. 传统封装技术 【优点】&…

【SpringBoot + Vue 尚庭公寓实战】根据类型查询标签列表接口实现(五)

【SpringBoot Vue 尚庭公寓实战】根据类型查询标签列表接口实现&#xff08;五&#xff09; 文章目录 【SpringBoot Vue 尚庭公寓实战】根据类型查询标签列表接口实现&#xff08;五&#xff09;1、查看接口2、进行开发 1、查看接口 启动项目 访问&#xff1a;http://localho…

macOS优化工具CleanMyMac2024免费版电脑性能提升 存储空间释放 电脑维护 高效易用 延长电脑使用寿命

【CleanMyMac】是一款专为macOS系统设计的优化和清理软件&#xff0c;它的核心特性就是帮助我们提升电脑性能&#xff0c;释放存储空间。&#x1f680; CleanMyMac绿色免费版下载如下&#xff1a;记得保存哈&#xff0c;以防失效&#xff1a; https://pan.quark.cn/s/9b08114…

实战分析Java的异步编程,并通过CompletableFuture进行高效调优

一、写在开头 在我们一开始讲多线程的时候,提到过异步与同步的概念,这里面我们再回顾一下: 同步:调用方在调用某个方法后,等待被调用方返回结果;调用方在取得被调用方的返回值后,再继续运行。调用方顺序执行,同步等待被调用方的返回值,这就是阻塞式调用;异步:调用方…

HTML标签 label for 还是 htmlFor

文章目录 问题结论更多 问题 HTML标签&#xff1a; label 的属性 for 还是 htmlFor&#xff1f; MDN文档&#xff1a;https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label 结论 for 和 htmlFor 都可以使用&#xff0c;都是对的。在部分情况中&#xff0c;只能…

【React】Redux与React - 环境准备

配套工具 在React中使用redux&#xff0c;官方要求安装俩个其他插件 - Redux Toolkit 和 react-redux 配置基础环境 使用 CRA 快速创建 React 项目 npx create-react-app react-redux安装配套工具 npm i reduxjs/toolkit react-redux启动项目 npm run start

计算机网络复习题

期末题库复习1 一. 单选题&#xff08;共32题&#xff0c;100分&#xff09; 1. (单选题) 在脉冲起始时刻&#xff0c;有无跳变来表示“0”和“1”&#xff0c;且在脉冲中间时刻始终发生跳变的编码是&#xff08; &#xff09;。 A.非归零码 B.曼彻斯特编码 C.归零码 D.差…