现在的位置: 首页 > 综合 > 正文

OpenCV学习笔记-应用trackbar实现按钮功能

2014年01月05日 ⁄ 综合 ⁄ 共 907字 ⁄ 字号 评论关闭

在OpenCV中,没有显示提供按钮。经常采用的方法是用只有两个状态的滑动条来实现。

例如,设置一个switch,有两个状态,分别为0和1.通过滚动条的回调函数实现调用。

实现例题如下:

#include "stdafx.h"
#include "highgui.h"
int g_switch_value=0;
IplImage* img0;
IplImage* img1;
void switch_function(int position)
{
	cvSetTrackbarPos("Switch","Demo Window",position);  //设定滑动条的位置
}
void switch_callback(int position)                                       //滑动条的回调函数
{
	if(position==0)
	{
		switch_function(0);
		cvShowImage("Demo Window",img0);
	}
	else
	{
		switch_function(1);
		cvShowImage("Demo Window",img1);
	}
}
int main(int argc,char* argv[])
{
	cvNamedWindow("Demo Window",1);
	img0=cvLoadImage("a.bmp");
	img1=cvLoadImage("b.bmp");
	cvShowImage("Demo Window",img0);                    //开始加载img0
	cvCreateTrackbar("Switch","Demo Window",&g_switch_value,1,switch_callback);

	while(1)
	{
		if(cvWaitKey (15)==27) break;                          //按Esc退出
	}
	cvReleaseImage(&img0);
	cvReleaseImage(&img1);
	cvDestroyWindow("Demo Window");
	return 0;
}

参考资料:

1.http://hi.baidu.com/yuzaihuan/blog/item/c7135812a625a85d21a4e968.html

2.学习OpenCV(中文版),于仕祺,刘瑞祯,清华大学出版社,pp.117-120

抱歉!评论已关闭.