【学习OpenCV4】滚动条Trackbar的创建与使用详解
Trackbar的使用方法
- 一、Trackbar的创建方法
- 1.1 createTrackbar
- 1.2 回调函数
- 二、使用Trackbar调节图片亮度
一、Trackbar的创建方法
1.1 createTrackbar
OpenCV中使用createTrackbar()
来创建滚动条,函数的使用方法如下:
createTrackbar(const String& trackbarname, const String& winname,int value, int count,TrackbarCallback onChange = 0,void userdata = 0);
位置 | 参数名 | 作用 |
---|---|---|
1 | trackbar name | 滚动条的名字 |
2 | winname | 绑定的窗口名字 |
3 | value | 滑块的初始位置 |
4 | count | 滑块的最大位置 |
5 | TrackbarCallback | 回调函数,拨动Trackbar返回的函数 |
6 | userdata | 用户传给回调函数的数据,不用默认为0 |
1.2 回调函数
第五个参数回调函数TrackbarCallback,是指拨动Trackbar会产生一个事件,系统会捕捉这个事件,然后发送给相应的处理者,因此需要定义一个函数进行相应的处理。回调函数的定义规范如下:
void callbackfunc(int value, void* userdata);
value传入的是滑块位置变量。
userdata是打包的其他数据,可以通过如结构体的方法打包数据发送给回调函数。当createTrackbar函数最后一个参数为0时表示不使用userdata,这时可以通过全局变量为回调函数传递数据。
二、使用Trackbar调节图片亮度
//部分代码
static void onTrack(int lightness, void* data) {Mat src = *(Mat*)data; //将void类型指针转换为Mat类型指针,然后再取数据Mat m = Mat::zeros(src.size(), src.type());Mat dst = Mat::zeros(src.size(), src.type());m = Scalar(lightness, lightness, lightness);add(src, m, dst);imshow("Change Lightness", dst);
}void MyDemo::checkBar_Demo(Mat& image) {namedWindow("Change Lightness", WINDOW_AUTOSIZE);int lightness = 50;int max_value = 100;createTrackbar("Value Bar", "Change Lightness", &lightness, max_value, onTrack,(void *)&image);//最后一个参数强制转换为void类型指针onTrack(lightness, &image);
}
【学习OpenCV4】滚动条Trackbar的创建与使用详解相关推荐
- Ext.Net学习笔记22:Ext.Net Tree 用法详解
上面的图片是一个简单的树,使用Ext.Net来创建这样的树结构非常简单,代码如下: <ext:TreePanel runat="server"><Root> ...
- python列表和元组的应用_python学习笔记之列表(list)与元组(tuple)详解
前言 最近重新再看python的基础知识,感觉自己还是对于这些知识很陌生,需要用的时候还是需要翻书查阅,还是先注重基础吧--我要重新把python的教程阅读一遍,把以前自己忽略的部分学习,加强练习和记 ...
- mount: 未知的文件系统类型“vboxsf”_好程序员云计算学习路线教程大纲课件:Mount 挂载详解...
好程序员云计算学习路线教程大纲课件:Mount 挂载详解: ====================================================================== ...
- 笔记 | 百度飞浆AI达人创造营:深度学习模型训练和关键参数调优详解
笔记 | 百度飞浆AI达人创造营:深度学习模型训练和关键参数调优详解 针对特定场景任务从模型选择.模型训练.超参优化.效果展示这四个方面进行模型开发. 一.模型选择 从任务类型出发,选择最合适的模型. ...
- 深度学习模型训练和关键参数调优详解
深度学习模型训练和关键参数调优详解 一.模型选择 1.回归任务 人脸关键点检测 2.分类任务 图像分类 3.场景任务 目标检测 人像分割 文字识别 二.模型训练 1.基于高层API训练模型 加载数据集 ...
- 【Azure 架构师学习笔记】-Azure Data Factory (4)-触发器详解-事件触发器
本文属于[Azure 架构师学习笔记]系列. 本文属于[Azure Data Factory]系列. 接上文[Azure 架构师学习笔记]-Azure Data Factory (3)-触发器详解-翻 ...
- 大数据单机学习环境搭建(5)Hive建表DDL详解
专题:大数据单机学习环境搭建和使用 1. Hive建表简单示例 1.1.Hive建表语句 1.2.表详细信息 1.3.数据展示 2. Hive建表语法详解 3.拓展1:复杂数据分割 4.拓展2:事务表 ...
- MybatisPlus学习(四)条件构造器Wrapper方法详解
https://www.cnblogs.com/xianz666/p/13857733.html MybatisPlus学习(四)条件构造器Wrapper方法详解 文章目录 1.条件构造器 2.Que ...
- java 控制jsp_JSP学习之Java Web中的安全控制实例详解
普通用户界面 修改登录的Servlet,修改后的代码如下: LoginProcess.java代码: package servlet; import javabean.User; import jav ...
最新文章
- Tomcat组成与工作原理
- 安装LPC55S69 MicroPython模块是遇到的CDC Interface驱动问题
- RUP大讲堂(第四讲)-业务建模技术实践
- Android 缓存目录 Context.getExternalFilesDir()和Context.getExternalCacheDir()方法
- vue脚手架中使用axios
- 通达学院计算机组成原理试卷及答案,2021全国网络工程专业大学排名(5篇)
- 怎样才干成为一名优秀的软件測试人员
- MySQL information_schema 系统库介绍
- primefaces教程_Primefaces BlockUI组件示例教程
- Lesson 07 for Plotting in R for Biologists
- 直接插入排序-java
- 快递单号查询国外公司编码汇总_快递鸟
- 响应式web开发 许愿墙
- python如何读取文件数据恢复_如何找回丢失的文件数据
- DNS域传送漏洞(CVE-2015-5254)
- 看不见世界的程序员,开发了一款“吃鸡”
- chrome浏览器关闭更新弹窗
- Freeswitch智能语音开发之TTS
- 数学建模学习17(最短距离、BP神经网络)
- 用html js制作迷宫,JavaScript生成随机迷宫详解