Update the changelog
[opencv] / apps / Hawk / demos / Primitives.c
1 #define NUMBER 50\r
2 char wndname[] = "Primitives";\r
3 int i;\r
4 \r
5 // Load the source image\r
6 IPLIMAGE image = load_iplimage("headband.bmp");\r
7 \r
8 \r
9 // Create a window\r
10 named_window(wndname, 0);\r
11 show_iplimage(wndname,image);\r
12 \r
13 srand(11111);\r
14 CvPoint pt1,pt2;\r
15 \r
16 for (i = 0; i< NUMBER; i++)\r
17 {\r
18 pt1.x=rand()/80;\r
19 pt1.y=rand()/80;\r
20 pt2.x=rand()/80;\r
21 pt2.y=rand()/80;\r
22 \r
23 cvLine( image,pt1, pt2,\r
24 CV_RGB(rand()/100,rand()/100,rand()/100), rand()/3000, 8 );\r
25 show_iplimage(wndname,image);\r
26 }\r
27 \r
28 for (i = 0; i< NUMBER; i++)\r
29 {\r
30 pt1.x=rand()/80;\r
31 pt1.y=rand()/80;\r
32 pt2.x=rand()/80;\r
33 pt2.y=rand()/80;\r
34 \r
35 cvRectangle( image,pt1, pt2, \r
36 CV_RGB(rand()/100,rand()/100,rand()/100),\r
37 rand()/3000 );\r
38 show_iplimage(wndname,image);\r
39 }\r
40 \r
41 double angle;\r
42 CvSize sz;\r
43 \r
44 for (i = 0; i< NUMBER; i++)\r
45 {\r
46 pt1.x=rand()/100;\r
47 pt1.y=rand()/100;\r
48 sz.width =rand()/50;\r
49 sz.height=rand()/50;\r
50 sz.height = sz.width = 100;\r
51 angle =((double)rand())*3.14/12000.0;\r
52 \r
53 cvEllipse( image,\r
54 pt1, sz, angle,\r
55 angle - 100,\r
56 angle + 200,\r
57 CV_RGB(rand()/100,rand()/100,rand()/100), 6 );\r
58 \r
59 show_iplimage(wndname,image);\r
60 }\r
61 \r
62 CvPoint  ptt[6];\r
63 CvPoint* pt[6];\r
64 \r
65 pt[0] = &(ptt[0]);\r
66 pt[1] = &(ptt[1]);\r
67 pt[2] = &(ptt[2]);\r
68 pt[3] = &(ptt[3]);\r
69 pt[4] = &(ptt[4]);\r
70 pt[5] = &(ptt[5]);\r
71 \r
72 int  arr[2];\r
73 arr[0] = 3;\r
74 arr[1] = 3;\r
75 \r
76 for (i = 0; i< NUMBER; i++)\r
77 {\r
78 pt[0]->x=rand()/100;\r
79 pt[0]->y=rand()/100;\r
80 pt[1]->x=rand()/100;\r
81 pt[1]->y=rand()/100;\r
82 pt[2]->x=pt[0]->x;\r
83 pt[2]->y=pt[0]->y;\r
84 pt[3]->x=rand()/100;\r
85 pt[3]->y=rand()/100;\r
86 pt[4]->x=rand()/100;\r
87 pt[4]->y=rand()/100;\r
88 pt[5]->x=pt[3]->x;\r
89 pt[5]->y=pt[3]->y;\r
90 \r
91 cvPolyLine( image, &pt,&arr, 2, 1, \r
92 CV_RGB(rand()/100,rand()/100,rand()/100), 2, 8 );\r
93 \r
94 show_iplimage(wndname,image);\r
95 }\r
96 \r
97 for (i = 0; i< NUMBER; i++)\r
98 {\r
99 pt[0]->x=rand()/100;\r
100 pt[0]->y=rand()/100;\r
101 pt[1]->x=rand()/100;\r
102 pt[1]->y=rand()/100;\r
103 pt[2]->x=pt[0]->x;\r
104 pt[2]->y=pt[0]->y;\r
105 pt[3]->x=rand()/100;\r
106 pt[3]->y=rand()/100;\r
107 pt[4]->x=rand()/100;\r
108 pt[4]->y=rand()/100;\r
109 pt[5]->x=pt[3]->x;\r
110 pt[5]->y=pt[3]->y;\r
111 \r
112 cvFillPoly( image, \r
113 &pt,&arr,2,CV_RGB(rand()/100,rand()/100,rand()/100) );\r
114 \r
115 show_iplimage(wndname,image);\r
116 }\r
117 \r
118 for (i = 0; i< NUMBER; i++)\r
119 {\r
120 pt1.x=rand()/80;\r
121 pt1.y=rand()/80;\r
122 pt2.x=rand()/80;\r
123 pt2.y=rand()/80;\r
124 \r
125 cvCircle (image, pt1, rand()/120,\r
126 CV_RGB(rand()/100,rand()/100,rand()/100) , 1);\r
127 show_iplimage(wndname,image);\r
128 }\r
129 \r
130 \r
131 CvFont font;\r
132 \r
133 for (i = 1; i< NUMBER; i++)\r
134 {\r
135 pt1.x=rand()/150;\r
136 pt1.y=rand()/110;\r
137 \r
138 cvInitFont( &font , CV_FONT_VECTOR0 ,\r
139 rand()/5000.0, rand()/5000.0, \r
140 rand()/40000.0, rand()/2000.0 );\r
141 \r
142 cvPutText( image, "Hawk",\r
143 pt1, &font,\r
144 CV_RGB((rand()/100)*10/i,(rand()/100)*10/i,(rand()/100)*10/i));\r
145 \r
146 show_iplimage(wndname,image);\r
147 }\r
148 \r
149 cvInitFont( &font , CV_FONT_VECTOR0 ,\r
150 1, 2, \r
151 0.0, 7 );\r
152 \r
153 pt1.x=40;\r
154 pt1.y=200;\r
155 \r
156 for(i = 0; i < 255; i++)\r
157 {\r
158     cvPutText( image, "OpenCV forever!",\r
159     pt1, &font,\r
160     CV_RGB(255,i,i));\r
161     show_iplimage(wndname,image);\r
162 }\r
163 \r
164 \r
165 // Wait for a key stroke; the same function arranges events processing\r
166 wait_key(0);\r
167 cvReleaseImage(&image);\r
168 destroy_window(wndname);\r