在opencv中滑动条是很方便的一个测试函数,我们可以不需要更改程序就可以更改变量的值来观察效果。
还是老习惯,分三步走。第一步,功能说明。第二步,结果图显示,第三步,API详解。第四步,代码展示(注释很详细,保证所有有C++基础的人都可以看懂。)
第一步,功能说明:用途就是通过改变滑动条的位置来改变函数里面变量的值,比如我们需要把程序里面的变量i改变为10,20,30就可以分别滑到10,20,30,可以实时的显示i=10,20,30时的效果图。下面我们通过改变变量 i 的值,实时的把i的值输出到屏幕。
第二步,结果图显示:
初始值(第一张图片)
滑动到11后(第二张图片)
滑动到15后(第三张图片)
我们可以看出变量的值,可以随着滑动条的改变而改变。
第三步,API详解:原型:int createTrackbar(const string& trackbarname, const string&winname, int* value, int count ,TrackbarCallback onChange = 0, void* userdata = 0);
参数1:轨迹条名字
参数2:窗口名字
参数3:滑块初始位置
参数4:表示滑块达到最大位置的值
参数5:默认值为0,指向回调函数
参数6:默认值为0,用户传给回调函数的数据值
第四步,代码展示:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int i = 7;//滑动条初始值
int maxnum = 20;//滑动条最大值
void text(int,void*);//声明回调函数
int main(int argc, char** argv)
{
Mat src = imread("image5.jpg");
//判断图片是否载入成功
if (src.empty())
{
printf("图片加载失败\n");
system("pause");
//return -1;
}
//新建一个窗口
namedWindow("测试窗口",WINDOW_AUTOSIZE);
//创建滑动条
//注意:i是变量,滑动条擦改变后i改变。
createTrackbar("数字:","测试窗口",&i,maxnum,text);
text(0,0);
waitKey(0);
return 0;
}
//回调函数
void text(int,void*)
{
cout<<"数字i的值为:"<<i<<endl;
}
本人也是学习opencv不久,如有错误,请各位前辈指导。大家如果觉得我的博客讲解通俗易懂,请进我博客专栏查看更多API讲解。博客地址https://blog.csdn.net/fanjiule 。转载请备注本地址。