【Ubuntu+OpenCV】HighGUI之trackbar充当开关按钮--学习笔记【3】

opencv的highgui没有button按钮,但是我们可以充分利用trackbar的功能来实现button按键。


一、主要思路

设置一个只有两个值的trackbar,即trackbar的位置范围是[0,1]。位置为0的时候对应一种状态;位置为1的时候对应另外一种状态。就能实现button的功能。


二、运用实例

       编写一个程序,创建一个trackbar,当其位置为0时,显示彩色的原图像;当其位置为1时,显示图像对应的灰度图像。

 

//switch.c #include "cv.h" #include "highgui.h" IplImage* src = NULL ; IplImage* dst = NULL ; const char* image_name = "lena.jpg" ; const char* wnd_name = "switch" ; const char* trackbar_name = "on_or_off" ; void on_or_off(int pos) { if ( 0 == pos ) { cvShowImage( wnd_name,src ); } if( 1 == pos ) { cvCvtColor( src,dst,CV_BGR2GRAY ); cvShowImage( wnd_name,dst ); } } int main(int argc,char** argv) { int value = 0 ; src = cvLoadImage(image_name,1); dst = cvCreateImage( cvGetSize(src),IPL_DEPTH_8U,1 ); cvNamedWindow(wnd_name,CV_WINDOW_AUTOSIZE); cvCreateTrackbar(trackbar_name,wnd_name,&value,1,on_or_off); on_or_off(0); cvWaitKey(0); cvReleaseImage(&src); cvReleaseImage(&dst); cvDestroyWindow(wnd_name); return 0 ; }

编译以后,运行结果如下:

【Ubuntu+OpenCV】HighGUI之trackbar充当开关按钮--学习笔记【3】_第1张图片

 

【Ubuntu+OpenCV】HighGUI之trackbar充当开关按钮--学习笔记【3】_第2张图片

你可能感兴趣的:(image,ubuntu,null,button,DST)