2 #pragma package <opencv>
5 #define CV_NO_BACKWARD_COMPATIBILITY
12 char wndname[] = "Edge";
13 char tbarname[] = "Threshold";
16 IplImage *image = 0, *cedge = 0, *gray = 0, *edge = 0;
18 // define a trackbar callback
19 void on_trackbar(int h)
21 cvSmooth( gray, edge, CV_BLUR, 3, 3, 0, 0 );
24 // Run the edge detector on grayscale
25 cvCanny(gray, edge, (float)edge_thresh, (float)edge_thresh*3, 3);
29 cvCopy( image, cedge, edge );
31 cvShowImage(wndname, cedge);
34 int main( int argc, char** argv )
36 char* filename = argc == 2 ? argv[1] : (char*)"fruits.jpg";
38 if( (image = cvLoadImage( filename, 1)) == 0 )
41 // Create the output image
42 cedge = cvCreateImage(cvSize(image->width,image->height), IPL_DEPTH_8U, 3);
44 // Convert to grayscale
45 gray = cvCreateImage(cvSize(image->width,image->height), IPL_DEPTH_8U, 1);
46 edge = cvCreateImage(cvSize(image->width,image->height), IPL_DEPTH_8U, 1);
47 cvCvtColor(image, gray, CV_BGR2GRAY);
50 cvNamedWindow(wndname, 1);
53 cvCreateTrackbar(tbarname, wndname, &edge_thresh, 100, on_trackbar);
58 // Wait for a key stroke; the same function arranges events processing
60 cvReleaseImage(&image);
61 cvReleaseImage(&gray);
62 cvReleaseImage(&edge);
63 cvDestroyWindow(wndname);