From 4dd3be9ef7daad6b2ae0bb433d9cc7e1b4ac7a53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?llu=C3=ADs=20g=C3=B3mez=20i=20bigord=C3=A0?= Date: Sun, 27 Sep 2009 12:33:41 +0000 Subject: added examples from BALTAN workshop svn path=/trunk/externals/pix_opencv/; revision=12471 --- .../02_opencv_motempl+particle_system.pd | 374 +++++++++++++++++++++ 1 file changed, 374 insertions(+) create mode 100644 examples/02_opencv_motempl+particle_system/02_opencv_motempl+particle_system.pd (limited to 'examples/02_opencv_motempl+particle_system/02_opencv_motempl+particle_system.pd') diff --git a/examples/02_opencv_motempl+particle_system/02_opencv_motempl+particle_system.pd b/examples/02_opencv_motempl+particle_system/02_opencv_motempl+particle_system.pd new file mode 100644 index 0000000..5dd353c --- /dev/null +++ b/examples/02_opencv_motempl+particle_system/02_opencv_motempl+particle_system.pd @@ -0,0 +1,374 @@ +#N canvas 0 25 1259 669 10; +#X obj 422 769 route -1 0 1 2 3 4; +#X floatatom 425 849 5 0 0 0 - - -; +#X floatatom 460 849 5 0 0 0 - - -; +#X floatatom 497 849 5 0 0 0 - - -; +#X floatatom 531 849 5 0 0 0 - - -; +#X floatatom 454 898 5 0 0 0 - - -; +#X floatatom 489 898 5 0 0 0 - - -; +#X floatatom 526 898 5 0 0 0 - - -; +#X floatatom 560 898 5 0 0 0 - - -; +#X floatatom 498 954 5 0 0 0 - - -; +#X floatatom 533 954 5 0 0 0 - - -; +#X floatatom 570 954 5 0 0 0 - - -; +#X floatatom 604 954 5 0 0 0 - - -; +#X obj 422 820 unpack 0 0 0 0 0; +#X obj 451 869 unpack 0 0 0 0 0; +#X obj 495 925 unpack 0 0 0 0 0; +#X floatatom 568 848 5 0 0 0 - - -; +#X floatatom 598 898 5 0 0 0 - - -; +#X floatatom 642 954 5 0 0 0 - - -; +#X text 544 820 (-1) means the whole image; +#X text 619 846 Xcenter Ycenter Width Height Angle; +#X text 640 897 Xcenter Ycenter Width Height Angle; +#X text 687 953 Xcenter Ycenter Width Height Angle; +#X obj 510 1244 part_head; +#X text 620 1410 set the number per frame; +#X text 634 1442 set the age to kill at; +#X msg 719 1351 0.2 0 0 0.3; +#X obj 510 1283 part_size 1; +#X obj 510 1405 part_source 5; +#X obj 510 1459 part_info; +#X obj 511 1533 separator; +#X obj 511 1559 translate 1 0 0 0; +#X obj 511 1582 color; +#X obj 511 1622 scale; +#X msg 620 1669 draw line; +#X msg 591 1279 2; +#X obj 662 1586 unpack 0 0 0; +#X text 717 1551 this is rather velocity; +#X text 721 1567 than rotation; +#X obj 621 1649 loadbang; +#X obj 512 1688 square 0.2; +#X msg 642 1529 \$1 \$2 0; +#X obj 510 1356 part_color; +#X msg 542 1331 1 0 0; +#X msg 594 1331 0 0 1; +#X text 596 1513 we don't allow particles spread along the z-axis; +#X msg 591 1250 1; +#X obj 597 1614 * 360; +#X obj 657 1612 * 360; +#X obj 724 1611 * 360; +#X obj 173 391 pix_separator; +#X obj 317 388 pix_separator; +#X obj 317 421 pix_resize 180 144; +#X obj 647 1308 loadbang; +#X obj 510 1380 part_velocity sphere 0 0 0 0.1; +#X obj 510 1430 part_killold 20; +#X msg 632 1352 0 0 0 0.1; +#X msg 701 1634 0; +#X obj 512 1653 rotateXYZ; +#X obj 915 1232 part_head; +#X text 1025 1391 set the number per frame; +#X text 1039 1423 set the age to kill at; +#X msg 1124 1332 0.2 0 0 0.3; +#X obj 915 1264 part_size 1; +#X obj 915 1386 part_source 5; +#X obj 915 1440 part_info; +#X obj 916 1514 separator; +#X obj 916 1540 translate 1 0 0 0; +#X obj 916 1563 color; +#X obj 916 1603 scale; +#X msg 1025 1650 draw line; +#X msg 999 1260 2; +#X obj 1067 1567 unpack 0 0 0; +#X text 1122 1532 this is rather velocity; +#X text 1126 1548 than rotation; +#X obj 1026 1630 loadbang; +#X obj 917 1669 square 0.2; +#X msg 1047 1510 \$1 \$2 0; +#X obj 915 1337 part_color; +#X msg 947 1312 1 0 0; +#X msg 999 1312 0 0 1; +#X text 1001 1494 we don't allow particles spread along the z-axis +; +#X msg 999 1231 1; +#X obj 1002 1595 * 360; +#X obj 1062 1593 * 360; +#X obj 1129 1592 * 360; +#X obj 1052 1289 loadbang; +#X obj 915 1361 part_velocity sphere 0 0 0 0.1; +#X obj 915 1411 part_killold 20; +#X msg 1037 1333 0 0 0 0.1; +#X msg 1106 1615 0; +#X obj 917 1634 rotateXYZ; +#X obj 454 961 moses 0; +#X obj 499 989 moses 0; +#X obj 453 993 t b; +#X obj 499 1015 t b; +#X obj 453 1016 s out0; +#X obj 499 1040 s out1; +#X obj -181 48 cnv 15 600 90 empty empty empty 20 12 0 14 -260097 -66577 +0; +#X text -158 87 1.- Create the Gem Window; +#N canvas 0 0 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 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 restore 314 104 pd gemwin; +#X msg 314 71 create; +#X obj -180 165 cnv 15 600 180 empty empty empty 20 12 0 14 -260097 +-66577 0; +#X obj 382 202 openpanel; +#X msg 382 222 open \$1; +#X msg 388 265 auto \$1; +#X msg 399 289 colorspace RGB; +#X obj 392 248 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 384 182 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 317 317 pix_film; +#X obj 374 340 t b; +#X floatatom 372 318 5 0 0 0 - - -; +#X obj 317 173 gemhead; +#X text -157 204 2.- Load a video file.; +#X text -162 239 This example is to be used with the typical zenital +camera in an open space \, where you want to track the movement of +the poeple.; +#X text -160 288 A good video to test with can be found here ::; +#X text -162 313 http://muonics.net/cvMovies/Swarm_EindhovenTest_Watec_two-visitors.mov +; +#X text 409 180 <- Load a video file; +#X obj 419 246 loadbang; +#X obj -178 464 cnv 15 650 250 empty empty empty 20 12 0 14 -258113 +-66577 0; +#X floatatom 442 637 5 0 0 0 - - -; +#X floatatom 503 599 5 0 0 0 - - -; +#X text 482 639 Threshold value. (default 30); +#X text 545 598 Maximal duration of motion track in seconds. (default +1); +#X text 507 617 xxx; +#X msg 387 597 mhi_duration \$1; +#X floatatom 543 511 5 0 0 0 - - -; +#X msg 388 509 max_time_delta \$1; +#X floatatom 543 534 5 0 0 0 - - -; +#X msg 388 532 min_time_delta \$1; +#X floatatom 542 563 5 0 0 0 - - -; +#X msg 387 561 frame_buffer_num \$1; +#X floatatom 469 655 5 0 0 0 - - -; +#X floatatom 480 674 5 0 0 0 - - -; +#X text 520 676 Max size of the motion component (default 500); +#X text 510 655 Min size of the motion component (default 50); +#X text 584 562 Number of frames in the buffer. (default 4); +#X text 585 510 Max time delta in seconds. (default 0.5); +#X text 585 533 Min time delta in seconds. (default 0.05); +#X obj 317 680 pix_opencv_motempl; +#X text -155 514 For simple movement tracking you don't need \, the +default values will work well.; +#X text -156 487 3.- Setup the parameters for your analysis; +#X obj -180 1064 cnv 15 1250 170 empty empty empty 20 12 0 14 -261234 +-66577 0; +#X text 482 787 For each motion component; +#X text -157 1087 Here we convert the coordinates of detected motion +componets to gem coordinates \, and apply these values to two particle +systems. The example can be extended with many particle systems we +want or also to a generalized solution.; +#X obj 510 1124 gemhead; +#X obj 511 1207 rotateXYZ; +#X floatatom 572 1205 5 0 0 0 - - -; +#X obj 610 1090 - 72; +#X obj 566 1119 / 22.5; +#X obj 608 1119 / 18; +#X obj 568 1090 - 90; +#X obj 508 1168 translateXYZ; +#X obj 606 1141 * 1; +#X obj 915 1105 gemhead; +#X obj 916 1188 rotateXYZ; +#X floatatom 977 1188 5 0 0 0 - - -; +#X obj 1011 1076 - 72; +#X obj 967 1105 / 22.5; +#X obj 1009 1105 / 18; +#X obj 969 1076 - 90; +#X obj 913 1149 translateXYZ; +#X obj 1007 1127 * 1; +#X obj 646 1123 r out0; +#X msg 646 1151 -500; +#X msg 1054 1132 -500; +#X obj 1054 1104 r out1; +#X text 562 869 first component; +#X text 600 925 second component; +#X obj -179 1270 cnv 15 650 250 empty empty empty 20 12 0 14 -258113 +-66577 0; +#X text -157 1294 4.- Show/Hide analysis or original image; +#X obj 317 1356 pix_texture; +#X obj 173 1470 pix_texture; +#X obj 317 1384 square 4; +#X obj 173 1498 square 4; +#X obj 317 1326 spigot; +#X obj 350 1299 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 +0 1; +#X obj 173 1422 spigot; +#X obj 206 1396 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 +0 1; +#X text -174 1438 This example is the typical video projection to the +floor following the movement of the people. So image to project must +be just a black background with the particles.; +#X obj 228 1395 loadbang; +#X text 222 1296 show/hide analysis ->; +#X text 39 1394 show/hide original image ->; +#X connect 0 0 13 0; +#X connect 0 1 14 0; +#X connect 0 2 15 0; +#X connect 5 0 92 0; +#X connect 5 0 151 0; +#X connect 6 0 148 0; +#X connect 9 0 93 0; +#X connect 9 0 160 0; +#X connect 10 0 157 0; +#X connect 13 0 1 0; +#X connect 13 1 2 0; +#X connect 13 2 3 0; +#X connect 13 3 4 0; +#X connect 13 4 16 0; +#X connect 14 0 5 0; +#X connect 14 1 6 0; +#X connect 14 2 7 0; +#X connect 14 3 8 0; +#X connect 14 4 17 0; +#X connect 15 0 9 0; +#X connect 15 1 10 0; +#X connect 15 2 11 0; +#X connect 15 3 12 0; +#X connect 15 4 18 0; +#X connect 23 0 27 0; +#X connect 26 0 54 2; +#X connect 27 0 42 0; +#X connect 28 0 55 0; +#X connect 29 0 30 0; +#X connect 29 2 41 0; +#X connect 29 3 32 1; +#X connect 29 4 36 0; +#X connect 29 5 33 1; +#X connect 30 0 31 0; +#X connect 31 0 32 0; +#X connect 32 0 33 0; +#X connect 33 0 58 0; +#X connect 34 0 40 0; +#X connect 35 0 27 1; +#X connect 36 0 47 0; +#X connect 36 1 48 0; +#X connect 36 2 49 0; +#X connect 39 0 34 0; +#X connect 41 0 31 2; +#X connect 42 0 54 0; +#X connect 43 0 42 1; +#X connect 44 0 42 2; +#X connect 46 0 27 1; +#X connect 50 0 177 0; +#X connect 51 0 52 0; +#X connect 52 0 139 0; +#X connect 53 0 44 0; +#X connect 53 0 43 0; +#X connect 54 0 28 0; +#X connect 55 0 29 0; +#X connect 56 0 54 2; +#X connect 57 0 58 3; +#X connect 58 0 40 0; +#X connect 59 0 63 0; +#X connect 62 0 87 2; +#X connect 63 0 78 0; +#X connect 64 0 88 0; +#X connect 65 0 66 0; +#X connect 65 2 77 0; +#X connect 65 3 68 1; +#X connect 65 4 72 0; +#X connect 65 5 69 1; +#X connect 66 0 67 0; +#X connect 67 0 68 0; +#X connect 68 0 69 0; +#X connect 69 0 91 0; +#X connect 70 0 76 0; +#X connect 71 0 63 1; +#X connect 72 0 83 0; +#X connect 72 1 84 0; +#X connect 72 2 85 0; +#X connect 75 0 70 0; +#X connect 77 0 67 2; +#X connect 78 0 87 0; +#X connect 79 0 78 1; +#X connect 80 0 78 2; +#X connect 82 0 63 1; +#X connect 86 0 80 0; +#X connect 86 0 79 0; +#X connect 87 0 64 0; +#X connect 88 0 65 0; +#X connect 89 0 87 2; +#X connect 90 0 91 3; +#X connect 91 0 76 0; +#X connect 92 0 94 0; +#X connect 93 0 95 0; +#X connect 94 0 96 0; +#X connect 95 0 97 0; +#X connect 100 0 101 0; +#X connect 101 0 100 0; +#X connect 103 0 104 0; +#X connect 104 0 109 0; +#X connect 105 0 109 0; +#X connect 106 0 109 0; +#X connect 107 0 105 0; +#X connect 108 0 103 0; +#X connect 109 0 50 0; +#X connect 109 0 51 0; +#X connect 109 2 110 0; +#X connect 110 0 111 0; +#X connect 111 0 109 1; +#X connect 112 0 109 0; +#X connect 118 0 107 0; +#X connect 120 0 139 1; +#X connect 121 0 125 0; +#X connect 125 0 139 0; +#X connect 126 0 127 0; +#X connect 127 0 139 0; +#X connect 128 0 129 0; +#X connect 129 0 139 0; +#X connect 130 0 131 0; +#X connect 131 0 139 0; +#X connect 132 0 139 2; +#X connect 133 0 139 3; +#X connect 139 0 175 0; +#X connect 139 1 0 0; +#X connect 145 0 152 0; +#X connect 146 0 23 0; +#X connect 147 0 146 2; +#X connect 148 0 150 0; +#X connect 149 0 152 1; +#X connect 150 0 153 0; +#X connect 151 0 149 0; +#X connect 152 0 146 0; +#X connect 153 0 152 2; +#X connect 154 0 161 0; +#X connect 155 0 59 0; +#X connect 156 0 155 2; +#X connect 157 0 159 0; +#X connect 158 0 161 1; +#X connect 159 0 162 0; +#X connect 160 0 158 0; +#X connect 161 0 155 0; +#X connect 162 0 161 2; +#X connect 163 0 164 0; +#X connect 164 0 152 1; +#X connect 164 0 152 2; +#X connect 165 0 161 1; +#X connect 165 0 161 2; +#X connect 166 0 165 0; +#X connect 171 0 173 0; +#X connect 172 0 174 0; +#X connect 175 0 171 0; +#X connect 176 0 175 1; +#X connect 177 0 172 0; +#X connect 178 0 177 1; +#X connect 180 0 178 0; -- cgit v1.2.1