在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;
}