blob: db81157de0fab5adc833765cdb974ff741efaa33 (
plain)
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
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
|
#N canvas 1 49 1424 780 10;
#X obj 41 -81 cnv 15 621 300 empty empty empty 20 12 0 14 -260097 -66577
0;
#X obj 301 -30 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 301 -3 metro 40;
#X msg 382 16 close;
#X msg 378 -8 open /dev/video0;
#X obj 321 95 pdp_v4l2;
#X obj 44 328 cnv 15 621 360 empty empty empty 20 12 0 14 -258113 -66577
0;
#X obj 91 703 pdp_xv;
#X obj 44 244 cnv 15 621 73 empty empty empty 20 12 0 14 -260801 -66577
0;
#X floatatom 243 280 5 0 0 0 - - -;
#X text 281 279 threshold (default 13) to use when comparing pixel
colors;
#X msg 387 71 format \$1;
#X obj 388 49 hradio 15 1 0 4 empty empty empty 0 -8 0 10 -262144 -1
-1 0;
#X obj 93 280 pdp_opencv_threshold;
#X text 46 -136 Play here with a simple pattern image loaded and play
with zoom and rotation.;
#X text 46 -111 Written by Yves Degoyon ( ydegoyon@gmail.com );
#X text 46 -162 The moments of contours should be constant ( Hu moments
invariants ) when the shapes are zoomed or rotated.;
#X obj 93 157 pdp_qt;
#X obj 125 92 metro 40;
#X msg 125 64 bang;
#X msg 166 64 stop;
#X obj 92 -5 openpanel;
#X msg 92 20 open \$1;
#X msg 92 -33 bang;
#X msg 126 119 loop \$1;
#X obj 206 119 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 206 37 loadbang;
#X text 143 -32 playing a video file;
#X text 161 -19 ( try estrella.mov );
#N canvas 0 220 1415 776 extract_biggest_contour 0;
#X obj 117 34 inlet;
#X obj 127 518 outlet;
#X floatatom 263 122 5 0 0 0 - - -;
#X floatatom 335 135 5 0 0 0 - - -;
#X obj 145 150 pdp_opencv_contours_boundingrect;
#X text 301 120 minimal area in pixels to be detected (default 10x10)
;
#X text 372 136 maximal area in pixels to be detected (default 320x240)
;
#N canvas 63 323 605 502 smax 0;
#X obj 37 368 route 1;
#X obj 80 233 t f b;
#X obj 127 258 f;
#X obj 41 329 >;
#X obj 94 282 f 0;
#X obj 193 253 f;
#X obj 209 290 outlet;
#X msg 199 184 0;
#X obj 220 130 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 225 97 loadbang;
#X obj 105 73 unpack f f f f f;
#X obj 99 115 *;
#X obj 88 143 f;
#X obj 142 117 t b f;
#X obj 132 25 inlet;
#X obj 156 183 f;
#X msg 172 384 bang;
#X msg 200 212 bang;
#X obj 119 319 f;
#X obj 111 343 outlet;
#X obj 204 154 metro 100;
#X connect 0 0 16 0;
#X connect 1 0 2 1;
#X connect 1 0 3 0;
#X connect 1 1 4 0;
#X connect 2 0 4 1;
#X connect 3 0 0 0;
#X connect 4 0 3 1;
#X connect 4 0 18 1;
#X connect 5 0 6 0;
#X connect 7 0 2 1;
#X connect 7 0 4 1;
#X connect 7 0 17 0;
#X connect 8 0 20 0;
#X connect 9 0 8 0;
#X connect 10 0 13 0;
#X connect 10 3 11 0;
#X connect 10 4 11 1;
#X connect 11 0 12 1;
#X connect 12 0 1 0;
#X connect 13 0 12 0;
#X connect 13 1 15 1;
#X connect 14 0 10 0;
#X connect 15 0 5 1;
#X connect 16 0 2 0;
#X connect 16 0 15 0;
#X connect 17 0 5 0;
#X connect 17 0 18 0;
#X connect 18 0 19 0;
#X connect 20 0 7 0;
#X restore 213 197 pd smax;
#X floatatom 284 226 5 0 0 0 - - -;
#X text 322 226 biggest contour number;
#X obj 212 267 unpack f f f f;
#X obj 133 420 pdp_cropper;
#X obj 209 351 +;
#X obj 253 351 +;
#X obj 159 186 pdp_xv;
#X text 219 421 crop biggest contour;
#X obj 133 469 pdp_scale 320 240;
#N canvas 418 122 450 300 sroute 0;
#X obj 148 99 inlet;
#X obj 90 54 list split 1;
#X obj 90 31 inlet;
#X obj 90 188 outlet;
#X obj 90 124 select \$1;
#X obj 90 154 list;
#X connect 0 0 4 1;
#X connect 1 0 4 0;
#X connect 1 1 5 1;
#X connect 2 0 1 0;
#X connect 4 0 5 0;
#X connect 5 0 3 0;
#X restore 213 246 pd sroute;
#X obj 222 322 expr $f1+8-($f1%8);
#X obj 293 295 expr $f1+8-($f1%8);
#X msg 227 46 nightmode 1;
#X msg 240 74 draw 0;
#X msg 259 98 show 1;
#X obj 332 49 loadbang;
#X connect 0 0 4 0;
#X connect 2 0 4 1;
#X connect 3 0 4 2;
#X connect 4 0 11 0;
#X connect 4 0 14 0;
#X connect 4 1 7 0;
#X connect 4 1 17 0;
#X connect 7 1 8 0;
#X connect 8 0 17 1;
#X connect 10 0 12 0;
#X connect 10 0 11 1;
#X connect 10 1 13 0;
#X connect 10 1 11 3;
#X connect 10 2 18 0;
#X connect 10 3 19 0;
#X connect 11 0 16 0;
#X connect 12 0 11 2;
#X connect 13 0 11 4;
#X connect 16 0 1 0;
#X connect 17 0 10 0;
#X connect 18 0 12 1;
#X connect 19 0 13 1;
#X connect 20 0 4 0;
#X connect 21 0 4 0;
#X connect 22 0 4 0;
#X connect 23 0 20 0;
#X connect 23 0 21 0;
#X connect 23 0 22 0;
#X restore 93 343 pd extract_biggest_contour;
#X text 262 342 abstraction to extract biggest contour;
#X obj 311 253 loadbang;
#X msg 280 253 160;
#X msg 137 440 binary \$1;
#X obj 207 441 tgl 15 0 sbin empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X text 240 441 treat incoming frames as binary data;
#X text 230 468 calculates hu moments invariants;
#X obj 92 466 pdp_opencv_hu_moments;
#X obj 224 508 unpack f f f f f f f;
#X floatatom 234 535 30 0 0 0 - - h1;
#X text 214 534 h1;
#X floatatom 245 557 30 0 0 0 - - h2;
#X floatatom 256 578 30 0 0 0 - - h3;
#X floatatom 269 599 30 0 0 0 - - h4;
#X floatatom 285 621 30 0 0 0 - - h5;
#X floatatom 297 641 30 0 0 0 - - h6;
#X floatatom 306 664 30 0 0 0 - - h7;
#X text 225 556 h2;
#X text 237 577 h3;
#X text 250 598 h4;
#X text 265 620 h5;
#X text 277 640 h6;
#X text 286 663 h7;
#X floatatom 163 412 5 0 0 0 - - -;
#X obj 92 410 pdp_rotate;
#X text 211 410 <-- rotate the frames;
#X floatatom 206 378 5 0 0 0 - - -;
#X obj 92 376 pdp_zoom;
#X text 244 376 <-- zoom the frames;
#X obj 158 377 / 100;
#X text 62 -63 INPUT : movie or camera;
#X obj 684 -82 cnv 15 621 300 empty empty empty 20 12 0 14 -260097
-66577 0;
#X obj 725 -3 openpanel;
#X msg 706 -32 bang;
#X obj 705 65 pdp_background;
#X obj 705 142 pdp_imgloader;
#X obj 705 42 metro 40;
#X msg 724 21 load \$1 0 0;
#X text 752 -33 loading a pattern image;
#X obj 705 112 pdp_scale 320 240;
#X obj 705 89 pdp_convert image/YCrCb/*;
#X text 751 -20 ( try estrella.jpg );
#X obj 764 42 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X text 705 -64 Compare to a pattern;
#X obj 686 242 cnv 15 621 73 empty empty empty 20 12 0 14 -260801 -66577
0;
#X floatatom 856 278 5 0 0 0 - - -;
#X text 894 277 threshold (default 13) to use when comparing pixel
colors;
#X obj 706 278 pdp_opencv_threshold;
#X obj 924 251 loadbang;
#X msg 893 251 160;
#X obj 282 297 s trashh;
#X obj 824 250 r trashh;
#X obj 686 322 cnv 15 621 360 empty empty empty 20 12 0 14 -258113
-66577 0;
#N canvas 0 325 1415 776 extract_biggest_contour 0;
#X obj 117 34 inlet;
#X obj 127 518 outlet;
#X floatatom 263 122 5 0 0 0 - - -;
#X floatatom 335 135 5 0 0 0 - - -;
#X obj 145 150 pdp_opencv_contours_boundingrect;
#X text 301 120 minimal area in pixels to be detected (default 10x10)
;
#X text 372 136 maximal area in pixels to be detected (default 320x240)
;
#N canvas 63 323 605 502 smax 0;
#X obj 37 368 route 1;
#X obj 80 233 t f b;
#X obj 127 258 f;
#X obj 41 329 >;
#X obj 94 282 f 0;
#X obj 193 253 f;
#X obj 209 290 outlet;
#X msg 199 184 0;
#X obj 220 130 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 225 97 loadbang;
#X obj 105 73 unpack f f f f f;
#X obj 99 115 *;
#X obj 88 143 f;
#X obj 142 117 t b f;
#X obj 132 25 inlet;
#X obj 156 183 f;
#X msg 172 384 bang;
#X msg 200 212 bang;
#X obj 119 319 f;
#X obj 111 343 outlet;
#X obj 204 154 metro 100;
#X connect 0 0 16 0;
#X connect 1 0 2 1;
#X connect 1 0 3 0;
#X connect 1 1 4 0;
#X connect 2 0 4 1;
#X connect 3 0 0 0;
#X connect 4 0 3 1;
#X connect 4 0 18 1;
#X connect 5 0 6 0;
#X connect 7 0 2 1;
#X connect 7 0 4 1;
#X connect 7 0 17 0;
#X connect 8 0 20 0;
#X connect 9 0 8 0;
#X connect 10 0 13 0;
#X connect 10 3 11 0;
#X connect 10 4 11 1;
#X connect 11 0 12 1;
#X connect 12 0 1 0;
#X connect 13 0 12 0;
#X connect 13 1 15 1;
#X connect 14 0 10 0;
#X connect 15 0 5 1;
#X connect 16 0 2 0;
#X connect 16 0 15 0;
#X connect 17 0 5 0;
#X connect 17 0 18 0;
#X connect 18 0 19 0;
#X connect 20 0 7 0;
#X restore 213 197 pd smax;
#X floatatom 284 226 5 0 0 0 - - -;
#X text 322 226 biggest contour number;
#X obj 212 267 unpack f f f f;
#X obj 133 420 pdp_cropper;
#X obj 209 351 +;
#X obj 253 351 +;
#X obj 159 186 pdp_xv;
#X text 219 421 crop biggest contour;
#X obj 133 469 pdp_scale 320 240;
#N canvas 418 122 450 300 sroute 0;
#X obj 148 99 inlet;
#X obj 90 54 list split 1;
#X obj 90 31 inlet;
#X obj 90 188 outlet;
#X obj 90 124 select \$1;
#X obj 90 154 list;
#X connect 0 0 4 1;
#X connect 1 0 4 0;
#X connect 1 1 5 1;
#X connect 2 0 1 0;
#X connect 4 0 5 0;
#X connect 5 0 3 0;
#X restore 213 246 pd sroute;
#X obj 222 322 expr $f1+8-($f1%8);
#X obj 293 295 expr $f1+8-($f1%8);
#X msg 227 46 nightmode 1;
#X msg 240 74 draw 0;
#X msg 259 98 show 1;
#X obj 332 49 loadbang;
#X connect 0 0 4 0;
#X connect 2 0 4 1;
#X connect 3 0 4 2;
#X connect 4 0 11 0;
#X connect 4 0 14 0;
#X connect 4 1 7 0;
#X connect 4 1 17 0;
#X connect 7 1 8 0;
#X connect 8 0 17 1;
#X connect 10 0 12 0;
#X connect 10 0 11 1;
#X connect 10 1 13 0;
#X connect 10 1 11 3;
#X connect 10 2 18 0;
#X connect 10 3 19 0;
#X connect 11 0 16 0;
#X connect 12 0 11 2;
#X connect 13 0 11 4;
#X connect 16 0 1 0;
#X connect 17 0 10 0;
#X connect 18 0 12 1;
#X connect 19 0 13 1;
#X connect 20 0 4 0;
#X connect 21 0 4 0;
#X connect 22 0 4 0;
#X connect 23 0 20 0;
#X connect 23 0 21 0;
#X connect 23 0 22 0;
#X restore 708 337 pd extract_biggest_contour;
#X text 877 336 abstraction to extract biggest contour;
#X msg 752 434 binary \$1;
#X obj 822 435 tgl 15 0 empty sbin empty 17 7 0 10 -262144 -1 -1 0
1;
#X text 847 435 treat incoming frames as binary data;
#X text 845 462 calculates hu moments invariants;
#X obj 707 460 pdp_opencv_hu_moments;
#X obj 839 502 unpack f f f f f f f;
#X floatatom 849 529 30 0 0 0 - - -;
#X text 829 528 h1;
#X floatatom 860 551 30 0 0 0 - - -;
#X floatatom 871 572 30 0 0 0 - - -;
#X floatatom 884 593 30 0 0 0 - - -;
#X floatatom 900 615 30 0 0 0 - - -;
#X floatatom 912 635 30 0 0 0 - - -;
#X floatatom 921 658 30 0 0 0 - - -;
#X text 840 550 h2;
#X text 852 571 h3;
#X text 865 592 h4;
#X text 880 614 h5;
#X text 892 634 h6;
#X text 901 657 h7;
#X floatatom 778 406 5 0 0 0 - - -;
#X obj 707 404 pdp_rotate;
#X text 826 404 <-- rotate the frames;
#X floatatom 821 372 5 0 0 0 - - -;
#X obj 707 370 pdp_zoom;
#X text 859 370 <-- zoom the frames;
#X obj 773 371 / 100;
#X obj 764 527 r h1;
#X obj 800 527 -;
#X obj 809 551 -;
#X obj 820 574 -;
#X obj 835 596 -;
#X obj 851 618 -;
#X obj 865 637 -;
#X obj 872 657 -;
#X obj 773 551 r h2;
#X obj 784 574 r h3;
#X obj 799 596 r h4;
#X obj 815 617 r h5;
#X obj 829 637 r h6;
#X obj 836 657 r h7;
#X obj 708 493 pdp_xv;
#X floatatom 185 94 5 0 0 0 - - -;
#X msg 140 157 224;
#X text 46 -186 pdp_opencv_hu_moments :: Calculates the hu moments
of contours.;
#X connect 1 0 2 0;
#X connect 2 0 5 0;
#X connect 3 0 5 0;
#X connect 4 0 5 0;
#X connect 5 0 13 0;
#X connect 9 0 13 2;
#X connect 9 0 80 0;
#X connect 11 0 5 0;
#X connect 12 0 11 0;
#X connect 13 0 29 0;
#X connect 17 0 13 0;
#X connect 18 0 17 0;
#X connect 19 0 18 0;
#X connect 20 0 18 0;
#X connect 21 0 22 0;
#X connect 22 0 17 0;
#X connect 23 0 21 0;
#X connect 24 0 17 0;
#X connect 25 0 24 0;
#X connect 26 0 25 0;
#X connect 26 0 19 0;
#X connect 29 0 57 0;
#X connect 31 0 32 0;
#X connect 32 0 9 0;
#X connect 33 0 37 0;
#X connect 34 0 33 0;
#X connect 37 0 7 0;
#X connect 37 1 38 0;
#X connect 38 0 39 0;
#X connect 38 1 41 0;
#X connect 38 2 42 0;
#X connect 38 3 43 0;
#X connect 38 4 44 0;
#X connect 38 5 45 0;
#X connect 38 6 46 0;
#X connect 53 0 54 1;
#X connect 54 0 37 0;
#X connect 56 0 59 0;
#X connect 57 0 54 0;
#X connect 59 0 57 1;
#X connect 62 0 67 0;
#X connect 63 0 62 0;
#X connect 63 0 66 0;
#X connect 64 0 70 0;
#X connect 65 0 77 0;
#X connect 66 0 64 0;
#X connect 67 0 65 0;
#X connect 69 0 65 0;
#X connect 70 0 69 0;
#X connect 72 0 66 0;
#X connect 75 0 77 2;
#X connect 77 0 83 0;
#X connect 78 0 79 0;
#X connect 79 0 75 0;
#X connect 81 0 75 0;
#X connect 83 0 109 0;
#X connect 85 0 89 0;
#X connect 86 0 85 0;
#X connect 89 0 126 0;
#X connect 89 1 90 0;
#X connect 90 0 113 1;
#X connect 90 1 114 1;
#X connect 90 2 115 1;
#X connect 90 3 116 1;
#X connect 90 4 117 1;
#X connect 90 5 118 1;
#X connect 90 6 119 1;
#X connect 105 0 106 1;
#X connect 106 0 89 0;
#X connect 108 0 111 0;
#X connect 109 0 106 0;
#X connect 111 0 109 1;
#X connect 112 0 113 0;
#X connect 113 0 91 0;
#X connect 114 0 93 0;
#X connect 115 0 94 0;
#X connect 116 0 95 0;
#X connect 117 0 96 0;
#X connect 118 0 97 0;
#X connect 119 0 98 0;
#X connect 120 0 114 0;
#X connect 121 0 115 0;
#X connect 122 0 116 0;
#X connect 123 0 117 0;
#X connect 124 0 118 0;
#X connect 125 0 119 0;
#X connect 127 0 18 1;
#X connect 128 0 17 1;
|