2 #pragma package <opencv>
10 char wndname[] = "Edge";
11 char tbarname[] = "Threshold";
14 IplImage *image = 0, *cedge = 0, *gray = 0, *edge = 0;
16 // define a trackbar callback
17 void on_trackbar(int h)
19 cvSmooth( gray, edge, CV_BLUR, 3, 3, 0, 0 );
22 // Run the edge detector on grayscale
23 cvCanny(gray, edge, (float)edge_thresh, (float)edge_thresh*3, 3);
27 cvCopy( image, cedge, edge );
29 cvShowImage(wndname, cedge);
32 int main( int argc, char** argv )
34 char* filename = argc == 2 ? argv[1] : (char*)"fruits.jpg";
36 if( (image = cvLoadImage( filename, 1)) == 0 )
39 // Create the output image
40 cedge = cvCreateImage(cvSize(image->width,image->height), IPL_DEPTH_8U, 3);
42 // Convert to grayscale
43 gray = cvCreateImage(cvSize(image->width,image->height), IPL_DEPTH_8U, 1);
44 edge = cvCreateImage(cvSize(image->width,image->height), IPL_DEPTH_8U, 1);
45 cvCvtColor(image, gray, CV_BGR2GRAY);
48 cvNamedWindow(wndname, 1);
51 cvCreateTrackbar(tbarname, wndname, &edge_thresh, 100, on_trackbar);
56 // Wait for a key stroke; the same function arranges events processing
58 cvReleaseImage(&image);
59 cvReleaseImage(&gray);
60 cvReleaseImage(&edge);
61 cvDestroyWindow(wndname);