1 char wndname[] = "Edge";
\r
2 char tbarname[] = "Threshold";
\r
5 // Load the source image
\r
6 IPLIMAGE image = load_iplimage("headband.bmp");
\r
8 // Create the output image
\r
9 IPLIMAGE cedge = cvCreateImage(cvSize(image->width,image->height), IPL_DEPTH_8U, 3);
\r
11 IPLIMAGE temp = cvCreateImage(cvSize(image->width,image->height),IPL_DEPTH_8U, 3);
\r
13 // Convert to grayscale
\r
14 IPLIMAGE gray = cvCreateImage(cvSize(image->width,image->height), IPL_DEPTH_8U, 1);
\r
15 IPLIMAGE edge = cvCreateImage(cvSize(image->width,image->height), IPL_DEPTH_8U, 1);
\r
16 cvCvtColor(image, gray, CV_BGR2GRAY);
\r
18 // define a trackbar callback
\r
19 void on_trackbar(int h)
\r
23 // Run the edge detector on grayscale
\r
24 cvCanny(gray, edge, 0.0f, (float)edge_thresh*5, 3);
\r
26 // Apply the edge image as a mask to the color
\r
27 cvCvtColor( edge, temp, CV_GRAY2BGR );
\r
28 cvAnd(image, temp, cedge, 0);
\r
30 show_iplimage(wndname, cedge);
\r
34 named_window(wndname, 0);
\r
36 // create a toolbar
\r
37 create_trackbar(tbarname, wndname, &edge_thresh, 100, on_trackbar);
\r
42 // Wait for a key stroke; the same function arranges events processing
\r
44 cvReleaseImage(&image);
\r
45 cvReleaseImage(&gray);
\r
46 cvReleaseImage(&edge);
\r
47 cvReleaseImage(&temp);
\r
48 destroy_window(wndname);
\r