1、
CreateTrackbar函数
函数作用:
创建一个滑动条
函数形式:
C++: int createTrackbar(const string& trackbarname, onst string& winna
c
me
, int*
value
, int
count
, TrackbarCallback
onChange
=0, void*
userdata
=0
)
const string& trackbarname:滑动条的名称
const string& winname:;;滑动条显示的窗口
int* value:滑动条变化的值
int count:value最大的值
on_change:每次滑块位置被改变的时候,被调用函数的指针。这个函数应该被声明为void Foo(int,void*); 如果没有回调函数,这个值可以设为NULL。int 是value的值,调用函数Foo(int ,void)
void* userdata=0:用户信息
例子:
例子:
程序说明
我们只分析关于滑动条的那段代码:
#.首先, 我们加载了两个图像, 目的是把它们混合显示.
#.在创建滑动条之前, 我们要先创建一个窗体,以便把创建的滑动条放置在上面:
-
现在可以创建滑动条了:
记住下面的参数介绍:
- 在标签中显示的文字(提示滑动条的用途) TrackbarName
- 创建的滑动条要放置窗体的名字 “Linear Blend”
- 滑动条的取值范围从
到 alpha_slider_max (最小值只能为 zero).
- 滑动后的值存放在 alpha_slider 变量里
- 每当滑动条的值改变, 就会调用 on_trackbar 回调函数
-
最后, 我们还要定义这个回调函数 on_trackbar 来实现我们想要的结果
注意回调函数中的整型与双精度型的转换:
- 从滑动条中获取的整型值 alpha_slider (integer) 要转换为双精度类型 alpha.
- alpha_slider 的值会在滑动条滑动后被修改.
- 我们所定义的 src1, src2, dist, alpha, alpha_slider 和 beta 都是全局变量, 因此也可以在回调函数中使用.
结果
-
下图是程序的运行结果:
-
也可以使用其它方式验证, 你可以用 改变图像的对比度和亮度 中的例程实现两个滑动条. 一个控制
另一个控制
. 可能的输出会是下面的样子: