Update the changelog
[opencv] / apps / Hawk / demos / edge.c
1 char wndname[] = "Edge";\r
2 char tbarname[] = "Threshold";\r
3 int edge_thresh = 1;\r
4 \r
5 // Load the source image\r
6 IPLIMAGE image = load_iplimage("headband.bmp");\r
7 \r
8 // Create the output image\r
9 IPLIMAGE cedge = cvCreateImage(cvSize(image->width,image->height), IPL_DEPTH_8U, 3);\r
10 \r
11 IPLIMAGE temp = cvCreateImage(cvSize(image->width,image->height),IPL_DEPTH_8U, 3);\r
12 \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
17 \r
18 // define a trackbar callback\r
19 void on_trackbar(int h)\r
20 {\r
21     int i;\r
22   \r
23     // Run the edge detector on grayscale\r
24     cvCanny(gray, edge, 0.0f, (float)edge_thresh*5, 3);\r
25   \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
29     \r
30     show_iplimage(wndname, cedge);\r
31 }\r
32 \r
33 // Create a window\r
34 named_window(wndname, 0);\r
35 \r
36 // create a toolbar \r
37 create_trackbar(tbarname, wndname, &edge_thresh, 100, on_trackbar);\r
38 \r
39 // Show the image\r
40 on_trackbar(0);\r
41 \r
42 // Wait for a key stroke; the same function arranges events processing\r
43 wait_key(0);\r
44 cvReleaseImage(&image);\r
45 cvReleaseImage(&gray);\r
46 cvReleaseImage(&edge);\r
47 cvReleaseImage(&temp);\r
48 destroy_window(wndname);\r
49 \r