#N canvas 68 50 1040 775 10; #X obj 441 -19 gemhead; #X obj 365 456 pix_texture; #X obj 365 484 square 2; #X obj 21 444 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 0; #N canvas 5 49 454 304 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 182 68 set create; #X msg 132 112 create \, 1; #X msg 238 112 destroy; #N canvas 92 178 247 179 Gem.init 0; #X obj 118 46 loadbang; #X msg 118 81 reset; #X obj 118 113 outlet; #X connect 0 0 1 0; #X connect 1 0 2 0; #X restore 289 80 pd Gem.init; #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 restore 26 488 pd gemwin; #X msg 26 464 destroy; #X text 22 444 Create window and render; #X obj 200 368 pix_texture; #X obj 200 396 square 2; #X obj 266 167 translateXYZ -2 0 0; #X obj 281 199 separator; #X obj 344 254 cnv 15 550 180 empty empty empty 20 12 0 14 -24198 -66577 0; #X obj 511 -66 bng 25 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 527 164 unpack 0 0 0; #X floatatom 517 187 5 0 0 3 length - -; #X floatatom 566 187 5 0 0 3 width - -; #X floatatom 616 187 5 0 0 3 height - -; #X obj 571 145 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 -1 -1; #X floatatom 553 110 5 0 10000 1 frame# - -; #X obj 511 -37 openpanel; #X msg 511 -17 open \$1; #X obj 502 128 pix_film; #X msg 479 23 auto \$1; #X obj 479 5 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 ; #X obj 281 227 translateXYZ 4 0 0; #X floatatom 482 374 5 0 0 0 - - -; #X obj 365 406 pix_opencv_contours_boundingrect; #X obj 378 110 pix_invert; #X obj 319 135 pix_threshold; #X floatatom 322 103 5 0 0 0 - - -; #X msg 289 101 0.33; #X obj 234 101 loadbang; #X text 517 370 min area in pixels (default 1); #X floatatom 568 388 5 0 0 0 - - -; #X text 606 387 max area in pixels (default 76800); #X floatatom 498 542 5 0 0 0 - - -; #X floatatom 533 542 5 0 0 0 - - -; #X floatatom 570 542 5 0 0 0 - - -; #X floatatom 604 542 5 0 0 0 - - -; #X obj 495 513 unpack 0 0 0 0 0; #X obj 495 462 route 0 1 2 3 4; #X text 648 542 Xorigin Yorigin Width Height; #X text 555 480 For each contour detected; #X text 655 -107 It is useful as a motion tracker if you have well isolated silouets of the objects you want to track.; #X msg 385 260 mode \$1; #X obj 446 261 hradio 15 1 0 4 empty empty empty 0 -8 0 10 -262144 -1 -1 0; #X text 515 262 retrieval mode ( see cvFindContours ); #X obj 481 286 hradio 15 1 0 5 empty empty empty 0 -8 0 10 -262144 -1 -1 0; #X text 563 286 retrieval method ( see cvFindContours ); #X msg 414 285 method \$1; #X msg 437 308 maxmove \$1; #X floatatom 511 309 5 0 0 0 - - -; #X floatatom 535 333 5 0 0 0 - - -; #X msg 447 330 ftolerance \$1; #X text 554 308 maximum move of a countour ( default 10 ); #X text 571 331 frame tolerance for identification ( default 5 ); #X text 656 -141 pix_opencv_contours_boundingrect :: Calculates up-right bounding rectangle of all contours of a binary image.; #X text 655 -68 This object considers a contour to be analyzed any group of white pixels in a black background \, for this reason you will find useful to use pdp_bgsubstract or pdp_threshold to obtain a correct input for pix_opencv_contours_boundingrect.; #X text 655 -14 pix_opencv_contours_boundingrect works detecting any white areas in the input image \, it's important to set max/min values of the areas you want to detect to filter non interesting noise or areas \, also sometimes you will need to use pix_opencv_morphology to transform the contours of the shapes to be analyzed..; #X msg 490 350 clear; #X floatatom 598 445 5 0 0 0 - - -; #X text 636 446 number of contours; #X msg 531 87 colorspace RGBA; #X msg 521 66 colorspace RGB; #X msg 513 46 colorspace Gray; #X obj 562 21 loadbang; #X connect 0 0 21 0; #X connect 1 0 2 0; #X connect 4 0 5 0; #X connect 5 0 4 0; #X connect 7 0 8 0; #X connect 9 0 7 0; #X connect 9 0 10 0; #X connect 10 0 24 0; #X connect 12 0 19 0; #X connect 13 0 14 0; #X connect 13 1 15 0; #X connect 13 2 16 0; #X connect 17 0 18 0; #X connect 18 0 21 1; #X connect 19 0 20 0; #X connect 20 0 21 0; #X connect 21 0 27 0; #X connect 21 1 13 0; #X connect 21 2 17 0; #X connect 22 0 21 0; #X connect 23 0 22 0; #X connect 24 0 26 0; #X connect 25 0 26 1; #X connect 26 0 1 0; #X connect 26 1 40 0; #X connect 26 2 60 0; #X connect 27 0 28 0; #X connect 28 0 9 0; #X connect 29 0 28 1; #X connect 30 0 29 0; #X connect 31 0 30 0; #X connect 33 0 26 2; #X connect 39 0 35 0; #X connect 39 1 36 0; #X connect 39 2 37 0; #X connect 39 3 38 0; #X connect 40 0 39 0; #X connect 44 0 26 0; #X connect 45 0 44 0; #X connect 47 0 49 0; #X connect 49 0 26 0; #X connect 50 0 26 0; #X connect 51 0 50 0; #X connect 52 0 53 0; #X connect 53 0 26 0; #X connect 59 0 26 0; #X connect 62 0 21 0; #X connect 63 0 21 0; #X connect 64 0 21 0; #X connect 65 0 62 0;