#N canvas 1556 165 1339 660 10; #X obj 977 55 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 0; #N canvas 189 149 454 304 gemwin 0; #X obj 130 218 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 129 165 create \, 1; #X msg 205 166 destroy; #N canvas 87 154 363 340 Gem.init 0; #X obj 112 15 loadbang; #X msg 62 93 reset; #X obj 49 135 outlet; #X msg 107 89 dimen 320 240; #X obj 107 51 t b b b; #X connect 0 0 4 0; #X connect 1 0 2 0; #X connect 3 0 2 0; #X connect 4 0 3 0; #X connect 4 2 1 0; #X restore 289 80 pd Gem.init; #X obj 128 109 t b b b; #X msg 247 137 frame 25; #X msg 156 138 dimen 640 480; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 3 0 9 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 9 0 6 0; #X connect 9 1 11 0; #X connect 9 2 10 0; #X connect 10 0 0 0; #X connect 11 0 0 0; #X restore 984 101 pd gemwin; #X msg 984 80 create; #X text 987 62 Create window and render; #X obj 426 308 cnv 15 600 300 empty empty empty 20 12 0 14 -24198 -66577 0; #X obj 559 476 unpack f f; #X floatatom 645 476 5 0 0 0 - - -; #X floatatom 647 496 5 0 0 0 - - -; #X text 687 475 largest amplitude of movement; #X text 687 496 angle of the block with the maximum movement; #X text 685 508 ( in degrees [-180 \, 180]); #X floatatom 506 525 5 0 0 0 - - -; #X text 548 546 marked with a white arrow on the stream; #X text 548 522 average angle of the blocks movement; #X text 547 534 ( in degrees [-180 \, 180]); #X obj 507 -62 gemhead; #X obj 454 228 separator; #X obj 561 -62 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 -1; #X obj 618 113 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 -1 -1; #X floatatom 600 78 5 0 10000 1 frame# - -; #X obj 561 -33 openpanel; #X msg 561 -13 open \$1; #X obj 549 96 pix_film; #X msg 567 30 auto \$1; #X obj 567 12 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 ; #X msg 662 13 colorspace RGBA; #X msg 767 13 colorspace RGB; #X msg 871 13 colorspace Grey; #X obj 662 -15 loadbang; #X obj 296 224 separator; #X obj 296 250 translateXYZ -2 0 0; #X obj 454 253 translateXYZ 2 0 0; #N canvas 0 22 450 300 vswitch 0; #X obj 144 263 outlet; #X obj 36 26 inlet; #X obj 260 29 inlet; #X obj 36 133 spigot; #X obj 260 141 spigot; #X obj 119 64 loadbang; #X msg 83 93 0; #X msg 113 93 1; #X msg 296 104 0; #X msg 326 104 1; #X obj 399 34 inlet; #X obj 399 67 select 0; #X connect 1 0 3 0; #X connect 2 0 4 0; #X connect 3 0 0 0; #X connect 4 0 0 0; #X connect 5 0 7 0; #X connect 5 0 8 0; #X connect 6 0 3 1; #X connect 7 0 3 1; #X connect 8 0 4 1; #X connect 9 0 4 1; #X connect 10 0 11 0; #X connect 11 0 7 0; #X connect 11 0 8 0; #X connect 11 1 9 0; #X connect 11 1 6 0; #X restore 385 125 pd vswitch; #X obj 453 125 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 312 94 pix_video; #X obj 315 -64 gemhead; #X msg 351 19 device 0; #X msg 360 50 driver 1; #X msg 337 -35 dialog; #X msg 342 -5 device /dev/dv1394-0; #X obj 293 612 pix_texture; #X obj 293 640 square 2; #X obj 454 617 pix_texture; #X text 504 146 this object can work on small frames unless you have a very powerful machine; #X obj 455 641 square 2; #X obj 295 201 pix_separator; #X obj 454 205 pix_separator; #X text 974 244 with a great help from Mateu Batle & Alberto de Rodrigo from the iBit foundation.; #X text 973 208 the main purpose of this object is to calculate the average direction and the intensity of the movement in a video stream. ; #X text 974 268 comments to ydegoyon@gmail.com; #X text 976 129 pix_opencv_of_lk : Lucas Kanade optical flow algorithm. ; #X obj 599 419 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X msg 514 417 nightmode \$1; #X floatatom 585 311 5 0 0 0 - - -; #X floatatom 588 364 5 0 0 0 - - -; #X msg 501 362 threshold \$1; #X msg 504 391 minblocks \$1; #X floatatom 591 392 5 0 0 0 - - -; #X text 621 418 set nightmode; #X text 629 386 minimum nuber of blocks to detect the movement; #X text 626 399 ( default 10 ); #X msg 491 309 winsize \$1 \$2; #X obj 454 444 pix_opencv_of_lk; #X text 628 312 set window size ( width height ) [ default : 9x9 ] ; #X text 630 328 window width and height must be oneof (1 \, 3 \, 5 \, 7 \, 9 \, 11 \, 13 \, 15); #X text 627 363 threshold value for the detection of movement (default 100); #X obj 383 164 pix_resize 320 240; #X obj 389 187 pix_rgba; #X text 974 147 IMPORTANT: this object is quite experimental. For OpticalFlow analisys we recommend [pix_opencv_of_bm]; #X obj 978 178 pix_opencv_of_bm; #X connect 1 0 2 0; #X connect 2 0 1 0; #X connect 5 0 6 0; #X connect 5 1 7 0; #X connect 15 0 22 0; #X connect 16 0 31 0; #X connect 17 0 20 0; #X connect 18 0 19 0; #X connect 19 0 22 1; #X connect 20 0 21 0; #X connect 21 0 22 0; #X connect 22 0 32 1; #X connect 22 2 18 0; #X connect 23 0 22 0; #X connect 24 0 23 0; #X connect 25 0 22 0; #X connect 25 0 34 0; #X connect 26 0 22 0; #X connect 26 0 34 0; #X connect 27 0 22 0; #X connect 27 0 34 0; #X connect 28 0 25 0; #X connect 28 0 24 0; #X connect 29 0 30 0; #X connect 30 0 40 0; #X connect 31 0 62 0; #X connect 32 0 66 0; #X connect 33 0 32 2; #X connect 34 0 32 0; #X connect 35 0 34 0; #X connect 36 0 34 0; #X connect 37 0 34 0; #X connect 38 0 34 0; #X connect 39 0 34 0; #X connect 40 0 41 0; #X connect 42 0 44 0; #X connect 45 0 29 0; #X connect 46 0 16 0; #X connect 51 0 52 0; #X connect 52 0 62 0; #X connect 53 0 61 0; #X connect 54 0 55 0; #X connect 55 0 62 0; #X connect 56 0 62 0; #X connect 57 0 56 0; #X connect 61 0 62 0; #X connect 62 0 42 0; #X connect 62 1 11 0; #X connect 62 2 5 0; #X connect 66 0 67 0; #X connect 67 0 45 0; #X connect 67 0 46 0;