1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
|
#N canvas 931 421 818 513 10;
#X obj 7 200 cnv 15 430 300 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 7 156 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577
0;
#X text 16 160 Arguments:;
#X obj 7 60 cnv 15 430 90 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 443 10 cnv 15 320 420 empty empty empty 20 12 0 14 -228992 -66577
0;
#X text 50 19 Synopsis: [pix_opencv_blobtrack];
#X text 71 38 Class: pix_opencv;
#X text 17 63 Description: all-in-one blobtracker;
#X text 28 86 [pix_opencv_blobtrack] implements a blobtracking pipeline.
This is made by a foreground detector \, a blob detector \, a blob
tracker and a trajectory post processor.;
#X text 30 173 none;
#X obj 446 222 cnv 15 250 120 empty empty empty 20 12 0 14 -4034 -66577
0;
#X obj 656 363 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577
0;
#N canvas 1 98 450 300 gemwin 0;
#X obj 132 136 gemwin;
#X obj 67 89 outlet;
#X obj 67 10 inlet;
#X obj 67 41 route create;
#X msg 67 70 set destroy;
#X msg 142 68 set create;
#X msg 132 112 create \, 1;
#X msg 198 112 destroy;
#X msg 234 221 dimen 500 500;
#X obj 295 164 loadbang;
#X msg 279 190 dimen 640 480;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 0 6 0;
#X connect 3 1 5 0;
#X connect 3 1 7 0;
#X connect 4 0 1 0;
#X connect 5 0 1 0;
#X connect 6 0 0 0;
#X connect 7 0 0 0;
#X connect 8 0 0 0;
#X connect 9 0 10 0;
#X connect 10 0 0 0;
#X restore 661 402 pd gemwin;
#X msg 661 383 create;
#X text 657 362 Create window:;
#X obj 454 364 pix_texture;
#X obj 454 30 gemhead;
#X floatatom 531 323 5 0 0 0 blob_num - -, f 5;
#N canvas 1054 357 709 722 showblob 0;
#X obj 187 13 inlet blobinformation;
#X obj 279 316 gemlist;
#X obj 279 296 t b a;
#X obj 291 50 gemhead 70;
#X obj 129 258 list append;
#X obj 124 170 list split 2;
#X obj 124 114 list append;
#X obj 291 73 t b a;
#X obj 158 232 t b a;
#X obj 279 506 translateXYZ;
#X msg 420 349 \$2;
#X obj 279 356 alpha 1;
#X obj 279 466 translateXYZ -0.5 -0.5 0;
#X obj 279 530 scaleXYZ 0.125 0.25 0;
#X msg 459 349 \$3;
#X msg 420 499 \$4;
#X msg 469 472 \$5;
#X obj 463 328 t a a;
#X obj 279 576 circle 0.5;
#X obj 279 426 color 1 0 0 0.2;
#X obj 279 336 separator;
#X msg 499 499 \$1;
#X obj 279 616 color 1 1 0 1;
#X obj 158 198 list split 6;
#X msg 227 166 \$2;
#X obj 366 622 loadbang;
#X msg 366 641 12;
#X msg 521 377 \$6;
#X obj 521 399 > 0;
#X obj 521 420 sel 1 0;
#X msg 520 441 1 0 0 0.2;
#X msg 540 461 0 1 0 0.2;
#X obj 279 596 translateXYZ 0.2 0.2 0;
#X text 348 252 here is an example on how to display blobs with Gem
;
#X obj 279 446 scaleXYZ 10.666 -8 0;
#X obj 279 677 text2d;
#X text 253 167 <- be careful ! the size of the cvblob matrix could
change;
#X text 335 184 please check second element to gets matrix width (number
of value per blob);
#X obj 124 136 t a a;
#X connect 0 0 6 1;
#X connect 1 0 20 0;
#X connect 2 0 1 0;
#X connect 2 1 17 0;
#X connect 3 0 7 0;
#X connect 4 0 23 0;
#X connect 5 1 23 0;
#X connect 6 0 38 0;
#X connect 7 0 6 0;
#X connect 7 1 1 1;
#X connect 8 0 4 0;
#X connect 8 1 2 0;
#X connect 9 0 13 0;
#X connect 10 0 9 1;
#X connect 11 0 19 0;
#X connect 12 0 9 0;
#X connect 13 0 18 0;
#X connect 14 0 9 2;
#X connect 15 0 13 1;
#X connect 16 0 13 2;
#X connect 17 0 14 0;
#X connect 17 0 10 0;
#X connect 17 1 16 0;
#X connect 17 1 15 0;
#X connect 17 1 21 0;
#X connect 17 1 27 0;
#X connect 18 0 32 0;
#X connect 19 0 34 0;
#X connect 20 0 11 0;
#X connect 21 0 35 0;
#X connect 22 0 35 0;
#X connect 23 0 8 0;
#X connect 23 1 4 1;
#X connect 24 0 23 1;
#X connect 25 0 26 0;
#X connect 26 0 35 1;
#X connect 27 0 28 0;
#X connect 28 0 29 0;
#X connect 29 0 30 0;
#X connect 29 1 31 0;
#X connect 30 0 19 1;
#X connect 31 0 19 1;
#X connect 32 0 22 0;
#X connect 34 0 12 0;
#X connect 38 0 5 0;
#X connect 38 1 24 0;
#X restore 568 320 pd showblob;
#X obj 454 124 pix_resize 320 240;
#X obj 454 173 pix_rgba;
#X obj 471 227 r \$0-properties;
#X text 464 153 input format : rgba or grey;
#N canvas 943 437 806 579 properties 0;
#X msg 99 407 monitorStage \$1;
#X msg 4 21 getModule;
#X msg 4 41 getModule fg;
#X msg 4 61 getModule bd;
#X msg 4 81 getModule bt;
#X msg 4 101 getModule btpp;
#X obj 12 142 loadbang;
#X msg 260 194 setModule bd BD_CC;
#X msg 27 194 setModule fg FG_0S;
#X msg 147 194 setModule fg FG_1;
#X text 98 342 monitoring stage :;
#X obj 99 359 vradio 15 1 0 3 empty empty empty 0 -8 0 10 -262144 -1
-1 0;
#X text 117 358 input image;
#X text 116 374 foreground mask;
#X text 116 389 diplsay blobs;
#X obj -35 513 s \$0-properties;
#X obj -35 353 t a;
#X msg -14 405 fgTrainFrames \$1;
#X floatatom -14 378 5 0 0 0 - - -, f 5;
#X text 72 20 post all accessibles modules and their nickname;
#X text 108 56 post information of specific module and get the avaiblable
variant to load;
#X msg 12 160 setModule fg FG_1 \, setModule bd BD_Simple \, setModule
bt CC \, setModule btpp none \, setModule bta none;
#X msg 241 229 getParam fg;
#X floatatom 241 257 5 0 0 0 - - -, f 5;
#X msg 241 275 setParam fg NG \$1;
#X text 319 222 getParam <module name> : returns all parameters for
a given module;
#X text 359 275 setParam <module name> <param name> <value> : set a
module parameter \, value could be float or symbol;
#X msg 33 222 setModule fg FG_0;
#X floatatom 241 295 5 0 0 0 - - -, f 5;
#X msg 241 313 setParam fg alpha1 \$1;
#X msg 192 106 setModule fg FG_0 \, setModule bd BD_Simple \, setModule
bt CC \, setModule btpp none \, setModule bta none \, setParam fg alpha1
0.35;
#X msg 234 411 areaThreshold \$1;
#X floatatom 261 367 5 0 0 0 - - -, f 5;
#X connect 0 0 15 0;
#X connect 1 0 16 0;
#X connect 2 0 16 0;
#X connect 3 0 16 0;
#X connect 4 0 16 0;
#X connect 5 0 16 0;
#X connect 6 0 21 0;
#X connect 7 0 16 0;
#X connect 8 0 16 0;
#X connect 9 0 16 0;
#X connect 11 0 0 0;
#X connect 16 0 15 0;
#X connect 17 0 15 0;
#X connect 18 0 17 0;
#X connect 21 0 16 0;
#X connect 22 0 16 0;
#X connect 23 0 24 0;
#X connect 24 0 16 0;
#X connect 27 0 16 0;
#X connect 28 0 29 0;
#X connect 29 0 16 0;
#X connect 30 0 16 0;
#X connect 31 0 15 0;
#X connect 32 0 31 0;
#X restore 595 230 pd properties;
#X obj 454 70 pix_film;
#X text 459 96 the bigger the image is \, the more CPU expensive the
algo will be;
#X text 16 202 Inlet 1 accepts a lot of messages \, here are the most
usefull ones \, see [pd properties] for details.;
#X text 26 232 getModule : get information about loaded modules.;
#X text 26 252 setModule : set algorythm to use in each module.;
#X text 26 272 monitoringStage : set the location where output image
is taken (input \, foreground mask or input with tracking information)
;
#X obj 550 50 openpanel;
#X obj 550 32 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X text 15 321 Outlet 1 : gemstate;
#X text 15 341 Outlet 2 :;
#X text 35 360 blobnum : number of blobs in the current frame;
#X text 36 376 blob matrix (follow the iem matrix standard) :;
#X text 35 460 there are also a lots of informations about parameters
and algorithms... check out the pd-properties;
#X text 65 399 and for each blob : ID \, x \, y \, width \, height
\, state (valid or not);
#X msg 550 70 open \$1 \, auto 1;
#X obj 454 395 rectangle 5.333 4;
#X msg 509 70 0;
#X msg 531 302 \$1;
#X obj 531 281 route cvblob;
#N canvas 1 104 593 300 info 0;
#X obj 153 40 inlet;
#X obj 153 62 route modulelist param;
#X msg 55 148 fg bd bt btpp bta;
#X obj 55 106 list prepend set;
#X obj 55 128 list trim;
#X msg 78 211 getModule;
#X obj 78 236 s \$0-properties;
#X text -59 148 available module :;
#X msg 146 212 getParam fg;
#X obj 217 108 print param;
#X obj 298 96 print dumpout;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 1 1 9 0;
#X connect 1 2 10 0;
#X connect 3 0 4 0;
#X connect 4 0 2 0;
#X connect 5 0 6 0;
#X connect 8 0 6 0;
#X restore 645 322 pd info;
#X obj 454 255 pix_opencv_blobtrack;
#X text 53 388 cvblob <mtx rows (nb of blobs)> <mtx cols (6)>;
#X connect 12 0 13 0;
#X connect 13 0 12 0;
#X connect 15 0 39 0;
#X connect 16 0 24 0;
#X connect 19 0 20 0;
#X connect 20 0 44 0;
#X connect 21 0 44 0;
#X connect 24 0 19 0;
#X connect 24 2 40 0;
#X connect 30 0 38 0;
#X connect 31 0 30 0;
#X connect 38 0 24 0;
#X connect 40 0 24 1;
#X connect 41 0 17 0;
#X connect 42 0 41 0;
#X connect 42 0 18 0;
#X connect 42 1 43 0;
#X connect 44 0 15 0;
#X connect 44 1 42 0;
|