天天看點

OpenCV學習筆記-應用trackbar實作按鈕功能

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

繼續閱讀