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的创建与使用详解相关推荐

  1. Ext.Net学习笔记22:Ext.Net Tree 用法详解

    上面的图片是一个简单的树,使用Ext.Net来创建这样的树结构非常简单,代码如下: <ext:TreePanel runat="server"><Root> ...

  2. python列表和元组的应用_python学习笔记之列表(list)与元组(tuple)详解

    前言 最近重新再看python的基础知识,感觉自己还是对于这些知识很陌生,需要用的时候还是需要翻书查阅,还是先注重基础吧--我要重新把python的教程阅读一遍,把以前自己忽略的部分学习,加强练习和记 ...

  3. mount: 未知的文件系统类型“vboxsf”_好程序员云计算学习路线教程大纲课件:Mount 挂载详解...

    好程序员云计算学习路线教程大纲课件:Mount 挂载详解: ====================================================================== ...

  4. 笔记 | 百度飞浆AI达人创造营:深度学习模型训练和关键参数调优详解

    笔记 | 百度飞浆AI达人创造营:深度学习模型训练和关键参数调优详解 针对特定场景任务从模型选择.模型训练.超参优化.效果展示这四个方面进行模型开发. 一.模型选择 从任务类型出发,选择最合适的模型. ...

  5. 深度学习模型训练和关键参数调优详解

    深度学习模型训练和关键参数调优详解 一.模型选择 1.回归任务 人脸关键点检测 2.分类任务 图像分类 3.场景任务 目标检测 人像分割 文字识别 二.模型训练 1.基于高层API训练模型 加载数据集 ...

  6. 【Azure 架构师学习笔记】-Azure Data Factory (4)-触发器详解-事件触发器

    本文属于[Azure 架构师学习笔记]系列. 本文属于[Azure Data Factory]系列. 接上文[Azure 架构师学习笔记]-Azure Data Factory (3)-触发器详解-翻 ...

  7. 大数据单机学习环境搭建(5)Hive建表DDL详解

    专题:大数据单机学习环境搭建和使用 1. Hive建表简单示例 1.1.Hive建表语句 1.2.表详细信息 1.3.数据展示 2. Hive建表语法详解 3.拓展1:复杂数据分割 4.拓展2:事务表 ...

  8. MybatisPlus学习(四)条件构造器Wrapper方法详解

    https://www.cnblogs.com/xianz666/p/13857733.html MybatisPlus学习(四)条件构造器Wrapper方法详解 文章目录 1.条件构造器 2.Que ...

  9. java 控制jsp_JSP学习之Java Web中的安全控制实例详解

    普通用户界面 修改登录的Servlet,修改后的代码如下: LoginProcess.java代码: package servlet; import javabean.User; import jav ...

最新文章

  1. Tomcat组成与工作原理
  2. 安装LPC55S69 MicroPython模块是遇到的CDC Interface驱动问题
  3. RUP大讲堂(第四讲)-业务建模技术实践
  4. Android 缓存目录 Context.getExternalFilesDir()和Context.getExternalCacheDir()方法
  5. vue脚手架中使用axios
  6. 通达学院计算机组成原理试卷及答案,2021全国网络工程专业大学排名(5篇)
  7. 怎样才干成为一名优秀的软件測试人员
  8. MySQL information_schema 系统库介绍
  9. primefaces教程_Primefaces BlockUI组件示例教程
  10. Lesson 07 for Plotting in R for Biologists
  11. 直接插入排序-java
  12. 快递单号查询国外公司编码汇总_快递鸟
  13. 响应式web开发 许愿墙
  14. python如何读取文件数据恢复_如何找回丢失的文件数据
  15. DNS域传送漏洞(CVE-2015-5254)
  16. 看不见世界的程序员,开发了一款“吃鸡”
  17. chrome浏览器关闭更新弹窗
  18. Freeswitch智能语音开发之TTS
  19. 数学建模学习17(最短距离、BP神经网络)
  20. 用html js制作迷宫,JavaScript生成随机迷宫详解

热门文章

  1. JDK源码解析--ArrayList
  2. javascript学习之模块拖拽功能的实现
  3. dp动态规划_最短路径累加和最大问题
  4. cube云原生机器学习平台-架构(二)
  5. HBase因hostname可能引起的RIT问题。HBASE的ip和hostname坑
  6. mac php apache mysql 集成环境 的软件
  7. PAT-013 L1-013. 计算阶乘和
  8. 网络流 poj 2195
  9. fenby C语言 P11
  10. Time complexity analysis of algorithms