opencv学习笔记(四)高级GUI和媒体(highgui模块)添加滑动条

OpenCv Trackbar学习与应用

我们之前在调整图像对比度以及混合图像的过程中用到过Trackbar,现在让我们系统的学习与应用Trackbar

1.头文件

#include <opencv2/highgui.hpp>
由于Trackbar属于highgui模块,所以需要包含头文件

2.createTrackbar()详解

int cv::createTrackbar	(	const String & 	trackbarname,
const String & 	winname,
int * 	value,
int 	count,
TrackbarCallback 	onChange = 0,
void * 	userdata = 0 
)	

其中
trackbarname表示滑动条名称,
winname表示放置滑动条的窗口的名称,
value为int* 类型,是一个指向整型的指针,表示滑块的位置。并且在创建时,滑块的初始位置就是该变量当前的值。,比如我初始值给1,变量在没有通过滑动条调整之前就是1,如果调整了滑动条,value的值会随着滑动条位置而变化。但注意初始值不是最小值,滑块最小的位置的值始终为0。
count表示滑块可以达到的最大位置的值。
onChange是TrackbarCallback类型的变量,其默认值为0。这是一个指向回调函数的指针,当其不为零时,每次滑块位置改变时,onchange这个函数都会进行回调,从而利用trackbar来调节图像。其回调函数格式如下:

void functionName(val,void*)
{
//具体操作
}

其中,val为value对应的整型数据的数值(之前的value指针对应的整型变量作为参数传入),而void是指下面的userdata
userdata是void
类型的,他也有默认值0。这个参数是用户传给回调函数的数据,用来处理轨迹条事件。如果使用的第三个参数value实参是全局变量或者可以传给回调函数的话,完全可以不去管这个userdata参数。

3Trackbar应用

Trackbar好多例子是返回全局变量,调用回调函数。其实,你可以利用

int getTrackbarPos(const string& trackbarname, const string& winname)

把其返回值当作一个可以通过trackbar实时调节的变量就行了,然后把其传给需要用到这个变量的函数就可以了,而不需要刻意使用回调函数

3.2 Trackbar应用

调节对比度,亮度以及图像的融合,前面已经做过,也不赘余了,感兴趣的可以看看教程里的代码

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值