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