کد:
int cvCreateTrackbar(
const char* trackbar_name,
const char* window_name,
int* value,
int count,
CvTrackbarCallback on_change
);
کد:
#include "stdafx.h"
#include "highgui.h"
#include "cv.h"
#include "cxcore.h"//only for cvReleaseImage function
int g_switch_value = 0;
int fliter = 0;
int lastfilterInt = -1;
void callback( int a ){
fliter = a;
}
int _tmain(int argc, _TCHAR* argv[])
{
const char* name = "IRANLED --> h0x00i";
IplImage* img = cvLoadImage( "iranled.jpg" );
IplImage* out = cvCreateImage( cvGetSize(img), IPL_DEPTH_8U, 3 );
cvNamedWindow( name, 1 );
cvShowImage(name, out);
// Other Variables
CvPoint seed_point = cvPoint(305,195);
CvScalar color = CV_RGB(250,0,0);
// Create trackbar
cvCreateTrackbar( "fliter", name, &g_switch_value, 5, callback );
while( 1 ) {
switch( fliter ){
case 0:
cvSmooth( img, out, CV_BLUR, 7, 7 );
break;
case 1:
cvSmooth( img, out, CV_GAUSSIAN, 7, 7 );
break;
case 2:
cvSmooth( img, out, CV_MEDIAN, 7, 7 );
break;
case 3:
cvErode( img, out, NULL, 1);
break;
case 4:
cvDilate( img, out, NULL, 1);
break;
case 5:
cvFloodFill( out, seed_point, color, cvScalarAll(5.0), cvScalarAll(5.0), NULL, 4, NULL );
break;
}
if(fliter != lastfilterInt){
cvShowImage(name, out);
lastfilterInt = fliter;
}
if( cvWaitKey( 15 ) == 27 )
break;
}
cvReleaseImage( &img );
cvReleaseImage( &out );
cvDestroyWindow( name );
return 0;
}