天天看点

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

继续阅读