From ba994f4404b6eadcab4e0ead46ef4d3ffeceb024 Mon Sep 17 00:00:00 2001 From: Antoine Villeret Date: Thu, 10 Jul 2014 14:39:22 +0000 Subject: lots of changes ! 1. switch to a new build system based on automake (because we need to check for some lib on ./configure before make) 2. sort files in different directory 3. add some new features (some of them need OpenCV >= 2.4.5) svn path=/trunk/externals/pix_opencv/; revision=17324 --- help/Makefile.am | 47 ++ help/model | 1 + help/pix_opencv_athreshold-help.pd | 188 +++++++ help/pix_opencv_backgroundsubtractor-help.pd | 455 ++++++++++++++++ help/pix_opencv_bgstats-help.pd | 150 ++++++ help/pix_opencv_bgsubstract-help.pd | 158 ++++++ help/pix_opencv_blobtrack-help.pd | 279 ++++++++++ help/pix_opencv_calibration-help.pd | 258 +++++++++ help/pix_opencv_camshift-help.pd | 207 ++++++++ help/pix_opencv_clahe-help.pd | 139 +++++ help/pix_opencv_colorfilt-help.pd | 164 ++++++ help/pix_opencv_contours-help.pd | 731 ++++++++++++++++++++++++++ help/pix_opencv_contours_boundingrect-help.pd | 255 +++++++++ help/pix_opencv_contours_convexhull-help.pd | 181 +++++++ help/pix_opencv_contours_convexity-help.pd | 191 +++++++ help/pix_opencv_dft-help.pd | 157 ++++++ help/pix_opencv_distrans-help.pd | 162 ++++++ help/pix_opencv_edge-help.pd | 144 +++++ help/pix_opencv_facetracker-help.pd | 415 +++++++++++++++ help/pix_opencv_findchessboardcorners-help.pd | 185 +++++++ help/pix_opencv_floodfill-help.pd | 209 ++++++++ help/pix_opencv_haarcascade-help.pd | 204 +++++++ help/pix_opencv_hist_compare-help.pd | 168 ++++++ help/pix_opencv_hough_circles-help.pd | 191 +++++++ help/pix_opencv_hough_lines-help.pd | 213 ++++++++ help/pix_opencv_hu_compare-help.pd | 240 +++++++++ help/pix_opencv_hu_moments-help.pd | 147 ++++++ help/pix_opencv_knear-help.pd | 94 ++++ help/pix_opencv_laplace-help.pd | 153 ++++++ help/pix_opencv_lk-help.pd | 242 +++++++++ help/pix_opencv_matchshape-help.pd | 103 ++++ help/pix_opencv_morphology-help.pd | 163 ++++++ help/pix_opencv_motempl-help.pd | 231 ++++++++ help/pix_opencv_of_bm-help.pd | 214 ++++++++ help/pix_opencv_of_hs-help.pd | 207 ++++++++ help/pix_opencv_of_lk-help.pd | 205 ++++++++ help/pix_opencv_opticalflow-help.pd | 91 ++++ help/pix_opencv_pgh_compare-help.pd | 225 ++++++++ help/pix_opencv_surf-help.pd | 220 ++++++++ help/pix_opencv_threshold-help.pd | 169 ++++++ help/pix_opencv_trackKnn-help.pd | 275 ++++++++++ help/pix_opencv_warpperspective-help.pd | 119 +++++ 42 files changed, 8550 insertions(+) create mode 100644 help/Makefile.am create mode 120000 help/model create mode 100644 help/pix_opencv_athreshold-help.pd create mode 100644 help/pix_opencv_backgroundsubtractor-help.pd create mode 100644 help/pix_opencv_bgstats-help.pd create mode 100644 help/pix_opencv_bgsubstract-help.pd create mode 100644 help/pix_opencv_blobtrack-help.pd create mode 100644 help/pix_opencv_calibration-help.pd create mode 100644 help/pix_opencv_camshift-help.pd create mode 100644 help/pix_opencv_clahe-help.pd create mode 100644 help/pix_opencv_colorfilt-help.pd create mode 100644 help/pix_opencv_contours-help.pd create mode 100644 help/pix_opencv_contours_boundingrect-help.pd create mode 100644 help/pix_opencv_contours_convexhull-help.pd create mode 100644 help/pix_opencv_contours_convexity-help.pd create mode 100644 help/pix_opencv_dft-help.pd create mode 100644 help/pix_opencv_distrans-help.pd create mode 100644 help/pix_opencv_edge-help.pd create mode 100644 help/pix_opencv_facetracker-help.pd create mode 100644 help/pix_opencv_findchessboardcorners-help.pd create mode 100644 help/pix_opencv_floodfill-help.pd create mode 100644 help/pix_opencv_haarcascade-help.pd create mode 100644 help/pix_opencv_hist_compare-help.pd create mode 100644 help/pix_opencv_hough_circles-help.pd create mode 100644 help/pix_opencv_hough_lines-help.pd create mode 100644 help/pix_opencv_hu_compare-help.pd create mode 100644 help/pix_opencv_hu_moments-help.pd create mode 100644 help/pix_opencv_knear-help.pd create mode 100644 help/pix_opencv_laplace-help.pd create mode 100644 help/pix_opencv_lk-help.pd create mode 100644 help/pix_opencv_matchshape-help.pd create mode 100644 help/pix_opencv_morphology-help.pd create mode 100644 help/pix_opencv_motempl-help.pd create mode 100644 help/pix_opencv_of_bm-help.pd create mode 100644 help/pix_opencv_of_hs-help.pd create mode 100644 help/pix_opencv_of_lk-help.pd create mode 100644 help/pix_opencv_opticalflow-help.pd create mode 100644 help/pix_opencv_pgh_compare-help.pd create mode 100644 help/pix_opencv_surf-help.pd create mode 100644 help/pix_opencv_threshold-help.pd create mode 100644 help/pix_opencv_trackKnn-help.pd create mode 100644 help/pix_opencv_warpperspective-help.pd (limited to 'help') diff --git a/help/Makefile.am b/help/Makefile.am new file mode 100644 index 0000000..88ae819 --- /dev/null +++ b/help/Makefile.am @@ -0,0 +1,47 @@ +AUTOMAKE_OPTIONS = foreign + +SUFFIXES = .pd + +pix_opencvhelpdir=$(pkglibdir) + +dist_pix_opencvhelp_DATA = \ + pix_opencv_athreshold-help.pd \ + pix_opencv_backgroundsubtractor-help.pd \ + pix_opencv_bgstats-help.pd \ + pix_opencv_bgsubstract-help.pd \ + pix_opencv_blobtrack-help.pd \ + pix_opencv_calibration-help.pd \ + pix_opencv_camshift-help.pd \ + pix_opencv_clahe-help.pd \ + pix_opencv_colorfilt-help.pd \ + pix_opencv_contours_boundingrect-help.pd \ + pix_opencv_contours_convexhull-help.pd \ + pix_opencv_contours_convexity-help.pd \ + pix_opencv_contours-help.pd \ + pix_opencv_dft-help.pd \ + pix_opencv_distrans-help.pd \ + pix_opencv_edge-help.pd \ + pix_opencv_facetracker-help.pd \ + pix_opencv_findchessboardcorners-help.pd \ + pix_opencv_floodfill-help.pd \ + pix_opencv_haarcascade-help.pd \ + pix_opencv_hist_compare-help.pd \ + pix_opencv_hough_circles-help.pd \ + pix_opencv_hough_lines-help.pd \ + pix_opencv_hu_compare-help.pd \ + pix_opencv_hu_moments-help.pd \ + pix_opencv_knear-help.pd \ + pix_opencv_laplace-help.pd \ + pix_opencv_lk-help.pd \ + pix_opencv_matchshape-help.pd \ + pix_opencv_morphology-help.pd \ + pix_opencv_motempl-help.pd \ + pix_opencv_of_bm-help.pd \ + pix_opencv_of_hs-help.pd \ + pix_opencv_of_lk-help.pd \ + pix_opencv_opticalflow-help.pd \ + pix_opencv_pgh_compare-help.pd \ + pix_opencv_surf-help.pd \ + pix_opencv_threshold-help.pd \ + pix_opencv_trackKnn-help.pd \ + pix_opencv_warpperspective-help.pd diff --git a/help/model b/help/model new file mode 120000 index 0000000..bce1528 --- /dev/null +++ b/help/model @@ -0,0 +1 @@ +../model/ \ No newline at end of file diff --git a/help/pix_opencv_athreshold-help.pd b/help/pix_opencv_athreshold-help.pd new file mode 100644 index 0000000..61afeba --- /dev/null +++ b/help/pix_opencv_athreshold-help.pd @@ -0,0 +1,188 @@ +#N canvas 67 259 976 687 10; +#X obj -362 59 cnv 15 430 470 empty empty empty 20 12 0 14 -233017 +-66577 0; +#X obj -362 13 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text -353 17 Arguments:; +#X obj -363 -83 cnv 15 430 90 empty empty empty 20 12 0 14 -233017 +-66577 0; +#X text -332 37 none; +#X obj 74 -140 cnv 15 510 670 empty empty empty 20 12 0 14 -228992 +-66577 0; +#X obj 250 -136 gemhead; +#X obj 234 459 pix_texture; +#X obj 234 478 square 2; +#X obj 356 452 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 65 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#N canvas 87 154 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 obj 162 241 gemwin; +#X msg 161 188 create \, 1; +#X msg 237 189 destroy; +#X msg 283 161 frame 25; +#X obj 164 126 t b b b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 10 0; +#X connect 2 1 4 0; +#X connect 2 1 8 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 7 0; +#X connect 10 2 9 0; +#X restore 366 496 pd gemwin; +#X msg 366 478 destroy; +#X obj 79 463 pix_texture; +#X obj 79 483 square 2; +#X obj 234 171 separator; +#X obj 262 -109 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 319 66 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 301 31 5 0 10000 1 frame# - -; +#X obj 262 -80 openpanel; +#X msg 262 -60 open \$1; +#X obj 250 49 pix_film; +#X msg 268 -17 auto \$1; +#X obj 268 -35 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 +1; +#X obj 227 217 cnv 15 350 230 empty empty empty 20 12 0 14 -4034 -66577 +0; +#X text 364 458 Create window and render; +#X obj 234 417 pix_opencv_athreshold; +#X floatatom 393 388 5 0 0 0 - - -; +#X msg 288 326 mode \$1; +#X floatatom 390 360 5 0 0 0 - - -; +#X text 426 388 ( default 3 ); +#X msg 264 240 method \$1; +#X msg 286 287 dim \$1; +#X floatatom 337 290 5 0 0 0 - - -; +#X text -344 367 written by Yves Degoyon ( ydegoyon@gmail.com ); +#X msg 363 -34 colorspace RGBA; +#X msg 378 -16 colorspace RGB; +#X msg 388 4 colorspace Grey; +#X obj 363 -62 loadbang; +#X obj 234 142 pix_separator; +#X obj 79 174 separator; +#X obj 79 145 pix_separator; +#X obj 79 199 translateXYZ -2 0 0; +#X obj 234 196 translateXYZ 2 0 0; +#N canvas 115 397 321 254 vswitch 0; +#X obj -109 160 outlet; +#X obj -109 31 inlet; +#X obj -5 31 inlet; +#X obj 40 31 inlet; +#X obj -109 88 spigot 1; +#X obj -5 90 spigot 0; +#X obj -64 67 == 0; +#X connect 1 0 4 0; +#X connect 2 0 5 0; +#X connect 3 0 5 1; +#X connect 3 0 6 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 6 0 4 1; +#X restore 79 84 pd vswitch; +#X obj 147 85 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X obj 79 52 pix_video; +#X obj 79 -136 gemhead; +#X msg 118 -23 device 0; +#X msg 127 8 driver 1; +#X msg 104 -77 dialog; +#X msg 109 -47 device /dev/dv1394-0; +#X text 373 289 value to correct the theshold; +#X text 390 346 MaxValue (default 255); +#X text 367 325 inverse mode ( default 0 ); +#X text -356 -79 Thresholding is used to segment an image by setting +all pixels whose intensity values are above a threshold to a foreground +value and all the remaining pixels to a background value.; +#X text -354 66 Whereas the conventional thresholding operator uses +a global threshold for all pixels \, adaptive thresholding changes +the threshold dynamically over the image. This more sophisticated version +of thresholding can accommodate changing lighting conditions in the +image \, e.g. those occurring as a result of a strong illumination +gradient or shadows.; +#X text -325 205 - zero otherwise; +#X text -351 168 Adaptive thresholding sets a pixel dst(x \, y) value +to:; +#X text -325 190 - MaxValue (see MaxValue inlet) if src(x \, y) > T(x +\, y); +#X text -347 238 Where T(x \, y) is a threshold calculated individually +for each pixel. For the method ADAPTIVE_THRESH_MEAN_C the threshold +value is the mean of a blockSize x blockSize (see blocksize inlet) +neighborhood of (x \, y) \, minus dim parameter value (see dim message). +; +#X text -347 314 For the method ADAPTIVE_THRESH_GAUSSIAN_C the threshold +value is the weighted sum (i.e. cross-correlation with a Gaussian window) +of a blockSize x blockSize neighborhood of (x \, y) \, minus dim parameter +value.; +#X text 391 374 blockSize; +#X obj 338 241 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 256 218 Thresholding method ( default 0 ); +#X obj 347 327 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 356 235 0 = CV_ADAPTIVE_THRESH_MEAN_C; +#X text 356 245 1 = CV_ADAPTIVE_THRESH_GAUSSIAN_C; +#X obj 79 110 pix_rgba; +#X text -356 -103 pix_opencv_athreshold :; +#X connect 6 0 20 0; +#X connect 7 0 8 0; +#X connect 10 0 11 0; +#X connect 11 0 10 0; +#X connect 12 0 13 0; +#X connect 14 0 42 0; +#X connect 15 0 18 0; +#X connect 16 0 17 0; +#X connect 17 0 20 1; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 20 0 43 1; +#X connect 20 2 16 0; +#X connect 21 0 20 0; +#X connect 22 0 21 0; +#X connect 25 0 7 0; +#X connect 26 0 25 2; +#X connect 27 0 25 0; +#X connect 28 0 25 1; +#X connect 30 0 25 0; +#X connect 31 0 25 0; +#X connect 32 0 31 0; +#X connect 34 0 20 0; +#X connect 34 0 45 0; +#X connect 35 0 20 0; +#X connect 36 0 20 0; +#X connect 37 0 34 0; +#X connect 37 0 22 0; +#X connect 38 0 14 0; +#X connect 39 0 41 0; +#X connect 40 0 39 0; +#X connect 41 0 12 0; +#X connect 42 0 25 0; +#X connect 43 0 67 0; +#X connect 44 0 43 2; +#X connect 45 0 43 0; +#X connect 46 0 45 0; +#X connect 47 0 45 0; +#X connect 48 0 45 0; +#X connect 49 0 45 0; +#X connect 50 0 45 0; +#X connect 62 0 30 0; +#X connect 64 0 27 0; +#X connect 67 0 40 0; +#X connect 67 0 38 0; diff --git a/help/pix_opencv_backgroundsubtractor-help.pd b/help/pix_opencv_backgroundsubtractor-help.pd new file mode 100644 index 0000000..c9c88b5 --- /dev/null +++ b/help/pix_opencv_backgroundsubtractor-help.pd @@ -0,0 +1,455 @@ +#N canvas 918 248 963 626 10; +#X obj 20 43 cnv 15 430 380 empty empty empty 20 12 0 14 -228856 -66577 +0; +#X obj 20 -3 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X obj 19 -99 cnv 15 430 90 empty empty empty 20 12 0 14 -228856 -66577 +0; +#X text 24 -135 Class: pix_opencv; +#X obj 455 -176 cnv 15 500 600 empty empty empty 20 12 0 14 -228992 +-66577 0; +#X obj 488 261 pix_texture; +#X obj 665 230 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 3 81 454 304 gemwin 0; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 65 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#N canvas 87 154 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 obj 162 241 gemwin; +#X msg 342 184 destroy; +#X msg 283 161 frame 25; +#X obj 164 126 t b b b; +#X msg 161 189 dimen 640 560 \, create \, 1; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 9 0; +#X connect 2 1 4 0; +#X connect 2 1 7 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 10 0; +#X connect 9 2 8 0; +#X connect 10 0 6 0; +#X restore 675 276 pd gemwin; +#X msg 675 256 destroy; +#X text 673 236 Create window and render; +#X obj 485 -34 cnv 15 400 260 empty empty empty 20 12 0 14 -4034 -66577 +0; +#X obj 488 282 rectangle 4 3; +#X text 40 15 ; +#X text 29 1 Arguments: (optional); +#X text 62 343 see also :; +#X obj 104 367 pix_opencv_bgstats; +#X obj 104 387 pix_threshold; +#X msg 511 18 algo \$1; +#N canvas 320 153 576 492 parameters 1; +#X obj 21 21 cnv 15 400 80 empty empty readProperties 20 12 0 14 -233017 +-66577 0; +#X obj 29 47 hradio 15 1 0 4 \$0-propreadId \$0-propreadId empty 0 +-8 0 10 -262144 -1 -1 0; +#X obj 30 70 cnv 15 260 20 empty \$0-propreadName 10 9 0 14 +-203904 -66577 0; +#N canvas 1296 443 597 537 PropertyLogic 0; +#N canvas 570 124 774 460 id2property 0; +#X obj 353 106 r \$0-info; +#X obj 405 176 t b f; +#X obj 353 174 list; +#X obj 353 219 list prepend; +#X msg 353 196 \$1; +#X obj 353 239 t l l; +#X obj 95 197 list prepend; +#X obj 95 69 inlet readID; +#X obj 225 70 inlet writeID; +#X obj 180 378 outlet readName; +#X obj 310 356 outlet writeName; +#X obj 95 176 t b f; +#X obj 95 219 list split; +#X obj 180 316 symbol; +#X msg 180 291 symbol \$1; +#X obj 225 197 list prepend; +#X obj 225 176 t b f; +#X obj 225 219 list split; +#X obj 310 316 symbol; +#X msg 310 291 symbol \$1; +#X obj 95 91 route float; +#X obj 225 92 route float; +#X msg 432 333 number \$1; +#X obj 432 353 s \$0-propreadId; +#X obj 420 376 s \$0-propwriteId; +#X obj 460 275 loadbang; +#X obj 123 258 route bang; +#X obj 253 258 route bang; +#X obj 353 152 route paramList params; +#X msg 460 296 1; +#X connect 0 0 28 0; +#X connect 1 0 3 1; +#X connect 1 1 22 0; +#X connect 2 0 4 0; +#X connect 3 0 5 0; +#X connect 4 0 3 0; +#X connect 5 0 6 1; +#X connect 5 0 15 1; +#X connect 5 1 3 1; +#X connect 6 0 12 0; +#X connect 7 0 20 0; +#X connect 8 0 21 0; +#X connect 11 0 6 0; +#X connect 11 1 12 1; +#X connect 12 1 26 0; +#X connect 13 0 9 0; +#X connect 14 0 13 0; +#X connect 15 0 17 0; +#X connect 16 0 15 0; +#X connect 16 1 17 1; +#X connect 17 1 27 0; +#X connect 18 0 10 0; +#X connect 19 0 18 0; +#X connect 20 0 11 0; +#X connect 21 0 16 0; +#X connect 22 0 23 0; +#X connect 22 0 24 0; +#X connect 25 0 29 0; +#X connect 26 1 14 0; +#X connect 27 1 19 0; +#X connect 28 0 2 0; +#X connect 28 1 1 0; +#X connect 29 0 22 0; +#X restore 188 192 pd id2property; +#X obj 350 429 list trim; +#X obj 350 451 t b a; +#N canvas 645 504 450 300 getProp 0; +#X obj 44 177 s \$0-propreadName; +#X msg 44 156 label \$1; +#X msg 165 156 get \$1; +#X obj 44 81 inlet; +#X obj 165 178 outlet; +#X obj 290 57 r \$0-info; +#N canvas 3 50 450 300 sroute 0; +#X obj 73 12 inlet; +#X obj 312 9 inlet; +#X obj 73 113 outlet; +#X obj 73 34 list split 1; +#X obj 73 56 select s; +#X obj 73 78 list prepend; +#X connect 0 0 3 0; +#X connect 1 0 4 1; +#X connect 3 0 4 0; +#X connect 3 1 5 1; +#X connect 4 0 5 0; +#X connect 5 0 2 0; +#X restore 290 113 pd sroute; +#X obj 44 123 t s s s; +#X msg 290 226 label \$1; +#X obj 290 247 s \$0-propreadValue; +#X obj 290 135 route float; +#X obj 290 157 makefilename %g; +#X obj 106 29 loadbang; +#X obj 106 51 t b b; +#X msg 106 73 symbol ; +#X msg 196 74 symbol --; +#X obj 353 181 symbol; +#X obj 290 79 route param; +#X connect 1 0 0 0; +#X connect 2 0 4 0; +#X connect 3 0 7 0; +#X connect 5 0 17 0; +#X connect 6 0 10 0; +#X connect 7 0 1 0; +#X connect 7 1 2 0; +#X connect 7 2 6 1; +#X connect 8 0 9 0; +#X connect 10 0 11 0; +#X connect 10 1 16 0; +#X connect 11 0 8 0; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 13 1 15 0; +#X connect 14 0 1 0; +#X connect 15 0 8 0; +#X connect 16 0 8 0; +#X connect 17 0 6 0; +#X restore 319 315 pd getProp; +#X obj 172 158 r \$0-propreadId; +#N canvas 568 213 450 467 setProp 0; +#X msg 44 156 label \$1; +#X msg 165 156 get \$1; +#X obj 44 31 inlet; +#X obj 218 426 outlet; +#X obj 290 57 r \$0-info; +#N canvas 4 50 450 300 sroute 0; +#X obj 73 12 inlet; +#X obj 312 9 inlet; +#X obj 73 113 outlet; +#X obj 73 34 list split 1; +#X obj 73 56 select s; +#X obj 73 78 list prepend; +#X connect 0 0 3 0; +#X connect 1 0 4 1; +#X connect 3 0 4 0; +#X connect 3 1 5 1; +#X connect 4 0 5 0; +#X connect 5 0 2 0; +#X restore 290 113 pd sroute; +#X obj 290 135 route float; +#X obj 44 177 s \$0-propwriteName; +#X obj 290 247 s \$0-propwriteValue; +#X msg 290 226 set \$1; +#X obj 50 276 r \$0-propwriteValue; +#X obj 50 298 route float; +#X obj 50 320 pack 0 s; +#X msg 50 342 set \$2 \$1; +#X obj 44 73 t s s s s; +#X obj 127 27 loadbang; +#X obj 127 49 t b b; +#X msg 127 71 symbol ; +#X obj 290 79 route param; +#X connect 0 0 7 0; +#X connect 1 0 3 0; +#X connect 2 0 14 0; +#X connect 4 0 18 0; +#X connect 5 0 6 0; +#X connect 6 0 9 0; +#X connect 9 0 8 0; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 13 0 3 0; +#X connect 14 0 0 0; +#X connect 14 1 1 0; +#X connect 14 2 5 1; +#X connect 14 3 12 1; +#X connect 15 0 16 0; +#X connect 16 0 17 0; +#X connect 17 0 0 0; +#X connect 18 0 5 0; +#X restore 199 315 pd setProp; +#X obj 199 426 list trim; +#X obj 199 448 t b a; +#X obj 199 339 route get set; +#X obj 199 477 s \$0-propset; +#X obj 350 480 s \$0-propget; +#X obj 54 38 inlet; +#X obj 54 66 s \$0-ctl; +#X obj 282 158 r \$0-propwriteId; +#X obj 199 407 list prepend set; +#X obj 350 407 list prepend set; +#X obj 349 361 list prepend setParam; +#X obj 199 360 list prepend getParam; +#X connect 0 0 3 0; +#X connect 0 1 5 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 2 1 10 0; +#X connect 3 0 8 0; +#X connect 4 0 0 0; +#X connect 5 0 8 0; +#X connect 6 0 7 0; +#X connect 7 0 9 0; +#X connect 7 1 9 0; +#X connect 8 0 17 0; +#X connect 8 1 16 0; +#X connect 11 0 12 0; +#X connect 13 0 0 1; +#X connect 14 0 6 0; +#X connect 15 0 1 0; +#X connect 16 0 14 0; +#X connect 17 0 15 0; +#X restore 31 446 pd PropertyLogic; +#X obj 300 70 cnv 15 100 20 empty \$0-propreadValue -- 10 9 0 14 -261234 +-66577 0; +#X obj 21 111 cnv 15 400 80 empty empty writeProperties 20 12 0 14 +-233017 -66577 0; +#X obj 29 137 hradio 15 1 0 4 \$0-propwriteId \$0-propwriteId empty +0 -8 0 10 -262144 -1 -1 0; +#X obj 30 160 cnv 15 260 20 empty \$0-propwriteName 10 9 0 14 +-203904 -66577 0; +#X obj 301 160 nbx 5 20 -1e+37 1e+37 0 0 \$0-propwriteValue \$0-propwriteValue +empty 0 -8 0 14 -204786 -1 -1 0 256; +#X msg 73 412 setParam noiseSigma 137; +#X obj 56 314 r \$0-propget; +#X obj 73 392 r \$0-propset; +#X msg 77 360 get Hue Saturation; +#X text 198 360 you can query several properties at once; +#X text 62 257 NOTE that propertynames are always single symbols that +might contain spaces (and other weird characters); +#X text 98 203 INIT: query names of all available properties; +#X msg 31 203 enumParams; +#X msg 56 335 getParam noiseSigma; +#X text 59 224 this will return a list of parameters through the "info" +outlet of [pix_opencv_backgroundsubtractor].; +#X text 135 315 query a (readable) property via a message "getParam +", f 65; +#X text 150 392 set a (writable) property via a message "setParam +", f 68; +#X msg 45 292 paramHelp; +#X text 108 291 print parameters help in console; +#X connect 9 0 3 0; +#X connect 10 0 17 0; +#X connect 11 0 9 0; +#X connect 12 0 3 0; +#X connect 16 0 3 0; +#X connect 17 0 3 0; +#X connect 21 0 3 0; +#X restore 745 76 pd parameters; +#X obj 521 109 r \$0-ctl; +#X obj 671 201 s \$0-info; +#N canvas 782 389 504 512 src 0; +#X obj 302 -79 gemhead; +#X obj 314 -52 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 359 34 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 353 18 5 0 10000 1 frame# - -, f 5; +#X obj 314 -23 openpanel; +#X obj 302 36 pix_film; +#N canvas 1 250 299 199 vswitch 0; +#X obj 36 128 outlet; +#X obj 36 26 inlet; +#X obj 130 26 inlet; +#X obj 175 27 inlet; +#X obj 81 61 == 0; +#X obj 36 83 spigot 1; +#X obj 130 84 spigot 0; +#X connect 1 0 5 0; +#X connect 2 0 6 0; +#X connect 3 0 4 0; +#X connect 3 0 6 1; +#X connect 4 0 5 1; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X restore 62 118 pd vswitch; +#X obj 163 -188 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 +0 1; +#X obj 62 45 pix_video; +#X obj 62 -79 gemhead; +#X text 180 -190 switch source (camera / film); +#X msg 314 -3 open \$1 \, auto 1; +#X obj 173 -253 loadbang; +#X msg 173 -230 0; +#X obj 169 -123 == 0; +#X obj 130 -284 inlet; +#X text 168 -282 src selection : 0 = camera \, 1 = file; +#X obj 345 -113 sel 1; +#X obj 62 140 outlet; +#X obj 169 -144 t a a a a; +#X connect 0 0 5 0; +#X connect 1 0 4 0; +#X connect 2 0 3 0; +#X connect 3 0 5 1; +#X connect 4 0 11 0; +#X connect 5 0 6 1; +#X connect 5 2 2 0; +#X connect 6 0 18 0; +#X connect 7 0 19 0; +#X connect 8 0 6 0; +#X connect 9 0 8 0; +#X connect 11 0 5 0; +#X connect 12 0 13 0; +#X connect 13 0 7 0; +#X connect 14 0 9 0; +#X connect 15 0 7 0; +#X connect 17 0 1 0; +#X connect 19 0 14 0; +#X connect 19 1 0 0; +#X connect 19 2 6 2; +#X connect 19 3 17 0; +#X restore 488 -128 pd src; +#X obj 488 -165 vradio 15 1 0 2 empty empty empty 0 -8 0 10 -262144 +-1 -1 0; +#N canvas 1 110 450 300 gray/rgba 0; +#X obj 62 36 pix_grey; +#X obj 121 36 pix_rgba; +#X obj 62 11 spigot 1; +#X obj 107 -34 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 125 -37 switch color mode ( grey / rgba ); +#X obj 107 -11 == 0; +#X obj 121 11 spigot 0; +#X obj 62 98 t a; +#X obj 121 61 alpha; +#X obj 62 -92 inlet; +#X obj 62 120 outlet; +#X obj 107 -60 inlet; +#X connect 0 0 7 0; +#X connect 1 0 8 0; +#X connect 2 0 0 0; +#X connect 3 0 5 0; +#X connect 3 0 6 1; +#X connect 5 0 2 1; +#X connect 6 0 1 0; +#X connect 7 0 10 0; +#X connect 8 0 7 0; +#X connect 9 0 2 0; +#X connect 9 0 6 0; +#X connect 11 0 3 0; +#X restore 488 -69 pd gray/rgba; +#X obj 557 -105 vradio 15 1 0 2 empty empty empty 0 -8 0 10 -262144 +-1 -1 0; +#X text 575 -105 gray; +#X text 575 -91 RGBA; +#X text 504 -166 camera; +#X text 504 -151 video file; +#X msg 504 -25 algo; +#X obj 671 161 t a a; +#X obj 698 181 print info; +#X obj 511 0 hradio 15 1 0 3 empty empty empty 0 -8 0 10 -262144 -1 +-1 1; +#X text 561 18 choose algo by id; +#X msg 518 43 algo BackgroundSubtractor.MOG; +#X text 700 43 choose algo by name; +#X obj 488 136 pix_opencv_backgroundsubtractor; +#X msg 521 85 cpuMode \$1; +#X obj 521 65 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 25 -156 Synopsis: [pix_opencv_backgroundsubtractor]; +#X text 26 -90 Description: pix_opencv_backgroundsubtractor extracts +foreground using different algorithms; +#X text 541 -24 report available algorithm on the right outlet; +#X text 32 54 input : message : algo : without arg \, reports the available +algorithms; +#X text 32 84 input : message : algo choose an algo by id; +#X text 32 98 input : message : algo choose an algo by name +; +#X text 32 118 input : message : cpuMode force CPU mode; +#X text 27 -56 It uses OpenCL when it's available.; +#X text 32 138 input : message : enumParams : query parameters name +and value of available; +#X text 40 258 for more about the GMG algorithm please refer to : A. +Godbehere \, A. Matsukawa \, K. Goldberg \, "Visual Tracking of Human +Visitors under Variable-Lighting Conditions for a Responsiven Audio +Art Installation" \, American Control Conference \, 2012 \,; +#X text 32 168 input : message : paramHelp : print parameters help +in the Pd's console (not filled for all parameters); +#X text 32 198 input : message : getParam : get parameter +value; +#X text 32 213 input : message : setParam : set paramter +value; +#X connect 5 0 11 0; +#X connect 7 0 8 0; +#X connect 8 0 7 0; +#X connect 17 0 36 0; +#X connect 19 0 36 0; +#X connect 21 0 23 0; +#X connect 22 0 21 0; +#X connect 23 0 36 0; +#X connect 24 0 23 1; +#X connect 29 0 36 0; +#X connect 30 0 20 0; +#X connect 30 1 31 0; +#X connect 32 0 17 0; +#X connect 34 0 36 0; +#X connect 36 0 5 0; +#X connect 36 1 30 0; +#X connect 37 0 36 0; +#X connect 38 0 37 0; diff --git a/help/pix_opencv_bgstats-help.pd b/help/pix_opencv_bgstats-help.pd new file mode 100644 index 0000000..9413df2 --- /dev/null +++ b/help/pix_opencv_bgstats-help.pd @@ -0,0 +1,150 @@ +#N canvas 94 527 960 504 10; +#X obj -7 39 cnv 15 430 270 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj -7 -7 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 2 -3 Arguments:; +#X obj -8 -103 cnv 15 430 90 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text -3 -148 Class: pix_opencv; +#X text 23 17 none; +#X obj 431 -180 cnv 15 510 490 empty empty empty 20 12 0 14 -228992 +-66577 0; +#X obj 591 232 pix_texture; +#X obj 591 250 square 2; +#X obj 714 229 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#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; +#N canvas 87 154 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 obj 192 276 gemwin; +#X msg 191 223 create \, 1; +#X msg 267 224 destroy; +#X msg 313 196 frame 25; +#X obj 194 186 t b b b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 10 0; +#X connect 2 1 4 0; +#X connect 2 1 8 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 7 0; +#X connect 10 2 9 0; +#X restore 726 275 pd gemwin; +#X msg 726 251 create; +#X text 722 231 Create window and render; +#X obj 440 231 pix_texture; +#X obj 440 249 square 2; +#X obj 585 173 cnv 15 200 50 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 591 203 pix_opencv_bgstats; +#X text 5 -90 pix_opencv_bgstats : background and foreground extraction +using a statitical method.; +#X obj 677 -168 gemhead; +#X obj 591 127 separator; +#X obj 689 -141 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 746 34 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 728 -1 5 0 10000 1 frame# - -; +#X obj 689 -112 openpanel; +#X msg 689 -92 open \$1; +#X obj 677 17 pix_film; +#X msg 695 -49 auto \$1; +#X obj 695 -67 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 +1; +#X msg 790 -66 colorspace RGBA; +#X msg 801 -46 colorspace RGB; +#X msg 810 -26 colorspace Grey; +#X obj 790 -94 loadbang; +#X obj 591 108 pix_separator; +#X obj 440 130 separator; +#X obj 440 111 pix_separator; +#X obj 440 150 translateXYZ -2 0 0; +#X obj 591 147 translateXYZ 2 0 0; +#N canvas 3 83 450 300 vswitch 0; +#X obj 36 140 outlet; +#X obj 36 26 inlet; +#X obj 130 25 inlet; +#X obj 175 25 inlet; +#X obj 36 103 spigot 1; +#X obj 130 104 spigot 0; +#X obj 81 78 == 0; +#X connect 1 0 4 0; +#X connect 2 0 5 0; +#X connect 3 0 6 0; +#X connect 3 0 5 1; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 6 0 4 1; +#X restore 440 59 pd vswitch; +#X obj 508 59 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X obj 440 15 pix_video; +#X obj 440 -169 gemhead; +#X msg 479 -60 device 0; +#X msg 488 -29 driver 1; +#X msg 465 -114 dialog; +#X msg 470 -84 device /dev/dv1394-0; +#X obj 440 38 pix_resize 160 120; +#X text 6 51 Objects disappear from the background after a certain +amount of time of presence \, they are then considered as background. +; +#X msg 609 179 reset; +#X text 655 180 reset the background; +#X obj 440 83 pix_rgba; +#X text 6 116 written by Yves Degoyon ( ydegoyon.gmail.com ); +#X text -2 -164 Synopsis: [pix_opencv_bgstats]; +#X connect 7 0 8 0; +#X connect 10 0 11 0; +#X connect 11 0 10 0; +#X connect 13 0 14 0; +#X connect 16 0 7 0; +#X connect 18 0 25 0; +#X connect 19 0 36 0; +#X connect 20 0 23 0; +#X connect 21 0 22 0; +#X connect 22 0 25 1; +#X connect 23 0 24 0; +#X connect 24 0 25 0; +#X connect 25 0 37 1; +#X connect 25 2 21 0; +#X connect 26 0 25 0; +#X connect 27 0 26 0; +#X connect 28 0 25 0; +#X connect 28 0 39 0; +#X connect 29 0 25 0; +#X connect 30 0 25 0; +#X connect 31 0 28 0; +#X connect 31 0 27 0; +#X connect 32 0 19 0; +#X connect 33 0 35 0; +#X connect 34 0 33 0; +#X connect 35 0 13 0; +#X connect 36 0 16 0; +#X connect 37 0 49 0; +#X connect 38 0 37 2; +#X connect 39 0 45 0; +#X connect 40 0 39 0; +#X connect 41 0 39 0; +#X connect 42 0 39 0; +#X connect 43 0 39 0; +#X connect 44 0 39 0; +#X connect 45 0 37 0; +#X connect 47 0 16 0; +#X connect 49 0 34 0; +#X connect 49 0 32 0; diff --git a/help/pix_opencv_bgsubstract-help.pd b/help/pix_opencv_bgsubstract-help.pd new file mode 100644 index 0000000..fef54b4 --- /dev/null +++ b/help/pix_opencv_bgsubstract-help.pd @@ -0,0 +1,158 @@ +#N canvas 597 253 985 540 10; +#X obj 17 17 cnv 15 430 320 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 17 -29 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 26 -25 Arguments:; +#X obj 17 -124 cnv 15 430 90 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 22 -162 Class: pix_opencv; +#X text 47 -5 none; +#X obj 459 -182 cnv 15 510 520 empty empty empty 20 12 0 14 -228992 +-66577 0; +#X obj 611 168 cnv 15 280 80 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X floatatom 744 211 5 0 0 0 - - -, f 5; +#X obj 615 228 pix_opencv_bgsubstract; +#X msg 627 172 set; +#X text 663 172 set the background; +#X text 741 195 threshold (default 13); +#X obj 641 -173 gemhead; +#X obj 615 255 pix_texture; +#X obj 615 274 square 2; +#X obj 741 259 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 50 454 304 gemwin 0; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 65 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#N canvas 87 154 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 obj 162 241 gemwin; +#X msg 161 188 create \, 1; +#X msg 237 189 destroy; +#X msg 283 161 frame 25; +#X obj 164 126 t b b b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 10 0; +#X connect 2 1 4 0; +#X connect 2 1 8 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 7 0; +#X connect 10 2 9 0; +#X restore 751 303 pd gemwin; +#X msg 751 285 destroy; +#X obj 464 253 pix_texture; +#X obj 464 272 square 2; +#X obj 615 121 separator; +#X obj 653 -146 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 710 29 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 692 -6 5 0 10000 1 frame# - -, f 5; +#X obj 653 -117 openpanel; +#X msg 653 -97 open \$1; +#X obj 641 12 pix_film; +#X msg 659 -54 auto \$1; +#X obj 659 -72 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 +1; +#X text 749 265 Create window and render; +#X msg 754 -71 colorspace RGBA; +#X msg 765 -52 colorspace RGB; +#X msg 772 -32 colorspace Grey; +#X obj 754 -99 loadbang; +#X obj 615 100 pix_separator; +#X obj 464 121 separator; +#X obj 464 101 pix_separator; +#X obj 464 141 translateXYZ -2 0 0; +#X obj 615 141 translateXYZ 2 0 0; +#N canvas 1 168 274 158 vswitch 0; +#X obj 36 138 outlet; +#X obj 36 26 inlet; +#X obj 100 29 inlet; +#X obj 153 29 inlet; +#X obj 89 69 == 0; +#X obj 36 101 spigot 1; +#X obj 100 101 spigot 0; +#X connect 1 0 5 0; +#X connect 2 0 6 0; +#X connect 3 0 4 0; +#X connect 3 0 6 1; +#X connect 4 0 5 1; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X restore 464 58 pd vswitch; +#X obj 532 58 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X obj 464 10 pix_video; +#X obj 464 -175 gemhead; +#X msg 503 -65 device 0; +#X msg 512 -34 driver 1; +#X msg 489 -119 dialog; +#X msg 494 -89 device /dev/dv1394-0; +#X obj 464 78 pix_rgba; +#X text 24 219 written by Yves Degoyon ( ydegoyon@gmail.com ); +#X text 23 -178 Synopsis: [pix_opencv_bgsubstract]; +#X text 22 37 Useful if you want to detect dynamic objects over a static +background.; +#X text 22 84 This object takes an image as a background reference +and compare each incomming frame with that. On the output you get a +b&w image \, black pixels are considered as background and white pixels +as foreground.; +#X text 21 144 pix_opencv_bgsubstract works comparing color values +of each pixel \, so it can fail if the foreground object has the same +color than the background \, and also if the light conditions or the +shadows change since you SET the background image.; +#X text 27 -107 pix_opencv_bgsubstract :: A very simple background +substractor and binarization object.; +#X connect 8 0 9 1; +#X connect 9 0 14 0; +#X connect 10 0 9 0; +#X connect 13 0 27 0; +#X connect 14 0 15 0; +#X connect 17 0 18 0; +#X connect 18 0 17 0; +#X connect 19 0 20 0; +#X connect 21 0 39 0; +#X connect 22 0 25 0; +#X connect 23 0 24 0; +#X connect 24 0 27 1; +#X connect 25 0 26 0; +#X connect 26 0 27 0; +#X connect 27 0 40 1; +#X connect 27 2 23 0; +#X connect 28 0 27 0; +#X connect 29 0 28 0; +#X connect 31 0 27 0; +#X connect 31 0 42 0; +#X connect 32 0 27 0; +#X connect 33 0 27 0; +#X connect 34 0 31 0; +#X connect 34 0 29 0; +#X connect 35 0 21 0; +#X connect 36 0 38 0; +#X connect 37 0 36 0; +#X connect 38 0 19 0; +#X connect 39 0 9 0; +#X connect 40 0 48 0; +#X connect 41 0 40 2; +#X connect 42 0 40 0; +#X connect 43 0 42 0; +#X connect 44 0 42 0; +#X connect 45 0 42 0; +#X connect 46 0 42 0; +#X connect 47 0 42 0; +#X connect 48 0 37 0; +#X connect 48 0 35 0; diff --git a/help/pix_opencv_blobtrack-help.pd b/help/pix_opencv_blobtrack-help.pd new file mode 100644 index 0000000..73c95b0 --- /dev/null +++ b/help/pix_opencv_blobtrack-help.pd @@ -0,0 +1,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 : returns all parameters for +a given module; +#X text 359 275 setParam : 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 ; +#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; diff --git a/help/pix_opencv_calibration-help.pd b/help/pix_opencv_calibration-help.pd new file mode 100644 index 0000000..ea6bd56 --- /dev/null +++ b/help/pix_opencv_calibration-help.pd @@ -0,0 +1,258 @@ +#N canvas 479 182 1188 810 10; +#X obj 20 33 cnv 15 430 580 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 20 -13 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 29 -9 Arguments:; +#X obj 19 -109 cnv 15 430 90 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 24 -145 Class: pix_opencv; +#X text 25 -161 Synopsis: [pix_opencv_calibration]; +#X text 37 37 getting started with camera calibration :; +#X text 65 123 3 Check calibration toggle to start and move the chessboard +in front of the camera (or move the camera in front of your screen). +Your computer may slow down during searching chessboard corners. When +all corners are found it takes a snapshot (and the image will be negative) +; +#X text 65 103 2 Plug a supported camera and start rendering; +#X text 66 73 1 Print the chessboard ona rigid paperboard (or just +show it on the screen); +#X text 65 194 4 When enought chessboard have been found (20 by default) +it computes transformation matrix and map to undistord the image; +#X text 65 244 5 Then all incoming images are undistord \, you can +save the transformation and distorsion matrix to files to load it next +times; +#X text 31 287 for more information about this calibration see :; +#X text 41 327 - A flexible new technique for camera calibration \, +Zhang \, 1998 \, Microsoft Research; +#X text 41 307 - Learning Opencv \, Bradski and Kaehler \, 2008 \, +O'Reilly; +#X text 50 11 none; +#X obj 455 -188 cnv 15 720 800 empty empty empty 20 12 0 14 -228992 +-66577 0; +#X obj 615 374 cnv 15 400 160 empty empty empty 20 12 0 14 -4034 -66577 +0; +#X obj 815 -160 gemhead; +#X obj 619 569 pix_texture; +#X obj 795 538 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 3 81 454 304 gemwin 0; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 65 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#N canvas 87 154 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 obj 162 241 gemwin; +#X msg 342 184 destroy; +#X msg 283 161 frame 25; +#X obj 164 126 t b b b; +#X msg 161 189 dimen 640 560 \, create \, 1; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 9 0; +#X connect 2 1 4 0; +#X connect 2 1 7 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 10 0; +#X connect 9 2 8 0; +#X connect 10 0 6 0; +#X restore 805 584 pd gemwin; +#X msg 805 564 destroy; +#X obj 485 570 pix_texture; +#X obj 619 216 separator; +#X obj 827 -133 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 884 42 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 866 7 5 0 10000 1 frame# - -, f 5; +#X obj 827 -104 openpanel; +#X msg 827 -84 open \$1; +#X obj 815 25 pix_film; +#X msg 833 -41 auto \$1; +#X obj 833 -59 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 +1; +#X text 803 544 Create window and render; +#X msg 928 -58 colorspace RGBA; +#X msg 942 -35 colorspace RGB; +#X msg 957 -13 colorspace Grey; +#X obj 928 -86 loadbang; +#X obj 619 197 pix_separator; +#X obj 485 217 separator; +#X obj 485 198 pix_separator; +#N canvas 1 184 299 199 vswitch 0; +#X obj 36 128 outlet; +#X obj 36 26 inlet; +#X obj 130 26 inlet; +#X obj 175 27 inlet; +#X obj 81 61 == 0; +#X obj 36 83 spigot 1; +#X obj 130 84 spigot 0; +#X connect 1 0 5 0; +#X connect 2 0 6 0; +#X connect 3 0 4 0; +#X connect 3 0 6 1; +#X connect 4 0 5 1; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X restore 485 67 pd vswitch; +#X obj 581 68 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 1 1 +; +#X obj 485 34 pix_video; +#X obj 485 -160 gemhead; +#X msg 504 -88 dimen 640 480; +#X msg 502 -113 dimen 320 240; +#X text 681 432 load distorsion coefficients and intrinsic matrix; +#X msg 531 -18 driver v4l2; +#X msg 515 -65 driver dc1394 \, dimen 640 480 \, colorspace grey; +#X msg 540 3 driver dc1394; +#X obj 619 494 pix_opencv_calibration; +#X obj 485 165 pix_grey; +#X obj 485 236 translateXYZ 0 -2 0; +#X obj 619 236 translateXYZ 0 2 0; +#X obj 485 590 rectangle 2.666 2; +#X obj 619 590 rectangle 2.666 2; +#X msg 682 451 loadDist \$1; +#X msg 698 471 loadIntra \$1; +#X msg 652 391 writeDist \$1; +#X msg 663 413 writeIntra \$1; +#X text 651 372 write distorsion coefficients and intrinsic matrix +; +#X obj 746 117 cnv 15 420 240 empty empty empty 20 12 0 14 -4034 -66577 +0; +#X obj 754 128 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X msg 754 148 calibration \$1; +#X msg 754 192 view \$1; +#X text 793 170 number of view to take during calibration; +#X floatatom 754 174 5 0 0 0 - - -, f 5; +#X obj 754 233 pack f f; +#X msg 754 253 patternSize \$1 \$2; +#X floatatom 754 215 5 0 0 0 - - -, f 5; +#X floatatom 807 215 5 0 0 0 - - -, f 5; +#X text 844 211 number of inner corners on the chessboard; +#N canvas 130 67 612 325 advance-options 0; +#X msg 55 161 findChessFlag \$1 \$2 \$3; +#X obj 68 91 t b f; +#X obj 55 142 pack f f f; +#X obj 118 111 t b f; +#X obj 55 51 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X obj 68 71 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X obj 118 91 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 55 267 outlet; +#X text 53 27 findChessBoardCorner option; +#X text 75 50 CV_CALIB_CB_ADAPTIVE_TRESH : adaptive threhold (default +1); +#X text 84 70 CV_CALIB_CB_NORMALIZE_IMAGE : normalize image (default +0); +#X text 135 91 CV_CALIB_CB_FILTER_QUADS: advance filtering (default +1); +#X connect 0 0 7 0; +#X connect 1 0 2 0; +#X connect 1 1 2 1; +#X connect 2 0 0 0; +#X connect 3 0 2 0; +#X connect 3 1 2 2; +#X connect 4 0 2 0; +#X connect 5 0 1 0; +#X connect 6 0 3 0; +#X restore 753 315 pd advance-options; +#X floatatom 754 274 5 0 0 0 - - -, f 5; +#X msg 754 292 wait \$1; +#X text 792 273 number of frame to wait between two takes during calibration +; +#X text 773 128 start callibration; +#X obj 544 166 pix_rgba; +#X obj 485 140 spigot 1; +#X text 598 66 switch source (camera / film); +#X obj 530 95 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 1 1 +; +#X text 547 93 switch color mode ( grey / rgba ); +#X msg 524 -41 device 1; +#X obj 530 118 == 0; +#X obj 544 140 spigot 0; +#X msg 753 335 reset; +#X text 797 334 reset corrections; +#X obj 748 516 print; +#X text 784 516 print some infos; +#X obj 635 351 t a; +#X text 26 -100 Description: pix_opencv_calibration does camera calibration. +You need to move a checkboard in front of the camera during the calibration. +; +#X connect 18 0 30 0; +#X connect 19 0 56 0; +#X connect 21 0 22 0; +#X connect 22 0 21 0; +#X connect 23 0 55 0; +#X connect 24 0 54 0; +#X connect 25 0 28 0; +#X connect 26 0 27 0; +#X connect 27 0 30 1; +#X connect 28 0 29 0; +#X connect 29 0 30 0; +#X connect 30 0 41 1; +#X connect 30 2 26 0; +#X connect 31 0 30 0; +#X connect 32 0 31 0; +#X connect 34 0 30 0; +#X connect 34 0 43 0; +#X connect 35 0 30 0; +#X connect 36 0 30 0; +#X connect 37 0 34 0; +#X connect 37 0 32 0; +#X connect 38 0 24 0; +#X connect 39 0 53 0; +#X connect 40 0 39 0; +#X connect 41 0 79 0; +#X connect 41 0 85 0; +#X connect 42 0 41 2; +#X connect 43 0 41 0; +#X connect 44 0 43 0; +#X connect 45 0 43 0; +#X connect 46 0 43 0; +#X connect 48 0 43 0; +#X connect 49 0 43 0; +#X connect 50 0 43 0; +#X connect 51 0 19 0; +#X connect 51 1 88 0; +#X connect 52 0 40 0; +#X connect 52 0 38 0; +#X connect 53 0 23 0; +#X connect 54 0 51 0; +#X connect 57 0 51 0; +#X connect 58 0 51 0; +#X connect 59 0 51 0; +#X connect 60 0 51 0; +#X connect 63 0 64 0; +#X connect 64 0 90 0; +#X connect 65 0 90 0; +#X connect 67 0 65 0; +#X connect 68 0 69 0; +#X connect 69 0 90 0; +#X connect 70 0 68 0; +#X connect 71 0 68 1; +#X connect 73 0 90 0; +#X connect 74 0 75 0; +#X connect 75 0 90 0; +#X connect 78 0 40 0; +#X connect 78 0 38 0; +#X connect 79 0 52 0; +#X connect 81 0 84 0; +#X connect 81 0 85 1; +#X connect 83 0 43 0; +#X connect 84 0 79 1; +#X connect 85 0 78 0; +#X connect 86 0 90 0; +#X connect 90 0 51 0; diff --git a/help/pix_opencv_camshift-help.pd b/help/pix_opencv_camshift-help.pd new file mode 100644 index 0000000..9455958 --- /dev/null +++ b/help/pix_opencv_camshift-help.pd @@ -0,0 +1,207 @@ +#N canvas 661 275 964 666 10; +#X obj 0 114 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 9 118 Arguments:; +#X obj -1 18 cnv 15 430 90 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 4 -19 Class: pix_opencv; +#X text 30 138 none; +#X obj 435 -41 cnv 15 510 650 empty empty empty 20 12 0 14 -228992 +-66577 0; +#X obj 440 533 pix_texture; +#X obj 717 529 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 156 138 dimen 320 240; +#X msg 247 137 frame 25; +#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 10 0; +#X connect 9 2 11 0; +#X connect 10 0 0 0; +#X connect 11 0 0 0; +#X restore 724 575 pd gemwin; +#X msg 724 554 create; +#X text 727 536 Create window and render; +#X obj 438 255 cnv 15 500 270 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 440 552 pix_resize 320 240; +#X obj 440 433 pix_opencv_camshift; +#X obj 551 453 unpack f f f f f; +#X floatatom 551 478 5 0 0 0 - - -, f 5; +#X floatatom 590 478 5 0 0 0 - - -, f 5; +#X floatatom 628 478 5 0 0 0 - - -, f 5; +#X floatatom 667 478 5 0 0 0 - - -, f 5; +#X floatatom 708 478 5 0 0 0 - - -, f 5; +#X text 578 502 center Y; +#X text 628 492 width; +#X text 663 503 height; +#X text 538 492 center X; +#X text 706 494 angle; +#X text 663 452 for the tracked object; +#X msg 515 323 backproject \$1; +#X text 634 324 show the backproject flow image; +#X obj 612 324 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 473 260 vmin \$1; +#X floatatom 529 262 5 0 0 0 - - -, f 5; +#X floatatom 545 280 5 0 0 0 - - -, f 5; +#X msg 491 280 vmax \$1; +#X floatatom 558 303 5 0 0 0 - - -, f 5; +#X msg 504 302 smin \$1; +#X text 583 280 V pre-filtering maximal value ( default : 256 ); +#X text 597 301 S pre-filtering minimal value ( default : 30 ); +#X msg 547 386 track \$1 \$2; +#X text 624 384 track %x %y : mark the object to track; +#X floatatom 591 347 5 0 0 0 - - -, f 5; +#X floatatom 608 367 5 0 0 0 - - -, f 5; +#X msg 526 345 rwidth \$1; +#X msg 535 365 rheight \$1; +#X text 627 345 initial search region width ( default : 20 ); +#X text 646 366 initial search region height ( default : 20 ); +#X text 574 262 V pre-filtering minimal value ( default : 50 ); +#X text 15 31 pix_opencv_camshift : continuously adaptive mean-shift +algorithm to track objects based on a hidden histogram of the hue component +of pixels.; +#X obj 440 232 pix_resize 320 240; +#X obj 440 571 rectangle 5.3 4; +#X obj 617 -31 gemhead; +#X obj 629 -4 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 686 171 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 668 136 5 0 10000 1 frame# - -, f 5; +#X obj 629 25 openpanel; +#X msg 629 45 open \$1; +#X obj 617 154 pix_film; +#X msg 635 88 auto \$1; +#X obj 635 70 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X msg 730 71 colorspace RGBA; +#X msg 741 91 colorspace RGB; +#X obj 730 43 loadbang; +#N canvas 1 83 450 300 vswitch 0; +#X obj 36 133 outlet; +#X obj 36 26 inlet; +#X obj 129 29 inlet; +#X obj 174 28 inlet; +#X obj 81 72 == 0; +#X obj 36 93 spigot 1; +#X obj 129 101 spigot 0; +#X connect 1 0 5 0; +#X connect 2 0 6 0; +#X connect 3 0 4 0; +#X connect 3 0 6 1; +#X connect 4 0 5 1; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X restore 440 194 pd vswitch; +#X obj 509 193 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 440 152 pix_video; +#X obj 440 -36 gemhead; +#X msg 479 88 device 0; +#X msg 488 108 driver 1; +#X msg 466 49 dialog; +#X msg 471 69 device /dev/dv1394-0; +#X obj 440 213 pix_rgba; +#X text 5 -35 Synopsis: [pix_opencv_camshift]; +#X obj 0 160 cnv 15 430 450 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 11 164 written by Yves Degoyon ( ydegoyon@gmail.com ) \, inspired +by OpenCV samples code.; +#N canvas 1 95 450 300 mouseSelection 0; +#X obj 161 100 gemmouse; +#X obj 183 132 sel 1; +#X obj 161 266 outlet; +#X obj 161 201 pack 0 0; +#X obj 161 175 f; +#X msg 161 223 track \$1 \$2; +#X connect 0 0 4 1; +#X connect 0 1 3 1; +#X connect 0 2 1 0; +#X connect 1 0 4 0; +#X connect 3 0 5 0; +#X connect 4 0 3 0; +#X connect 5 0 2 0; +#X restore 546 410 pd mouseSelection; +#X text 657 410 click on Gem window to select feature to track; +#X connect 6 0 12 0; +#X connect 8 0 9 0; +#X connect 9 0 8 0; +#X connect 12 0 48 0; +#X connect 13 0 6 0; +#X connect 13 1 14 0; +#X connect 14 0 15 0; +#X connect 14 1 16 0; +#X connect 14 2 17 0; +#X connect 14 3 18 0; +#X connect 14 4 19 0; +#X connect 26 0 13 0; +#X connect 28 0 26 0; +#X connect 29 0 13 0; +#X connect 30 0 29 0; +#X connect 31 0 32 0; +#X connect 32 0 13 0; +#X connect 33 0 34 0; +#X connect 34 0 13 0; +#X connect 37 0 13 0; +#X connect 39 0 41 0; +#X connect 40 0 42 0; +#X connect 41 0 13 0; +#X connect 42 0 13 0; +#X connect 47 0 13 0; +#X connect 49 0 55 0; +#X connect 50 0 53 0; +#X connect 51 0 52 0; +#X connect 52 0 55 1; +#X connect 53 0 54 0; +#X connect 54 0 55 0; +#X connect 55 0 61 1; +#X connect 55 2 51 0; +#X connect 56 0 55 0; +#X connect 57 0 56 0; +#X connect 58 0 55 0; +#X connect 58 0 63 0; +#X connect 59 0 55 0; +#X connect 60 0 58 0; +#X connect 60 0 57 0; +#X connect 61 0 69 0; +#X connect 62 0 61 2; +#X connect 63 0 61 0; +#X connect 64 0 63 0; +#X connect 65 0 63 0; +#X connect 66 0 63 0; +#X connect 67 0 63 0; +#X connect 68 0 63 0; +#X connect 69 0 47 0; +#X connect 73 0 13 0; diff --git a/help/pix_opencv_clahe-help.pd b/help/pix_opencv_clahe-help.pd new file mode 100644 index 0000000..39ae4ed --- /dev/null +++ b/help/pix_opencv_clahe-help.pd @@ -0,0 +1,139 @@ +#N canvas 674 205 963 606 10; +#X obj 20 33 cnv 15 430 380 empty empty empty 20 12 0 14 -228856 -66577 +0; +#X obj 20 -13 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X obj 19 -109 cnv 15 430 90 empty empty empty 20 12 0 14 -228856 -66577 +0; +#X text 24 -145 Class: pix_opencv; +#X obj 455 -186 cnv 15 500 600 empty empty empty 20 12 0 14 -228992 +-66577 0; +#X obj 725 -180 gemhead; +#X obj 485 369 pix_texture; +#X obj 661 338 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 3 81 454 304 gemwin 0; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 65 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#N canvas 87 154 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 obj 162 241 gemwin; +#X msg 342 184 destroy; +#X msg 283 161 frame 25; +#X obj 164 126 t b b b; +#X msg 161 189 dimen 640 560 \, create \, 1; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 9 0; +#X connect 2 1 4 0; +#X connect 2 1 7 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 10 0; +#X connect 9 2 8 0; +#X connect 10 0 6 0; +#X restore 671 384 pd gemwin; +#X msg 671 364 destroy; +#X obj 737 -153 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 782 -67 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 776 -83 5 0 10000 1 frame# - -, f 5; +#X obj 737 -124 openpanel; +#X obj 725 -65 pix_film; +#X text 669 344 Create window and render; +#N canvas 1 184 299 199 vswitch 0; +#X obj 36 128 outlet; +#X obj 36 26 inlet; +#X obj 130 26 inlet; +#X obj 175 27 inlet; +#X obj 81 61 == 0; +#X obj 36 83 spigot 1; +#X obj 130 84 spigot 0; +#X connect 1 0 5 0; +#X connect 2 0 6 0; +#X connect 3 0 4 0; +#X connect 3 0 6 1; +#X connect 4 0 5 1; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X restore 485 -23 pd vswitch; +#X obj 581 -22 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 485 -56 pix_video; +#X obj 485 -180 gemhead; +#X obj 485 75 pix_grey; +#X obj 544 76 pix_rgba; +#X obj 485 50 spigot 1; +#X text 598 -24 switch source (camera / film); +#X obj 530 5 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X text 547 3 switch color mode ( grey / rgba ); +#X obj 530 28 == 0; +#X obj 544 50 spigot 0; +#X obj 481 174 cnv 15 400 160 empty empty empty 20 12 0 14 -4034 -66577 +0; +#X msg 737 -104 open \$1 \, auto 1; +#X obj 485 137 t a; +#X obj 581 -66 loadbang; +#X msg 581 -44 0; +#X obj 612 -144 == 0; +#X obj 612 -165 t a a; +#X obj 485 390 rectangle 4 3; +#X floatatom 504 188 5 0 0 0 - - -, f 5; +#X floatatom 506 244 5 0 0 0 - - -, f 5; +#X text 27 -11 Arguments: (optional); +#X obj 544 100 alpha; +#X text 25 -161 Synopsis: [pix_opencv_clahe]; +#X msg 504 211 clipLimit \$1; +#X text 539 188 clip limit; +#X text 542 242 tile grid size; +#X msg 507 267 tileGridSize \$1 \$1; +#X obj 485 295 pix_opencv_clahe 40 8 2; +#X text 48 3 ; +#X connect 5 0 14 0; +#X connect 6 0 35 0; +#X connect 8 0 9 0; +#X connect 9 0 8 0; +#X connect 10 0 13 0; +#X connect 11 0 12 0; +#X connect 12 0 14 1; +#X connect 13 0 29 0; +#X connect 14 0 16 1; +#X connect 14 2 11 0; +#X connect 16 0 22 0; +#X connect 16 0 27 0; +#X connect 17 0 16 2; +#X connect 17 0 34 0; +#X connect 18 0 16 0; +#X connect 19 0 18 0; +#X connect 20 0 30 0; +#X connect 21 0 39 0; +#X connect 22 0 20 0; +#X connect 24 0 26 0; +#X connect 24 0 27 1; +#X connect 26 0 22 1; +#X connect 27 0 21 0; +#X connect 29 0 14 0; +#X connect 30 0 45 0; +#X connect 31 0 32 0; +#X connect 32 0 17 0; +#X connect 33 0 19 0; +#X connect 34 0 33 0; +#X connect 34 1 5 0; +#X connect 36 0 41 0; +#X connect 37 0 44 0; +#X connect 39 0 30 0; +#X connect 41 0 45 0; +#X connect 44 0 45 0; +#X connect 45 0 6 0; diff --git a/help/pix_opencv_colorfilt-help.pd b/help/pix_opencv_colorfilt-help.pd new file mode 100644 index 0000000..8244bac --- /dev/null +++ b/help/pix_opencv_colorfilt-help.pd @@ -0,0 +1,164 @@ +#N canvas 240 210 936 587 10; +#X obj -6 52 cnv 15 430 370 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj -6 6 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 3 10 Arguments:; +#X obj -7 -90 cnv 15 430 90 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 24 30 none; +#X obj 430 -147 cnv 15 480 570 empty empty empty 20 12 0 14 -228992 +-66577 0; +#X obj 680 337 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 65 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#N canvas 87 154 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 obj 162 241 gemwin; +#X msg 327 189 destroy; +#X msg 283 161 frame 25; +#X obj 164 126 t b b b; +#X msg 161 188 dimen 320 240 \, create \, 1; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 9 0; +#X connect 2 1 4 0; +#X connect 2 1 7 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 10 0; +#X connect 9 2 8 0; +#X connect 10 0 6 0; +#X restore 690 381 pd gemwin; +#X msg 690 363 create; +#X obj 441 201 cnv 15 460 130 empty empty empty 20 12 0 14 -4034 -66577 +0; +#X text 688 343 Create window and render; +#X text 2 -57 written by Yves Degoyon ( ydegoyon@gmail.com ); +#X obj 446 361 rectangle 5.3 4; +#X floatatom 485 310 5 0 0 0 - - -; +#X floatatom 530 310 5 0 0 0 - - -; +#X floatatom 575 310 5 0 0 0 - - -; +#X text 619 310 RGB selected components; +#X msg 483 230 tolerance \$1; +#X floatatom 569 232 5 0 0 0 - - -; +#X text 610 231 tolerance applied for the selection of colors; +#X obj 832 49 gemmouse; +#X obj 828 134 f; +#X obj 798 133 f; +#X obj 798 112 t b b; +#X obj 798 155 pack f f; +#X obj 798 90 route 1; +#X text 3 -112 pix_opencv_colorfilt : color filter; +#X text 4 -80 you can set the selected color with its RGB components +or by selecting a piksel in the video window; +#X msg 466 204 pick \$1 \$2; +#X text 542 203 pick a color from the video; +#X obj 633 -135 gemhead; +#X obj 645 -108 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 702 67 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 684 32 5 0 10000 1 frame# - -; +#X obj 645 -79 openpanel; +#X msg 645 -59 open \$1; +#X obj 633 50 pix_film; +#X msg 651 -16 auto \$1; +#X obj 651 -34 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 +1; +#X msg 746 -33 colorspace RGBA; +#X msg 759 5 colorspace RGB; +#X msg 754 -14 colorspace Grey; +#X obj 746 -61 loadbang; +#N canvas 1 165 267 218 vswitch 0; +#X obj 36 143 outlet; +#X obj 36 26 inlet; +#X obj 120 27 inlet; +#X obj 165 27 inlet; +#X obj 81 79 == 0; +#X obj 36 103 spigot 1; +#X obj 120 105 spigot 0; +#X connect 1 0 5 0; +#X connect 2 0 6 0; +#X connect 3 0 4 0; +#X connect 3 0 6 1; +#X connect 4 0 5 1; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X restore 446 91 pd vswitch; +#X obj 514 91 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X obj 446 48 pix_video; +#X obj 446 -134 gemhead; +#X msg 485 -27 device 0; +#X msg 494 4 driver 1; +#X msg 471 -81 dialog; +#X msg 476 -51 device /dev/dv1394-0; +#X obj 446 289 pix_opencv_colorfilt; +#X obj 446 133 pix_resize 320 240; +#X obj 446 112 pix_rgba; +#X floatatom 485 270 5 0 0 0 - - -; +#X floatatom 530 270 5 0 0 0 - - -; +#X floatatom 575 270 5 0 0 0 - - -; +#X text 619 270 RGB selected components; +#X obj 446 339 pix_texture; +#X connect 7 0 8 0; +#X connect 8 0 7 0; +#X connect 17 0 51 0; +#X connect 18 0 17 0; +#X connect 20 0 22 1; +#X connect 20 1 21 1; +#X connect 20 2 25 0; +#X connect 21 0 24 1; +#X connect 22 0 24 0; +#X connect 23 0 22 0; +#X connect 23 1 21 0; +#X connect 24 0 28 0; +#X connect 25 0 23 0; +#X connect 28 0 51 0; +#X connect 30 0 36 0; +#X connect 31 0 34 0; +#X connect 32 0 33 0; +#X connect 33 0 36 1; +#X connect 34 0 35 0; +#X connect 35 0 36 0; +#X connect 36 0 43 1; +#X connect 36 2 32 0; +#X connect 37 0 36 0; +#X connect 38 0 37 0; +#X connect 39 0 36 0; +#X connect 39 0 45 0; +#X connect 40 0 36 0; +#X connect 41 0 36 0; +#X connect 42 0 39 0; +#X connect 42 0 38 0; +#X connect 43 0 53 0; +#X connect 44 0 43 2; +#X connect 45 0 43 0; +#X connect 46 0 45 0; +#X connect 47 0 45 0; +#X connect 48 0 45 0; +#X connect 49 0 45 0; +#X connect 50 0 45 0; +#X connect 51 0 58 0; +#X connect 51 1 13 0; +#X connect 51 2 14 0; +#X connect 51 3 15 0; +#X connect 52 0 51 0; +#X connect 53 0 52 0; +#X connect 54 0 51 1; +#X connect 55 0 51 2; +#X connect 56 0 51 3; +#X connect 58 0 12 0; diff --git a/help/pix_opencv_contours-help.pd b/help/pix_opencv_contours-help.pd new file mode 100644 index 0000000..f14f0f8 --- /dev/null +++ b/help/pix_opencv_contours-help.pd @@ -0,0 +1,731 @@ +#N canvas 849 245 794 766 10; +#X declare -lib pix_opencv; +#X obj 472 35 cnv 15 300 500 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 11 56 cnv 15 450 200 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 11 307 cnv 15 450 380 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 13 315 Inlets:; +#X obj 11 267 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 20 266 Arguments:; +#X text 12 436 Outlets:; +#X text 478 20 Example:; +#X text 58 21 Class: pix_opencv; +#X text 11 60 Description: finds contours; +#X text 66 276 none; +#X text 30 349 Inlet 1: message: epsilon [float]; +#X obj 353 315 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 1 122 450 300 gemwin 0; +#X obj 132 156 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 198 112 destroy; +#X msg 132 132 reset \, dimen 640 480 \, create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 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 358 354 pd gemwin; +#X msg 358 335 destroy; +#X text 354 314 Create window:; +#X text 30 329 Inlet 1: binarized image; +#X text 30 589 <2> +; +#X text 25 447 Outlet 1: gemlist output; +#X text 37 5 Synopsis: [pix_opencv_contours]; +#X text 21 578 contour (for each of them); +#X text 37 75 [pix_opencv_contours] finds contours in incomming image +\, simplifies it according to the epsilon value and outputs contours +with area greater than a threshold.; +#X text 30 339 Inlet 1: message: area threshold [float]; +#X text 25 457 Outlet 2: contour \, convexhull and convexity defect +output; +#X text 37 126 contrary to [pix_opencv_contour_convexhull] \, [pix_opencv_contours] +outputs all contours found not only the biggest.; +#X text 37 175 it can also output rotated bounding rectangle \, convexhull +and cenvexity defects; +#X text 37 215 you can choose the hierarchy level of output contour +; +#X text 37 235 so this external replaces all old pix_opencv_contours_* +; +#X text 30 619 <2> +; +#X text 21 606 convexhull (for each contour); +#X text 20 637 convexixitydefects (for each contour); +#X text 30 649 <7> depth; +#X text 26 699 by antoine villeret - 2012; +#X text 16 719 bug \, feedback \, comment... on the pd-list; +#X obj 476 193 cnv 15 280 80 empty empty empty 20 12 0 14 -4034 -66577 +0; +#X obj 541 151 pix_texture; +#X obj 487 76 t b a a; +#X obj 487 57 gemhead 1; +#X msg 542 214 epsilon \$1; +#X floatatom 542 197 5 0 0 0 - - -, f 5; +#X obj 625 121 loadbang; +#X obj 541 171 rectangle 5.333 4; +#X obj 514 116 t a a; +#X msg 617 214 area \$1; +#X floatatom 617 197 5 0 0 0 - - -, f 5; +#X msg 659 142 10; +#X msg 625 141 2; +#N canvas 1167 234 474 845 draw_rotrect 0; +#X obj 71 506 GEMglVertex2d; +#X obj 71 586 GEMglVertex2d; +#X obj 71 666 GEMglVertex2d; +#X obj 71 746 GEMglVertex2d; +#X obj 71 766 GEMglEnd; +#X obj 71 277 alpha; +#X obj 143 178 list split 1; +#X obj 71 420 GEMglBegin GL_LINE_LOOP; +#X obj 177 198 list split 8; +#X msg 363 324 0 0 0 0 0 0 0 0; +#X obj 32 -8 inlet INFO; +#X obj 71 256 gemhead; +#X obj 15 147 loadbang; +#X msg 15 168 0; +#X obj 71 52 t b a b; +#X obj 211 504 list split 2; +#X obj 177 448 list split 2; +#X obj 137 472 unpack; +#X obj 211 525 unpack; +#X obj 245 564 list split 2; +#X obj 245 585 unpack; +#X obj 279 664 list split 2; +#X obj 279 685 unpack; +#X obj 90 84 list split 2; +#X obj 95 154 list append; +#X obj 292 81 t b; +#X obj 32 32 route 0; +#X floatatom 342 463 5 0 0 0 - - -, f 5; +#X obj 342 442 list length; +#X obj 71 400 GEMglLineWidth 1; +#X obj 71 327 translateXYZ -5.3333 4 0; +#X obj 71 361 scaleXYZ 10.6666 -8 0; +#X obj 124 107 list split 20; +#X obj 71 302 color 1 1 0 1; +#X obj 124 128 t b b a; +#X obj 32 13 route info; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 5 0 33 0; +#X connect 6 1 8 0; +#X connect 7 0 0 0; +#X connect 8 0 16 0; +#X connect 9 0 16 0; +#X connect 10 0 35 0; +#X connect 11 0 5 0; +#X connect 12 0 13 0; +#X connect 13 0 11 0; +#X connect 14 1 23 0; +#X connect 14 2 25 0; +#X connect 15 0 18 0; +#X connect 15 1 19 0; +#X connect 16 0 17 0; +#X connect 16 1 15 0; +#X connect 17 0 0 1; +#X connect 17 1 0 2; +#X connect 18 0 1 1; +#X connect 18 1 1 2; +#X connect 19 0 20 0; +#X connect 19 1 21 0; +#X connect 20 0 2 1; +#X connect 20 1 2 2; +#X connect 21 0 22 0; +#X connect 22 0 3 1; +#X connect 22 1 3 2; +#X connect 23 1 32 0; +#X connect 24 0 32 0; +#X connect 25 0 9 0; +#X connect 26 1 14 0; +#X connect 28 0 27 0; +#X connect 29 0 7 0; +#X connect 30 0 31 0; +#X connect 31 0 29 0; +#X connect 32 0 34 0; +#X connect 32 1 24 1; +#X connect 33 0 30 0; +#X connect 34 0 24 0; +#X connect 34 1 11 0; +#X connect 34 2 6 0; +#X connect 34 2 28 0; +#X connect 35 0 26 0; +#X restore 658 323 pd draw_rotrect; +#X obj 487 240 pix_opencv_contours; +#N canvas 955 337 674 695 drawdefects 0; +#X obj 191 301 gemhead; +#X obj 134 217 loadbang; +#X msg 134 238 0; +#X obj 210 116 list split 2; +#X obj 215 186 list append; +#X obj 191 375 scaleXYZ 10.6666 -8 0; +#X obj 244 160 t b b a; +#X obj 210 76 inlet DEFECTS; +#X obj 210 96 route convexitydefects; +#X obj 244 139 list split 7; +#X obj 191 335 color 1 0 0 1; +#X obj 191 355 translateXYZ -5.3333 4 0; +#N canvas 895 575 739 379 ortho_point 0; +#X obj 192 7 inlet; +#X obj 192 57 t a a; +#X obj 204 238 *; +#X obj 174 238 *; +#X obj 114 124 unpack 0 0 0 0; +#X obj 114 279 +; +#X obj 154 279 +; +#X obj 114 340 outlet; +#X obj 174 320 outlet; +#X obj 153 198 -; +#X msg 153 178 1 \$1; +#X obj 144 238 *; +#X obj 114 238 *; +#X obj 219 84 list split 6; +#X text 519 123 dot product; +#X floatatom 244 163 5 0 0 0 - - -, f 5; +#X obj 300 29 t b; +#X msg 343 68 0 1 1 1 0.5 0.5; +#X obj 219 124 expr abs(($f3-$f1)*($f6-$f2)+($f4-$f2)*($f5-$f1)); +#X obj 302 158 expr $f1*sqrt(10.666*8); +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 1 1 13 0; +#X connect 2 0 6 1; +#X connect 3 0 5 1; +#X connect 4 0 12 0; +#X connect 4 1 11 0; +#X connect 4 2 3 0; +#X connect 4 3 2 0; +#X connect 5 0 7 0; +#X connect 6 0 8 0; +#X connect 9 0 11 1; +#X connect 9 0 12 1; +#X connect 10 0 9 0; +#X connect 11 0 6 0; +#X connect 12 0 5 0; +#X connect 13 0 18 0; +#X connect 16 0 17 0; +#X connect 17 0 1 0; +#X connect 18 0 15 0; +#X connect 18 0 19 0; +#X connect 19 0 2 1; +#X connect 19 0 3 1; +#X connect 19 0 10 0; +#X restore 328 515 pd ortho_point; +#X obj 191 475 translateXYZ 10.6666 -8 0; +#X msg 240 451 \$5; +#X msg 289 451 \$6; +#X obj 191 556 circle 0.01; +#X msg 204 530 draw line; +#X obj 204 506 loadbang; +#X obj 354 369 t a; +#X connect 0 0 10 0; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X connect 3 1 9 0; +#X connect 4 0 9 0; +#X connect 5 0 13 0; +#X connect 6 0 4 0; +#X connect 6 1 0 0; +#X connect 6 2 19 0; +#X connect 7 0 8 0; +#X connect 8 0 3 0; +#X connect 9 0 6 0; +#X connect 9 1 4 1; +#X connect 10 0 11 0; +#X connect 11 0 5 0; +#X connect 13 0 16 0; +#X connect 14 0 13 1; +#X connect 15 0 13 2; +#X connect 17 0 16 0; +#X connect 18 0 17 0; +#X connect 19 0 15 0; +#X connect 19 0 14 0; +#X restore 542 294 pd drawdefects; +#N canvas 168 587 1126 291 options 0; +#X obj 57 147 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X msg 57 167 contours \$1; +#X obj 57 251 outlet; +#X obj 147 147 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 247 147 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 147 167 convexhulls \$1; +#X msg 247 167 convexitydefects \$1; +#X text 25 37 set hierarchy level (which contour to send out); +#X obj 24 83 nbx 5 14 -2 1e+37 0 1 empty empty empty 0 -8 0 10 -262144 +-1 -1 -1 256; +#X msg 24 100 hierarchy_level \$1; +#X text 71 125 send out different kind of infos (all on by default) +:; +#X text 25 47 -1 for all contours (default); +#X msg 559 168 settab drawX drawY drawZ; +#X obj 558 200 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 558 229 taboutput \$1; +#X text 550 71 first set some tables (they are dynamically resized) +; +#X text 550 151 tell it what tables to use; +#X text 582 200 enable disable table output (automatically enable when +ou set table); +#X text 569 256 see [pd draw_contour_gemvertexbuffer] for an example +of drawing contours; +#N canvas 789 194 596 300 draw_contour_gemvertexbuffer 0; +#X obj 175 173 loadbang; +#X obj 135 65 translateXYZ -0.5 -0.5 0; +#X obj 135 42 scaleXYZ 10.6666 -8 1; +#X obj 135 87 t a b; +#X obj 135 -9 gemhead 1000; +#X obj 135 17 alpha 0; +#X msg 161 130 posX drawX \, posY drawY \, colorG drawZ \, colorA drawZ +; +#X msg 175 193 draw line; +#X obj 135 245 gemvertexbuffer; +#X obj 161 108 inlet; +#X obj 269 174 r point_number; +#X msg 269 201 resize \$1; +#X floatatom 342 206 5 0 0 0 - - -, f 5; +#X connect 0 0 7 0; +#X connect 1 0 3 0; +#X connect 2 0 1 0; +#X connect 3 0 8 0; +#X connect 3 1 6 0; +#X connect 4 0 5 0; +#X connect 5 0 2 0; +#X connect 6 0 8 0; +#X connect 7 0 8 0; +#X connect 9 0 6 0; +#X connect 10 0 11 0; +#X connect 10 0 12 0; +#X connect 11 0 8 0; +#X restore 797 147 pd draw_contour_gemvertexbuffer; +#X obj 797 126 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X text 813 127 draw with gemvertexbuffer; +#X msg 379 80 repeat_point \$1; +#X floatatom 379 62 5 0 0 0 - - -, f 5; +#X text 348 47 repeat the first point n times; +#X msg 383 167 cvblobOutput \$1; +#X obj 383 148 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 25 57 -2 for only contours with no child (aka holes); +#X obj 564 89 table drawX 1000; +#X obj 564 109 table drawY 1000; +#X obj 564 129 table drawZ 1000; +#X text 543 5 to improve performance and avoid "stack overflow" (because +contours could have a huge number of points) you can use table output +instead of list output; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 3 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 2 0; +#X connect 6 0 2 0; +#X connect 8 0 9 0; +#X connect 9 0 2 0; +#X connect 12 0 2 0; +#X connect 13 0 14 0; +#X connect 14 0 2 0; +#X connect 20 0 19 0; +#X connect 22 0 2 0; +#X connect 23 0 22 0; +#X connect 25 0 2 0; +#X connect 26 0 25 0; +#X restore 674 213 pd options; +#X text 489 347 color legend :; +#X text 522 364 yellow = bounding box; +#X text 528 374 green = contour; +#X text 534 385 blue = convexhull; +#X text 534 397 pink = convexhull edge with defects; +#X text 540 409 red = farthest point from convexhull; +#N canvas 630 223 621 734 draw_contours 0; +#X obj 178 132 list split 2; +#X obj 170 593 GEMglEnd; +#X obj 300 590 GEMglVertex2d; +#X obj 212 263 list append; +#X obj 241 237 t b a; +#X obj 241 216 list split 2; +#X obj 341 495 unpack; +#X obj 310 257 t b a; +#X obj -101 364 color 1 0 0 1; +#X obj 405 545 * -8; +#X obj 405 565 + 4; +#X obj -101 422 GEMglLineWidth 2; +#X obj 341 545 * 10.6666; +#X obj 341 565 - 5.33333; +#X obj 170 564 gemlist; +#X obj 300 421 gemlist; +#X obj -62 242 gemhead; +#X obj -62 187 loadbang; +#X msg -62 208 0; +#X obj 133 161 unpack 0 0; +#X floatatom 133 182 5 0 0 0 nb_of_segments - -, f 5; +#X obj 107 -65 inlet CONTOUR; +#X obj -101 334 gemlist; +#X obj 212 159 t b a b b; +#X obj 106 -44 route convexhull contour convexitydefects; +#X obj 187 1 t a b; +#X msg -17 320 0 0 1 1; +#X msg -25 299 0 1 0 1; +#X obj 106 0 t a b; +#X obj 268 1 list split 2; +#X obj 290 96 list append; +#X obj 319 76 t b a; +#X obj 302 28 t b a b b; +#X obj 268 -19 t a b; +#X msg -7 340 1 0 1 1; +#X obj 319 55 list split 7; +#X obj 346 116 list split 4; +#X obj -101 459 GEMglBegin GL_LINE_LOOP; +#X obj -115 -62 inlet; +#X obj -115 -40 t a a a; +#X connect 0 0 19 0; +#X connect 0 1 23 0; +#X connect 2 0 14 1; +#X connect 3 0 5 0; +#X connect 4 0 3 0; +#X connect 4 1 7 0; +#X connect 5 0 4 0; +#X connect 5 1 3 1; +#X connect 6 0 12 0; +#X connect 6 1 9 0; +#X connect 7 0 15 0; +#X connect 7 1 6 0; +#X connect 8 0 11 0; +#X connect 9 0 10 0; +#X connect 10 0 2 2; +#X connect 11 0 37 0; +#X connect 12 0 13 0; +#X connect 13 0 2 1; +#X connect 14 0 1 0; +#X connect 15 0 2 0; +#X connect 17 0 18 0; +#X connect 18 0 16 0; +#X connect 19 0 20 0; +#X connect 21 0 24 0; +#X connect 22 0 8 0; +#X connect 23 0 14 0; +#X connect 23 1 5 0; +#X connect 23 2 22 0; +#X connect 23 3 16 0; +#X connect 24 0 28 0; +#X connect 24 1 25 0; +#X connect 24 2 33 0; +#X connect 25 0 0 0; +#X connect 25 1 27 0; +#X connect 26 0 8 1; +#X connect 27 0 8 1; +#X connect 28 0 0 0; +#X connect 28 1 26 0; +#X connect 29 1 32 0; +#X connect 30 0 35 0; +#X connect 31 0 30 0; +#X connect 31 1 36 0; +#X connect 32 1 35 0; +#X connect 33 0 29 0; +#X connect 33 1 34 0; +#X connect 34 0 8 1; +#X connect 35 0 31 0; +#X connect 35 1 30 1; +#X connect 36 0 23 0; +#X connect 37 0 15 1; +#X connect 38 0 39 0; +#X connect 39 0 22 1; +#X restore 504 513 pd draw_contours; +#N canvas 13 321 1198 730 info 0; +#X obj -67 115 cnv 15 250 40 empty empty empty 20 12 0 14 -4034 -66577 +0; +#X obj -68 292 cnv 15 350 20 empty empty empty 20 12 0 14 -4034 -66577 +0; +#X obj 14 332 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577 +0; +#X obj 282 -59 cnv 15 100 40 empty empty empty 20 12 0 14 -4034 -66577 +0; +#X obj 51 497 cnv 15 330 50 empty empty empty 20 12 0 14 -4034 -66577 +0; +#X obj 225 16 inlet; +#X obj 225 67 list split 2; +#X obj 259 137 list split 20; +#X text 309 70 cut matrix header; +#X text 346 98 cut infos for the 1st contour; +#X text -55 294 rotated rectangle center point (normalized); +#X obj 211 224 list split 2; +#X obj 245 314 unpack; +#X floatatom 245 334 5 0 0 0 - - -, f 5; +#X floatatom 278 334 5 0 0 0 - - -, f 5; +#X obj 245 244 list split 2; +#X text 29 334 rotated rectangle size (normalized); +#X obj 313 384 list split 8; +#X floatatom 304 -37 5 0 0 0 - - -, f 5; +#X obj 304 -18 * 20; +#X obj 304 4 + 2; +#X text 284 -55 selected contour; +#X obj 116 96 unpack; +#X floatatom 116 117 5 0 0 0 - - -, f 5; +#X floatatom 149 138 5 0 0 0 - - -, f 5; +#X text -52 114 number of detected contours; +#X text -61 137 numbers of values for each contour; +#X obj 313 404 list prepend set; +#X obj 313 424 list trim; +#X msg 54 513 0.681584 0.808552 0.679688 0.789583 0.704353 0.785198 +0.70625 0.804167; +#X text 59 495 rotrect corners coordinates; +#X obj 570 153 list split 20; +#X obj 570 175 t b a; +#X obj 617 222 list; +#X msg 597 259 \$15; +#X obj 597 281 +; +#X obj 625 281 f; +#X msg 620 122 0; +#X obj 582 303 f; +#X obj 551 119 t b a b; +#X floatatom 582 325 5 0 0 0 - - -, f 5; +#X text 445 323 total number of points; +#X obj 177 194 list split 1; +#X obj -140 220 cnv 15 350 20 empty empty empty 20 12 0 14 -4034 -66577 +0; +#X floatatom 177 223 5 0 0 0 - - -, f 5; +#X text 24 223 id in the detection order; +#X obj 26 405 cnv 15 250 20 empty empty empty 20 12 0 14 -4034 -66577 +0; +#X text 30 408 rotated rectangle angle (degrees); +#X obj 279 364 list split 2; +#X obj 211 274 unpack; +#X floatatom 211 294 5 0 0 0 - - -, f 5; +#X floatatom 244 294 5 0 0 0 - - -, f 5; +#X obj 240 387 unpack; +#X floatatom 240 407 5 0 0 0 - - -, f 5; +#X obj 26 435 cnv 15 250 20 empty empty empty 20 12 0 14 -4034 -66577 +0; +#X floatatom 240 437 5 0 0 0 - - -, f 5; +#X text 30 438 area in % of image area; +#X obj 199 570 cnv 15 250 80 empty empty empty 20 12 0 14 -4034 -66577 +0; +#X floatatom 347 595 5 0 0 0 - - -, f 5; +#X floatatom 381 615 5 0 0 0 - - -, f 5; +#X text 203 614 length of contour (in pixels); +#X text 247 595 number of points; +#X obj 347 575 unpack f f; +#X obj 225 38 route cvblob count; +#X obj 736 107 unpack f f; +#X floatatom 736 129 5 0 0 0 - - -, f 5; +#X floatatom 793 130 5 0 0 0 - - -, f 5; +#X obj 776 195 s point_number; +#X text 723 144 contours; +#X text 797 145 points; +#X text 690 160 total counts of contours and points; +#X connect 5 0 63 0; +#X connect 6 0 22 0; +#X connect 6 1 7 0; +#X connect 6 1 39 0; +#X connect 7 0 42 0; +#X connect 11 0 49 0; +#X connect 11 1 15 0; +#X connect 12 0 13 0; +#X connect 12 1 14 0; +#X connect 15 0 12 0; +#X connect 15 1 48 0; +#X connect 17 0 27 0; +#X connect 17 1 62 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 20 0 6 1; +#X connect 22 0 23 0; +#X connect 22 1 24 0; +#X connect 22 1 19 1; +#X connect 22 1 7 1; +#X connect 27 0 28 0; +#X connect 28 0 29 0; +#X connect 31 0 32 0; +#X connect 31 1 33 1; +#X connect 32 0 33 0; +#X connect 32 1 34 0; +#X connect 33 0 31 0; +#X connect 34 0 35 0; +#X connect 35 0 36 0; +#X connect 35 0 38 1; +#X connect 36 0 35 1; +#X connect 37 0 35 1; +#X connect 38 0 40 0; +#X connect 39 0 38 0; +#X connect 39 1 31 0; +#X connect 39 2 37 0; +#X connect 42 0 44 0; +#X connect 42 1 11 0; +#X connect 48 0 52 0; +#X connect 48 1 17 0; +#X connect 49 0 50 0; +#X connect 49 1 51 0; +#X connect 52 0 53 0; +#X connect 52 1 55 0; +#X connect 62 0 58 0; +#X connect 62 1 59 0; +#X connect 63 0 6 0; +#X connect 63 1 64 0; +#X connect 64 0 65 0; +#X connect 64 1 66 0; +#X connect 64 1 67 0; +#X restore 675 294 pd info; +#X text 29 498 20 +0 0 0 0; +#X obj 554 32 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 30 369 Inlet 1: message: contours <0|1>; +#X text 30 379 Inlet 1: message: convexhull <0|1>; +#X text 30 389 Inlet 1: message: convexitydefects <0|1>; +#X text 30 399 Inlet 1: message: settab tabname1 tabname2 tabname3 +; +#X text 30 409 Inlet 1: message: taboutput <0|1>; +#X text 30 359 Inlet 1: message: hierarchy_level [float]; +#X obj 514 96 pix_image examples/dessin.tif; +#N canvas 865 237 931 731 cvblob 0; +#X obj 87 321 gemlist; +#X obj 87 301 t b a; +#X obj 328 306 list append; +#X obj 323 198 list split 2; +#X obj 323 142 list append; +#X obj 99 108 t b a; +#X obj 357 280 t b a; +#X obj 87 511 translateXYZ; +#X msg 228 354 \$2; +#X obj 87 361 alpha 1; +#X obj 87 471 translateXYZ -0.5 -0.5 0; +#X obj 87 535 scaleXYZ 0.125 0.25 0; +#X msg 267 354 \$3; +#X msg 242 468 \$4; +#X obj 271 333 t a a; +#X obj 87 581 circle 0.5; +#X obj 87 431 color 1 0 0 0.2; +#X obj 87 341 separator; +#X msg 307 504 \$1; +#X obj 87 621 color 1 1 0 1; +#X obj 357 246 list split 6; +#X msg 426 194 \$2; +#X obj 174 627 loadbang; +#X msg 174 646 12; +#X msg 329 382 \$6; +#X obj 329 404 > 0; +#X obj 329 425 sel 1 0; +#X msg 328 446 1 0 0 0.2; +#X msg 348 466 0 1 0 0.2; +#X obj 87 601 translateXYZ 0.2 0.2 0; +#X text 547 280 here is an example on how to display blobs with Gem +; +#X obj 87 451 scaleXYZ 10.666 -8 0; +#X obj 87 682 text2d; +#X text 452 195 <- be careful ! the size of the cvblob matrix could +change; +#X text 534 212 please check second element to gets matrix width (number +of value per blob); +#X obj 323 164 t a a; +#X obj 386 11 inlet cvblob; +#X obj 386 33 route cvblob; +#X obj 240 490 sqrt; +#X obj 99 83 spigot; +#X obj 386 55 t a a; +#X msg 413 77 \$1; +#X floatatom 413 99 5 0 0 0 - - -, f 5; +#X obj 99 19 inlet; +#X connect 0 0 17 0; +#X connect 1 0 0 0; +#X connect 1 1 14 0; +#X connect 2 0 20 0; +#X connect 3 1 20 0; +#X connect 4 0 35 0; +#X connect 5 0 4 0; +#X connect 5 1 0 1; +#X connect 6 0 2 0; +#X connect 6 1 1 0; +#X connect 7 0 11 0; +#X connect 8 0 7 1; +#X connect 9 0 16 0; +#X connect 10 0 7 0; +#X connect 11 0 15 0; +#X connect 12 0 7 2; +#X connect 13 0 38 0; +#X connect 14 0 12 0; +#X connect 14 0 8 0; +#X connect 14 1 13 0; +#X connect 14 1 18 0; +#X connect 14 1 24 0; +#X connect 15 0 29 0; +#X connect 16 0 31 0; +#X connect 17 0 9 0; +#X connect 18 0 32 0; +#X connect 19 0 32 0; +#X connect 20 0 6 0; +#X connect 20 1 2 1; +#X connect 21 0 20 1; +#X connect 22 0 23 0; +#X connect 23 0 32 1; +#X connect 24 0 25 0; +#X connect 25 0 26 0; +#X connect 26 0 27 0; +#X connect 26 1 28 0; +#X connect 27 0 16 1; +#X connect 28 0 16 1; +#X connect 29 0 19 0; +#X connect 31 0 10 0; +#X connect 35 0 3 0; +#X connect 35 1 21 0; +#X connect 36 0 37 0; +#X connect 37 0 40 0; +#X connect 38 0 11 1; +#X connect 38 0 11 2; +#X connect 39 0 5 0; +#X connect 40 0 4 1; +#X connect 40 1 41 0; +#X connect 41 0 42 0; +#X connect 41 0 39 1; +#X connect 43 0 39 0; +#X restore 664 365 pd cvblob; +#X text 506 492 WARNING ! this crashes; +#X text 20 488 cvblob; +#X text 25 467 Outlet 3: info output; +#X text 20 558 count ; +#X text 612 516 fix me !; +#X obj 487 171 pix_rgba; +#X obj 487 141 pix_video; +#X obj 532 603 declare -lib pix_opencv; +#X connect 13 0 14 0; +#X connect 14 0 13 0; +#X connect 35 0 41 0; +#X connect 36 0 75 0; +#X connect 36 1 67 0; +#X connect 37 0 36 0; +#X connect 38 0 48 0; +#X connect 39 0 38 0; +#X connect 40 0 46 0; +#X connect 40 0 45 0; +#X connect 42 0 75 0; +#X connect 42 1 35 0; +#X connect 43 0 48 0; +#X connect 44 0 43 0; +#X connect 45 0 44 0; +#X connect 46 0 39 0; +#X connect 48 0 68 0; +#X connect 48 1 49 0; +#X connect 48 2 68 1; +#X connect 48 2 47 0; +#X connect 48 2 58 0; +#X connect 50 0 48 0; +#X connect 60 0 37 0; +#X connect 67 0 42 0; +#X connect 74 0 48 0; +#X connect 75 0 74 0; diff --git a/help/pix_opencv_contours_boundingrect-help.pd b/help/pix_opencv_contours_boundingrect-help.pd new file mode 100644 index 0000000..88fd8fc --- /dev/null +++ b/help/pix_opencv_contours_boundingrect-help.pd @@ -0,0 +1,255 @@ +#N canvas 180 115 1202 794 10; +#X obj 2 42 cnv 15 430 560 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 2 -4 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 11 0 Arguments:; +#X obj 2 -99 cnv 15 430 90 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 7 -137 Class: pix_opencv; +#X text 32 17 none; +#X obj 437 -158 cnv 15 710 760 empty empty empty 20 12 0 14 -228992 +-66577 0; +#X obj 589 283 cnv 15 550 250 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X floatatom 693 467 5 0 0 0 - - -; +#X floatatom 788 481 5 0 0 0 - - -; +#X floatatom 693 581 5 0 0 0 - - -; +#X floatatom 728 581 5 0 0 0 - - -; +#X floatatom 765 581 5 0 0 0 - - -; +#X floatatom 799 581 5 0 0 0 - - -; +#X obj 693 558 unpack 0 0 0 0 0; +#X obj 693 536 route 0 1 2 3 4; +#X text 794 539 For each contour detected; +#X text 16 50 It is useful as a motion tracker if you have well isolated +silouets of the objects you want to track.; +#X msg 618 293 mode \$1; +#X obj 679 294 hradio 15 1 0 4 empty empty empty 0 -8 0 10 -262144 +-1 -1 0; +#X text 748 295 retrieval mode ( see cvFindContours ); +#X obj 714 319 hradio 15 1 0 5 empty empty empty 0 -8 0 10 -262144 +-1 -1 0; +#X text 796 319 retrieval method ( see cvFindContours ); +#X msg 647 318 method \$1; +#X msg 670 341 maxmove \$1; +#X floatatom 744 342 5 0 0 0 - - -; +#X floatatom 768 366 5 0 0 0 - - -; +#X msg 680 363 ftolerance \$1; +#X text 805 364 frame tolerance for identification ( default 5 ); +#X text 9 -93 pix_opencv_contours_boundingrect :: Calculates up-right +bounding rectangle of all contours of a binary image.; +#X text 16 89 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 16 143 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 floatatom 788 518 5 0 0 0 - - -; +#X text 826 519 number of contours; +#X msg 695 388 nightmode \$1; +#X obj 785 389 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 774 410 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 787 432 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 714 409 draw \$1; +#X text 801 408 draw bounding rectangle ( default : on ); +#X msg 729 430 show \$1; +#X text 814 429 draw the detected contours ( default : off ); +#X text 808 389 hide original image ( default : off ); +#X obj 614 -145 gemhead; +#X obj 599 541 pix_texture; +#X obj 919 -153 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 +-66577 0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 65 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#N canvas 87 154 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 obj 162 241 gemwin; +#X msg 161 188 create \, 1; +#X msg 237 189 destroy; +#X msg 283 161 frame 25; +#X obj 164 126 t b b b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 10 0; +#X connect 2 1 4 0; +#X connect 2 1 8 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 7 0; +#X connect 10 2 9 0; +#X restore 929 -109 pd gemwin; +#X msg 929 -127 create; +#X obj 447 541 pix_texture; +#X obj 599 184 separator; +#X obj 626 -118 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 683 57 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 665 22 5 0 10000 1 frame# - -; +#X obj 626 -89 openpanel; +#X msg 626 -69 open \$1; +#X obj 614 40 pix_film; +#X msg 632 -26 auto \$1; +#X obj 632 -44 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 +1; +#X text 927 -147 Create window and render; +#X msg 727 -43 colorspace RGBA; +#X msg 733 -24 colorspace RGB; +#X msg 750 -1 colorspace Grey; +#X obj 727 -71 loadbang; +#X obj 599 155 pix_separator; +#X obj 447 187 separator; +#X obj 447 158 pix_separator; +#X obj 447 222 translateXYZ -2 0 0; +#X obj 599 219 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 447 96 pd vswitch; +#X obj 515 96 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X obj 447 -150 gemhead; +#X msg 486 -37 device 0; +#X msg 495 -6 driver 1; +#X msg 472 -91 dialog; +#X msg 477 -61 device /dev/dv1394-0; +#X text 843 581 ( First contour ) Xorigin Yorigin Width Height; +#X text 728 463 min area in pixels (default 10x10); +#X text 825 479 max area in pixels (default 320x240); +#X obj 447 116 pix_resize 320 240; +#X text 787 341 maximum move of a countour ( default 20 ); +#X floatatom 765 245 5 0 0 0 - - -; +#X obj 599 252 pix_opencv_bgsubstract; +#X obj 527 394 loadbang; +#X msg 769 212 set; +#X text 803 214 reset background reference; +#X obj 599 498 pix_opencv_contours_boundingrect; +#X obj 447 38 pix_video; +#X text 16 268 TODO ::: in some cases i want to reuse losts tags inmediately +\, a message to do it is needed; +#X text 17 227 KNOWN BUGS :: in some input data all the blobs are tagged +with 0 label (if maxmove is very high????) ... if i put maxmove to +zero blobs are tagged in a crazy way....; +#X msg 527 414 50; +#X obj 837 244 loadbang; +#X msg 802 246 50; +#X obj 447 135 pix_rgba; +#X obj 447 561 square 2; +#X obj 599 561 square 2; +#X text 16 308 See also pix_opencv_contour_convexhull that output also +a contour rotation; +#X text 8 -153 Synopsis: [pix_opencv_contours_boundingrect]; +#X obj 88 419 cnv 15 100 60 empty empty DEPRECATED!! 20 12 0 18 -233017 +-258113 0; +#X text 74 445 please consider the use of pix_opencv_contours; +#X connect 8 0 85 1; +#X connect 9 0 85 2; +#X connect 14 0 10 0; +#X connect 14 1 11 0; +#X connect 14 2 12 0; +#X connect 14 3 13 0; +#X connect 15 0 14 0; +#X connect 18 0 85 0; +#X connect 19 0 18 0; +#X connect 21 0 23 0; +#X connect 23 0 85 0; +#X connect 24 0 85 0; +#X connect 25 0 24 0; +#X connect 26 0 27 0; +#X connect 27 0 85 0; +#X connect 34 0 85 0; +#X connect 35 0 34 0; +#X connect 36 0 38 0; +#X connect 37 0 40 0; +#X connect 38 0 85 0; +#X connect 40 0 85 0; +#X connect 43 0 55 0; +#X connect 44 0 94 0; +#X connect 46 0 47 0; +#X connect 47 0 46 0; +#X connect 48 0 93 0; +#X connect 49 0 67 0; +#X connect 50 0 53 0; +#X connect 51 0 52 0; +#X connect 52 0 55 1; +#X connect 53 0 54 0; +#X connect 54 0 55 0; +#X connect 55 0 68 1; +#X connect 55 2 51 0; +#X connect 56 0 55 0; +#X connect 57 0 56 0; +#X connect 59 0 55 0; +#X connect 59 0 86 0; +#X connect 60 0 55 0; +#X connect 61 0 55 0; +#X connect 62 0 59 0; +#X connect 62 0 57 0; +#X connect 63 0 49 0; +#X connect 64 0 66 0; +#X connect 65 0 64 0; +#X connect 66 0 48 0; +#X connect 67 0 81 0; +#X connect 68 0 78 0; +#X connect 69 0 68 2; +#X connect 70 0 86 0; +#X connect 71 0 86 0; +#X connect 72 0 86 0; +#X connect 73 0 86 0; +#X connect 74 0 86 0; +#X connect 78 0 92 0; +#X connect 80 0 81 1; +#X connect 81 0 85 0; +#X connect 82 0 89 0; +#X connect 83 0 81 0; +#X connect 85 0 44 0; +#X connect 85 1 15 0; +#X connect 85 2 32 0; +#X connect 86 0 68 0; +#X connect 89 0 8 0; +#X connect 90 0 91 0; +#X connect 91 0 80 0; +#X connect 92 0 65 0; +#X connect 92 0 63 0; diff --git a/help/pix_opencv_contours_convexhull-help.pd b/help/pix_opencv_contours_convexhull-help.pd new file mode 100644 index 0000000..a509af6 --- /dev/null +++ b/help/pix_opencv_contours_convexhull-help.pd @@ -0,0 +1,181 @@ +#N canvas 586 108 1018 740 10; +#X obj 588 591 cnv 15 255 67 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X floatatom 841 790 5 0 0 0 - - -; +#X floatatom 876 790 5 0 0 0 - - -; +#X floatatom 906 771 5 0 0 0 - - -; +#X floatatom 940 771 5 0 0 0 - - -; +#X obj 868 710 unpack 0 0 0 0 0 0; +#X floatatom 970 752 5 0 0 0 - - -; +#X floatatom 1004 752 5 0 0 0 - - -; +#X text 36 159 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 pix_threshold to obtain a correct input for pix_opencv_contours_boundingrect. +; +#X obj 606 634 pix_opencv_contours_convexhull; +#X text 1043 753 etc ...; +#X text 978 771 Second vertex point (X -Y); +#X text 916 790 First vertex point (X -Y); +#X text 37 212 pix_opencv_contours_convexhull works detecting the bigest +white area in the input image \, sometimes you will need to use pix_opencv_morphology +to transform the contours of the shape to be analyzed..; +#X text 37 123 pix_opencv_contours_convexhull :: Finds convexhull of +the bigest contour of a binary image.; +#X floatatom 694 685 5 0 0 0 - - -; +#X obj 725 54 gemhead; +#X obj 606 852 pix_texture; +#X obj 606 871 square 2; +#X obj 43 50 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 65 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#N canvas 87 154 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 obj 162 241 gemwin; +#X msg 161 188 create \, 1; +#X msg 237 189 destroy; +#X msg 283 161 frame 25; +#X obj 164 126 t b b b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 10 0; +#X connect 2 1 4 0; +#X connect 2 1 8 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 7 0; +#X connect 10 2 9 0; +#X restore 53 94 pd gemwin; +#X msg 53 76 create; +#X obj 454 848 pix_texture; +#X obj 454 876 square 2; +#X obj 606 381 separator; +#X obj 737 81 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 794 256 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 776 221 5 0 10000 1 frame# - -; +#X obj 737 110 openpanel; +#X msg 737 130 open \$1; +#X obj 725 239 pix_film; +#X msg 743 173 auto \$1; +#X obj 743 155 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 +1; +#X text 51 56 Create window and render; +#X msg 838 156 colorspace RGBA; +#X msg 943 156 colorspace RGB; +#X msg 1047 156 colorspace Grey; +#X obj 838 128 loadbang; +#X obj 605 352 pix_separator; +#X obj 454 384 separator; +#X obj 454 355 pix_separator; +#X obj 454 419 translateXYZ -2 0 0; +#X obj 606 416 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 547 309 pd vswitch; +#X obj 615 309 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 488 237 pix_video; +#X obj 488 49 gemhead; +#X msg 527 162 device 0; +#X msg 536 193 driver 1; +#X msg 513 108 dialog; +#X msg 518 138 device /dev/dv1394-0; +#X obj 606 481 pix_opencv_bgsubstract; +#X obj 606 449 pix_resize 320 240; +#X text 728 684 number of vertex of the convexhull; +#X floatatom 753 480 5 0 0 0 - - -; +#X obj 543 334 pix_rgba; +#X msg 756 453 set; +#X text 785 453 <- Set the background reference; +#X obj 62 419 cnv 15 300 60 empty empty DEPRECATED!! 100 20 0 18 -233017 +-258113 0; +#X text 74 445 please consider the use of pix_opencv_contours; +#X connect 5 0 1 0; +#X connect 5 1 2 0; +#X connect 5 2 3 0; +#X connect 5 3 4 0; +#X connect 5 4 6 0; +#X connect 5 5 7 0; +#X connect 9 0 17 0; +#X connect 9 1 15 0; +#X connect 9 2 5 0; +#X connect 16 0 30 0; +#X connect 17 0 18 0; +#X connect 20 0 21 0; +#X connect 21 0 20 0; +#X connect 22 0 23 0; +#X connect 24 0 42 0; +#X connect 25 0 28 0; +#X connect 26 0 27 0; +#X connect 27 0 30 1; +#X connect 28 0 29 0; +#X connect 29 0 30 0; +#X connect 30 0 43 1; +#X connect 30 2 26 0; +#X connect 31 0 30 0; +#X connect 32 0 31 0; +#X connect 34 0 30 0; +#X connect 34 0 45 0; +#X connect 35 0 30 0; +#X connect 36 0 30 0; +#X connect 37 0 34 0; +#X connect 37 0 32 0; +#X connect 38 0 24 0; +#X connect 39 0 41 0; +#X connect 40 0 39 0; +#X connect 41 0 22 0; +#X connect 42 0 52 0; +#X connect 43 0 55 0; +#X connect 44 0 43 2; +#X connect 45 0 43 0; +#X connect 46 0 45 0; +#X connect 47 0 45 0; +#X connect 48 0 45 0; +#X connect 49 0 45 0; +#X connect 50 0 45 0; +#X connect 51 0 9 0; +#X connect 52 0 51 0; +#X connect 54 0 51 1; +#X connect 55 0 40 0; +#X connect 55 0 38 0; +#X connect 56 0 51 0; diff --git a/help/pix_opencv_contours_convexity-help.pd b/help/pix_opencv_contours_convexity-help.pd new file mode 100644 index 0000000..350bd73 --- /dev/null +++ b/help/pix_opencv_contours_convexity-help.pd @@ -0,0 +1,191 @@ +#N canvas 227 366 1068 671 10; +#X obj 17 217 cnv 15 430 450 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 17 171 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 26 175 Arguments:; +#X obj 17 76 cnv 15 430 90 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 22 38 Class: pix_opencv; +#X text 23 22 Synopsis: [pix_opencv_calibration]; +#X text 47 195 none; +#X text 26 86 pix_opencv_contours_convexity :: Finds convexity defects +of the bigest contour of a binary image.; +#X text 25 228 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 pix_threshold to obtain a correct input for pix_opencv_contours_boundingrect. +; +#X text 26 281 pix_opencv_contours_boundingrect works detecting the +bigest white area in the input image \, sometimes you will need to +use pix_opencv_morphology to transform the contours of the shape to +be analyzed..; +#X obj 453 6 cnv 15 610 660 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 600 414 cnv 15 455 200 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 609 625 pix_texture; +#X obj 832 240 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 65 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#N canvas 87 154 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 obj 162 241 gemwin; +#X msg 161 188 create \, 1; +#X msg 237 189 destroy; +#X msg 283 161 frame 25; +#X obj 164 126 t b b b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 10 0; +#X connect 2 1 4 0; +#X connect 2 1 8 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 7 0; +#X connect 10 2 9 0; +#X restore 842 284 pd gemwin; +#X msg 842 266 destroy; +#X obj 458 627 pix_texture; +#X obj 458 646 square 2; +#X obj 609 291 separator; +#X obj 647 41 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 704 216 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 686 181 5 0 10000 1 frame# - -; +#X obj 647 70 openpanel; +#X msg 647 90 open \$1; +#X obj 635 199 pix_film; +#X msg 653 133 auto \$1; +#X obj 653 115 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 +1; +#X text 840 246 Create window and render; +#X msg 748 116 colorspace RGBA; +#X msg 758 137 colorspace RGB; +#X msg 772 156 colorspace Grey; +#X obj 748 88 loadbang; +#X obj 609 272 pix_separator; +#X obj 458 294 separator; +#X obj 458 275 pix_separator; +#X obj 458 312 translateXYZ -2 0 0; +#N canvas 1 158 405 225 vswitch 0; +#X obj 36 139 outlet; +#X obj 36 26 inlet; +#X obj 260 29 inlet; +#X obj 305 29 inlet; +#X obj 81 73 == 0; +#X obj 36 93 spigot 1; +#X obj 260 95 spigot 0; +#X connect 1 0 5 0; +#X connect 2 0 6 0; +#X connect 3 0 4 0; +#X connect 3 0 6 1; +#X connect 4 0 5 1; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X restore 458 230 pd vswitch; +#X obj 526 230 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 458 197 pix_video; +#X msg 497 132 device 0; +#X msg 506 153 driver 1; +#X msg 483 93 dialog; +#X msg 488 113 device /dev/dv1394-0; +#X obj 609 368 pix_opencv_bgsubstract; +#X obj 609 329 pix_resize 320 240; +#X floatatom 756 369 5 0 0 0 - - -; +#X obj 609 388 pix_opencv_morphology; +#X floatatom 757 387 5 0 0 0 - - -; +#X obj 609 644 square 2; +#X floatatom 746 588 5 0 0 0 - - -; +#X floatatom 781 588 5 0 0 0 - - -; +#X floatatom 811 569 5 0 0 0 - - -; +#X floatatom 845 569 5 0 0 0 - - -; +#X obj 780 466 route 0 1 2 3 4; +#X obj 780 524 unpack 0 0 0 0 0 0; +#X floatatom 875 550 5 0 0 0 - - -; +#X floatatom 909 550 5 0 0 0 - - -; +#X text 819 589 Start point (X -Y); +#X text 883 569 Depth point (X -Y); +#X text 948 551 End point (X -Y); +#X floatatom 694 441 5 0 0 0 - - -; +#X text 730 445 number convexity defects in our detected contour; +#X text 692 484 A convexity defect is defined by 3 points. So for each +convexity defects we have ::; +#X obj 609 310 translateXYZ 2 0 0; +#X obj 609 421 pix_opencv_contours_convexity; +#X obj 458 251 pix_rgba; +#X msg 623 348 set; +#X text 652 347 <- Set the background reference; +#X text 790 369 <-Adjust threshold; +#X text 796 389 <-Adjust morphology if needed; +#X obj 635 14 gemhead; +#X obj 458 9 gemhead; +#X obj 62 419 cnv 15 300 60 empty empty DEPRECATED!! 100 20 0 18 -233017 +-258113 0; +#X text 74 445 please consider the use of pix_opencv_contours; +#X connect 12 0 48 0; +#X connect 14 0 15 0; +#X connect 15 0 14 0; +#X connect 16 0 17 0; +#X connect 18 0 63 0; +#X connect 19 0 22 0; +#X connect 20 0 21 0; +#X connect 21 0 24 1; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 24 0 36 1; +#X connect 24 2 20 0; +#X connect 25 0 24 0; +#X connect 26 0 25 0; +#X connect 28 0 24 0; +#X connect 28 0 38 0; +#X connect 29 0 24 0; +#X connect 30 0 24 0; +#X connect 31 0 28 0; +#X connect 31 0 26 0; +#X connect 32 0 18 0; +#X connect 33 0 35 0; +#X connect 34 0 33 0; +#X connect 35 0 16 0; +#X connect 36 0 65 0; +#X connect 37 0 36 2; +#X connect 38 0 36 0; +#X connect 39 0 38 0; +#X connect 40 0 38 0; +#X connect 41 0 38 0; +#X connect 42 0 38 0; +#X connect 43 0 46 0; +#X connect 44 0 43 0; +#X connect 45 0 43 1; +#X connect 46 0 64 0; +#X connect 47 0 46 1; +#X connect 53 0 54 0; +#X connect 54 0 49 0; +#X connect 54 1 50 0; +#X connect 54 2 51 0; +#X connect 54 3 52 0; +#X connect 54 4 55 0; +#X connect 54 5 56 0; +#X connect 63 0 44 0; +#X connect 64 0 12 0; +#X connect 64 1 60 0; +#X connect 64 2 53 0; +#X connect 65 0 34 0; +#X connect 65 0 32 0; +#X connect 66 0 43 0; +#X connect 70 0 24 0; +#X connect 71 0 38 0; diff --git a/help/pix_opencv_dft-help.pd b/help/pix_opencv_dft-help.pd new file mode 100644 index 0000000..5e71995 --- /dev/null +++ b/help/pix_opencv_dft-help.pd @@ -0,0 +1,157 @@ +#N canvas 522 300 1067 534 10; +#X obj 6 109 cnv 15 430 320 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 6 63 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 15 67 Arguments:; +#X obj 6 -32 cnv 15 430 90 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 11 -70 Class: pix_opencv; +#X text 12 -86 Synopsis: [pix_opencv_calibration]; +#X text 36 87 none; +#X obj 443 -91 cnv 15 610 520 empty empty empty 20 12 0 14 -228992 +-66577 0; +#X obj 769 -82 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#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; +#N canvas 87 154 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 obj 160 260 gemwin; +#X msg 159 207 create \, 1; +#X msg 235 208 destroy; +#X msg 281 180 frame 25; +#X obj 162 170 t b b b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 10 0; +#X connect 2 1 4 0; +#X connect 2 1 8 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 7 0; +#X connect 10 2 9 0; +#X restore 774 -38 pd gemwin; +#X msg 774 -59 create; +#X text 775 -77 Create window and render; +#X obj 598 236 cnv 15 450 120 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 601 329 pix_opencv_dft; +#X text 18 116 written by yves degoyon ( ydegoyon@gmail.com ); +#X text 16 -7 this can be used for pattern matching; +#X text 18 -24 pix_opencv_dft : discrete fourier transform; +#X msg 616 302 bang; +#X obj 608 242 loadbang; +#X obj 608 279 metro 100; +#X text 678 279 <-- Calculate Discrete Fourier Transform of the pattern +; +#X text 698 303 frame so it is just processed when it receives a bang +; +#X obj 617 -76 gemhead; +#X obj 601 367 pix_texture; +#X obj 601 386 square 2; +#X obj 450 369 pix_texture; +#X obj 450 389 square 2; +#X obj 601 193 separator; +#X obj 629 -49 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 686 126 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 668 91 5 0 10000 1 frame# - -; +#X obj 629 -20 openpanel; +#X msg 629 0 open \$1; +#X obj 617 109 pix_film; +#X msg 635 43 auto \$1; +#X obj 635 25 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X msg 730 26 colorspace RGBA; +#X msg 741 47 colorspace RGB; +#X msg 748 69 colorspace Grey; +#X obj 730 -2 loadbang; +#X obj 601 175 pix_separator; +#X obj 450 194 separator; +#X obj 450 176 pix_separator; +#X obj 450 213 translateXYZ -2 0 0; +#X obj 601 213 translateXYZ 2 0 0; +#N canvas 1 202 234 181 vswitch 0; +#X obj 36 113 outlet; +#X obj 36 26 inlet; +#X obj 100 25 inlet; +#X obj 145 25 inlet; +#X obj 36 83 spigot 1; +#X obj 100 83 spigot 0; +#X obj 81 62 == 0; +#X connect 1 0 4 0; +#X connect 2 0 5 0; +#X connect 3 0 6 0; +#X connect 3 0 5 1; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 6 0 4 1; +#X restore 450 133 pd vswitch; +#X obj 518 133 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 450 107 pix_video; +#X obj 450 -81 gemhead; +#X msg 479 54 device 0; +#X msg 488 73 driver 1; +#X msg 465 16 dialog; +#X msg 470 36 device /dev/dv1394-0; +#X obj 450 154 pix_rgba; +#X text 700 290 pix_opencv_dft is too greedy to be calculayed for every +; +#X obj 608 261 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X connect 9 0 10 0; +#X connect 10 0 9 0; +#X connect 13 0 23 0; +#X connect 17 0 13 0; +#X connect 18 0 55 0; +#X connect 19 0 13 0; +#X connect 22 0 33 0; +#X connect 23 0 24 0; +#X connect 25 0 26 0; +#X connect 27 0 44 0; +#X connect 28 0 31 0; +#X connect 29 0 30 0; +#X connect 30 0 33 1; +#X connect 31 0 32 0; +#X connect 32 0 33 0; +#X connect 33 0 45 1; +#X connect 33 2 29 0; +#X connect 34 0 33 0; +#X connect 35 0 34 0; +#X connect 36 0 33 0; +#X connect 36 0 47 0; +#X connect 37 0 33 0; +#X connect 38 0 33 0; +#X connect 39 0 36 0; +#X connect 39 0 35 0; +#X connect 40 0 27 0; +#X connect 41 0 43 0; +#X connect 42 0 41 0; +#X connect 43 0 25 0; +#X connect 44 0 13 0; +#X connect 45 0 53 0; +#X connect 46 0 45 2; +#X connect 47 0 45 0; +#X connect 48 0 47 0; +#X connect 49 0 47 0; +#X connect 50 0 47 0; +#X connect 51 0 47 0; +#X connect 52 0 47 0; +#X connect 53 0 42 0; +#X connect 53 0 40 0; +#X connect 55 0 19 0; diff --git a/help/pix_opencv_distrans-help.pd b/help/pix_opencv_distrans-help.pd new file mode 100644 index 0000000..2068f6f --- /dev/null +++ b/help/pix_opencv_distrans-help.pd @@ -0,0 +1,162 @@ +#N canvas 553 329 1017 532 10; +#X obj 3 62 cnv 15 430 320 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 3 16 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 12 20 Arguments:; +#X obj 3 -79 cnv 15 430 90 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 8 -117 Class: pix_opencv; +#X text 34 33 none; +#X obj 445 -137 cnv 15 560 520 empty empty empty 20 12 0 14 -228992 +-66577 0; +#X obj 596 197 cnv 15 400 130 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 602 300 pix_opencv_distrans; +#X msg 672 207 voronoi \$1; +#X obj 763 207 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 782 207 switch Voronoi diagram mode on/off; +#X text 731 233 use 3x3 mask; +#X text 741 252 use 5x5 mask; +#X text 747 271 use precise distance transform; +#X text 802 298 edge threshold; +#X msg 694 271 mask 0; +#X msg 684 252 mask 5; +#X msg 674 232 mask 3; +#X text 11 68 it's a morphology filter that can be used to preprocess +video frames; +#X text 12 93 written by lluis gomez i bigorda ( lluisgomez@hangar.org +); +#X text 9 -75 pix_opencv_distrans : distance processing; +#X floatatom 755 298 5 0 0 0 - - -; +#X obj 204 302 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#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; +#N canvas 87 154 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 obj 160 260 gemwin; +#X msg 159 207 create \, 1; +#X msg 235 208 destroy; +#X msg 281 180 frame 25; +#X obj 162 170 t b b b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 10 0; +#X connect 2 1 4 0; +#X connect 2 1 8 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 7 0; +#X connect 10 2 9 0; +#X restore 209 346 pd gemwin; +#X msg 209 325 create; +#X text 210 307 Create window and render; +#X obj 687 -125 gemhead; +#X obj 602 329 pix_texture; +#X obj 602 350 square 2; +#X obj 450 329 pix_texture; +#X obj 450 350 square 2; +#X obj 602 155 separator; +#X obj 699 -98 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 756 77 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 738 42 5 0 10000 1 frame# - -; +#X obj 699 -69 openpanel; +#X msg 699 -49 open \$1; +#X obj 687 60 pix_film; +#X msg 705 -6 auto \$1; +#X obj 705 -24 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X msg 800 -23 colorspace RGBA; +#X msg 808 -4 colorspace RGB; +#X msg 820 15 colorspace Grey; +#X obj 800 -51 loadbang; +#X obj 602 136 pix_separator; +#X obj 450 155 separator; +#X obj 450 136 pix_separator; +#X obj 450 173 translateXYZ -2 0 0; +#X obj 602 174 translateXYZ 2 0 0; +#N canvas 1 83 450 300 vswitch 0; +#X obj 36 124 outlet; +#X obj 36 26 inlet; +#X obj 130 29 inlet; +#X obj 175 28 inlet; +#X obj 81 73 == 0; +#X obj 36 93 spigot 1; +#X obj 130 96 spigot 0; +#X connect 1 0 5 0; +#X connect 2 0 6 0; +#X connect 3 0 4 0; +#X connect 3 0 6 1; +#X connect 4 0 5 1; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X restore 450 94 pd vswitch; +#X obj 518 94 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X obj 450 58 pix_video; +#X obj 450 -130 gemhead; +#X msg 489 -5 device 0; +#X msg 498 14 driver 1; +#X msg 475 -44 dialog; +#X msg 480 -24 device /dev/dv1394-0; +#X obj 450 115 pix_rgba; +#X text 9 -133 Synopsis: [pix_opencv_distrans<]; +#X connect 8 0 28 0; +#X connect 9 0 8 0; +#X connect 10 0 9 0; +#X connect 16 0 8 0; +#X connect 17 0 8 0; +#X connect 18 0 8 0; +#X connect 22 0 8 1; +#X connect 24 0 25 0; +#X connect 25 0 24 0; +#X connect 27 0 38 0; +#X connect 28 0 29 0; +#X connect 30 0 31 0; +#X connect 32 0 49 0; +#X connect 33 0 36 0; +#X connect 34 0 35 0; +#X connect 35 0 38 1; +#X connect 36 0 37 0; +#X connect 37 0 38 0; +#X connect 38 0 50 1; +#X connect 38 2 34 0; +#X connect 39 0 38 0; +#X connect 40 0 39 0; +#X connect 41 0 38 0; +#X connect 41 0 52 0; +#X connect 42 0 38 0; +#X connect 43 0 38 0; +#X connect 44 0 41 0; +#X connect 44 0 40 0; +#X connect 45 0 32 0; +#X connect 46 0 48 0; +#X connect 47 0 46 0; +#X connect 48 0 30 0; +#X connect 49 0 8 0; +#X connect 50 0 58 0; +#X connect 51 0 50 2; +#X connect 52 0 50 0; +#X connect 53 0 52 0; +#X connect 54 0 52 0; +#X connect 55 0 52 0; +#X connect 56 0 52 0; +#X connect 57 0 52 0; +#X connect 58 0 47 0; +#X connect 58 0 45 0; diff --git a/help/pix_opencv_edge-help.pd b/help/pix_opencv_edge-help.pd new file mode 100644 index 0000000..ae7f578 --- /dev/null +++ b/help/pix_opencv_edge-help.pd @@ -0,0 +1,144 @@ +#N canvas 663 231 914 465 10; +#X obj 8 158 cnv 15 430 250 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 8 112 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 116 Arguments:; +#X obj 7 16 cnv 15 430 90 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 38 136 none; +#X obj 444 -41 cnv 15 460 450 empty empty empty 20 12 0 14 -228992 +-66577 0; +#X obj 597 324 cnv 15 300 40 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 604 330 pix_opencv_edge; +#X floatatom 733 329 5 0 0 0 - - -, f 5; +#X text 776 328 edge threshold; +#X text 23 165 written by lluis gomez i bigorda ( lluisgomez@hangar.org +); +#X obj 209 334 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 50 454 304 gemwin 0; +#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; +#N canvas 87 154 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 obj 160 260 gemwin; +#X msg 159 207 create \, 1; +#X msg 235 208 destroy; +#X msg 281 180 frame 25; +#X obj 162 170 t b b b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 10 0; +#X connect 2 1 4 0; +#X connect 2 1 8 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 7 0; +#X connect 10 2 9 0; +#X restore 214 378 pd gemwin; +#X msg 214 357 destroy; +#X text 215 339 Create window and render; +#X obj 620 -28 gemhead; +#X obj 604 367 pix_texture; +#X obj 604 385 square 2; +#X obj 453 367 pix_texture; +#X obj 453 385 square 2; +#X obj 604 279 separator; +#X obj 632 -1 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 689 174 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 671 139 5 0 10000 1 frame# - -, f 5; +#X obj 632 28 openpanel; +#X msg 632 48 open \$1; +#X obj 620 157 pix_film; +#X msg 638 91 auto \$1; +#X obj 638 73 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X msg 733 74 colorspace RGBA; +#X msg 741 93 colorspace RGB; +#X msg 753 113 colorspace Grey; +#X obj 733 46 loadbang; +#X obj 604 260 pix_separator; +#X obj 453 279 separator; +#X obj 453 260 pix_separator; +#X obj 453 299 translateXYZ -2 0 0; +#X obj 604 299 translateXYZ 2 0 0; +#N canvas 1 83 450 300 vswitch 0; +#X obj 36 117 outlet; +#X obj 36 26 inlet; +#X obj 140 29 inlet; +#X obj 185 28 inlet; +#X obj 81 60 == 0; +#X obj 36 81 spigot 1; +#X obj 140 85 spigot 0; +#X connect 1 0 5 0; +#X connect 2 0 6 0; +#X connect 3 0 4 0; +#X connect 3 0 6 1; +#X connect 4 0 5 1; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X restore 453 207 pd vswitch; +#X obj 521 207 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 453 155 pix_video; +#X obj 453 -33 gemhead; +#X msg 492 80 device 0; +#X msg 478 26 dialog; +#X msg 483 56 device /dev/dv1394-0; +#X obj 453 230 pix_grey; +#X text 16 -4 pix_opencv_edge; +#X text 15 20 edge detection filter; +#X msg 501 111 driver 0; +#X connect 7 0 16 0; +#X connect 8 0 7 1; +#X connect 12 0 13 0; +#X connect 13 0 12 0; +#X connect 15 0 26 0; +#X connect 16 0 17 0; +#X connect 18 0 19 0; +#X connect 20 0 37 0; +#X connect 21 0 24 0; +#X connect 22 0 23 0; +#X connect 23 0 26 1; +#X connect 24 0 25 0; +#X connect 25 0 26 0; +#X connect 26 0 38 1; +#X connect 26 2 22 0; +#X connect 27 0 26 0; +#X connect 28 0 27 0; +#X connect 29 0 26 0; +#X connect 29 0 40 0; +#X connect 30 0 26 0; +#X connect 31 0 26 0; +#X connect 32 0 29 0; +#X connect 32 0 28 0; +#X connect 33 0 20 0; +#X connect 34 0 36 0; +#X connect 35 0 34 0; +#X connect 36 0 18 0; +#X connect 37 0 7 0; +#X connect 38 0 45 0; +#X connect 39 0 38 2; +#X connect 40 0 38 0; +#X connect 41 0 40 0; +#X connect 42 0 40 0; +#X connect 43 0 40 0; +#X connect 44 0 40 0; +#X connect 45 0 35 0; +#X connect 45 0 33 0; +#X connect 48 0 40 0; diff --git a/help/pix_opencv_facetracker-help.pd b/help/pix_opencv_facetracker-help.pd new file mode 100644 index 0000000..1810aae --- /dev/null +++ b/help/pix_opencv_facetracker-help.pd @@ -0,0 +1,415 @@ +#N canvas 478 34 785 700 10; +#X obj 473 46 cnv 15 300 500 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 12 67 cnv 15 450 200 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 12 318 cnv 15 450 380 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 14 326 Inlets:; +#X obj 12 278 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 21 277 Arguments:; +#X text 13 497 Outlets:; +#X text 479 31 Example:; +#X text 59 32 Class: pix_opencv; +#X text 67 287 none; +#X obj 354 536 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 1 162 450 300 gemwin 0; +#X obj 132 156 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 198 112 destroy; +#X msg 132 132 reset \, dimen 640 480 \, offset 10 640 \, create \, +1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 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 359 575 pd gemwin; +#X msg 359 556 destroy; +#X text 355 535 Create window:; +#X text 26 508 Outlet 1: gemlist output; +#X text 17 730 bug \, feedback \, comment... on the pd-list; +#X obj 477 114 cnv 15 280 160 empty empty empty 20 12 0 14 -4034 -66577 +0; +#X obj 488 58 gemhead 1; +#X obj 488 291 pix_texture; +#X msg 500 190 reset; +#X obj 488 88 pix_video; +#X text 31 340 Inlet 1: gemlist input; +#X text 38 16 Synopsis: [pix_opencv_facetracker]; +#X text 12 71 Description: finds face; +#X text 39 87 [pix_opencv_facetracker] uses the FaceTracker library +by Jason Saragih and Kyle Macdonald to track face features.; +#X text 27 710 by antoine villeret - 2013; +#X msg 548 190 show \$1; +#X obj 548 171 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 31 355 Inlet 1: message reset : reset the tracker; +#X text 31 370 Inlet 1: message show : draw tracking data on image +; +#X msg 604 190 tolerance \$1; +#X floatatom 604 173 5 0 0 0 - - -; +#X floatatom 688 173 5 0 0 0 - - -; +#X msg 688 190 clamp \$1; +#X msg 576 142 filter \$1; +#X floatatom 576 125 5 0 0 0 - - -; +#X text 31 443 Inlet 1: message filter : Maximum number of optimization +steps to perform. default 5; +#X text 31 413 Inlet 1: message clamp : shape model parameters clamping +factor (in standard dev's). default 3; +#X text 31 385 Inlet 1: message tolerance : convergence tolerance of +optimization. default 0.01; +#N canvas 1373 557 410 415 draw_contour_gemvertexbuffer 0; +#N canvas 1 100 548 451 mouse 0; +#X obj 25 145 translateXYZ -0.5 -0.5 0; +#X obj 25 122 scaleXYZ 10.6666 -8 1; +#X obj 25 97 alpha 0; +#X obj 25 71 gemhead 10000; +#X obj 25 52 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X obj 221 203 route float; +#X obj 221 225 sel 1; +#X obj 221 182 route gem_state; +#X msg 44 191 position MOUTH; +#X obj 25 167 t a b b; +#X obj 25 375 gemvertexbuffer 200; +#X msg 81 253 draw lineloop \, colorG colorR \, colorA colorA \, draw_range +0 12; +#X connect 0 0 9 0; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X connect 3 0 7 0; +#X connect 4 0 3 0; +#X connect 5 0 6 0; +#X connect 6 0 11 0; +#X connect 7 0 5 0; +#X connect 8 0 10 0; +#X connect 9 0 10 0; +#X connect 9 1 8 0; +#X connect 11 0 10 0; +#X restore 38 28 pd mouse; +#N canvas 1 95 631 351 jaw 0; +#X obj 128 124 translateXYZ -0.5 -0.5 0; +#X obj 128 101 scaleXYZ 10.6666 -8 1; +#X obj 128 76 alpha 0; +#X obj 128 40 gemhead 10000; +#X obj 128 146 t a b b; +#X obj 128 21 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 156 170 position JAW; +#X obj 128 304 gemvertexbuffer 200; +#X obj 264 182 route float; +#X obj 264 204 sel 1; +#X obj 264 161 route gem_state; +#X msg 168 252 draw linestrip \, colorG colorR \, colorA colorA \, +draw_range 0 17; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X connect 3 0 10 0; +#X connect 4 0 7 0; +#X connect 4 1 6 0; +#X connect 5 0 3 0; +#X connect 6 0 7 0; +#X connect 8 0 9 0; +#X connect 9 0 11 0; +#X connect 10 0 8 0; +#X connect 11 0 7 0; +#X restore 38 78 pd jaw; +#N canvas 1 110 631 351 left_eye 0; +#X obj 128 124 translateXYZ -0.5 -0.5 0; +#X obj 128 101 scaleXYZ 10.6666 -8 1; +#X obj 128 76 alpha 0; +#X obj 128 40 gemhead 10000; +#X obj 128 146 t a b b; +#X obj 128 21 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 128 304 gemvertexbuffer 200; +#X obj 280 182 route float; +#X obj 280 204 sel 1; +#X obj 280 161 route gem_state; +#X msg 156 170 position LEFT_EYE; +#X msg 168 252 draw lineloop \, colorG colorR \, colorA colorA \, draw_range +0 6; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X connect 3 0 9 0; +#X connect 4 0 6 0; +#X connect 4 1 10 0; +#X connect 5 0 3 0; +#X connect 7 0 8 0; +#X connect 8 0 11 0; +#X connect 9 0 7 0; +#X connect 10 0 6 0; +#X connect 11 0 6 0; +#X restore 38 98 pd left_eye; +#N canvas 1 115 631 351 right_eye 0; +#X obj 128 124 translateXYZ -0.5 -0.5 0; +#X obj 128 101 scaleXYZ 10.6666 -8 1; +#X obj 128 76 alpha 0; +#X obj 128 40 gemhead 10000; +#X obj 128 146 t a b b; +#X obj 128 21 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 128 304 gemvertexbuffer 200; +#X obj 280 182 route float; +#X obj 280 204 sel 1; +#X obj 280 161 route gem_state; +#X msg 156 170 position RIGHT_EYE; +#X msg 168 252 draw lineloop \, colorG colorR \, colorA colorA \, draw_range +0 6; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X connect 3 0 9 0; +#X connect 4 0 6 0; +#X connect 4 1 10 0; +#X connect 5 0 3 0; +#X connect 7 0 8 0; +#X connect 8 0 11 0; +#X connect 9 0 7 0; +#X connect 10 0 6 0; +#X connect 11 0 6 0; +#X restore 38 118 pd right_eye; +#N canvas 352 670 631 351 right_eyebrow 0; +#X obj 128 124 translateXYZ -0.5 -0.5 0; +#X obj 128 101 scaleXYZ 10.6666 -8 1; +#X obj 128 76 alpha 0; +#X obj 128 40 gemhead 10000; +#X obj 128 146 t a b b; +#X obj 128 21 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 128 304 gemvertexbuffer 200; +#X obj 318 176 route float; +#X obj 318 198 sel 1; +#X obj 318 155 route gem_state; +#X msg 156 170 position RIGHT_EYEBROW; +#X msg 168 252 draw linestrip \, colorG colorR \, colorA colorA \, +draw_range 0 5; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X connect 3 0 9 0; +#X connect 4 0 6 0; +#X connect 4 1 10 0; +#X connect 5 0 3 0; +#X connect 7 0 8 0; +#X connect 8 0 11 0; +#X connect 9 0 7 0; +#X connect 10 0 6 0; +#X connect 11 0 6 0; +#X restore 38 138 pd right_eyebrow; +#N canvas 596 689 631 351 right_eyebrow 0; +#X obj 128 124 translateXYZ -0.5 -0.5 0; +#X obj 128 101 scaleXYZ 10.6666 -8 1; +#X obj 128 76 alpha 0; +#X obj 128 40 gemhead 10000; +#X obj 128 146 t a b b; +#X obj 128 21 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 128 304 gemvertexbuffer 200; +#X obj 318 176 route float; +#X obj 318 198 sel 1; +#X obj 318 155 route gem_state; +#X msg 156 170 position LEFT_EYEBROW; +#X msg 168 252 draw linestrip \, colorG colorR \, colorA colorA \, +draw_range 0 5; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X connect 3 0 9 0; +#X connect 4 0 6 0; +#X connect 4 1 10 0; +#X connect 5 0 3 0; +#X connect 7 0 8 0; +#X connect 8 0 11 0; +#X connect 9 0 7 0; +#X connect 10 0 6 0; +#X connect 11 0 6 0; +#X restore 38 158 pd right_eyebrow; +#N canvas 592 699 631 351 nose_base 0; +#X obj 128 124 translateXYZ -0.5 -0.5 0; +#X obj 128 101 scaleXYZ 10.6666 -8 1; +#X obj 128 76 alpha 0; +#X obj 128 40 gemhead 10000; +#X obj 128 146 t a b b; +#X obj 128 21 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 128 304 gemvertexbuffer 200; +#X obj 318 176 route float; +#X obj 318 198 sel 1; +#X obj 318 155 route gem_state; +#X msg 156 170 position NOSE_BASE; +#X msg 168 252 draw linestrip \, colorG colorR \, colorA colorA \, +draw_range 0 5; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X connect 3 0 9 0; +#X connect 4 0 6 0; +#X connect 4 1 10 0; +#X connect 5 0 3 0; +#X connect 7 0 8 0; +#X connect 8 0 11 0; +#X connect 9 0 7 0; +#X connect 10 0 6 0; +#X connect 11 0 6 0; +#X restore 38 178 pd nose_base; +#N canvas 592 699 631 351 nose_bridge 0; +#X obj 128 124 translateXYZ -0.5 -0.5 0; +#X obj 128 101 scaleXYZ 10.6666 -8 1; +#X obj 128 76 alpha 0; +#X obj 128 40 gemhead 10000; +#X obj 128 146 t a b b; +#X obj 128 21 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 128 304 gemvertexbuffer 200; +#X obj 318 176 route float; +#X obj 318 198 sel 1; +#X obj 318 155 route gem_state; +#X msg 156 170 position NOSE_BRIDGE; +#X msg 168 252 draw linestrip \, colorG colorR \, colorA colorA \, +draw_range 0 4; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X connect 3 0 9 0; +#X connect 4 0 6 0; +#X connect 4 1 10 0; +#X connect 5 0 3 0; +#X connect 7 0 8 0; +#X connect 8 0 11 0; +#X connect 9 0 7 0; +#X connect 10 0 6 0; +#X connect 11 0 6 0; +#X restore 38 198 pd nose_bridge; +#N canvas 980 217 548 451 inner_mouse 0; +#X obj 25 145 translateXYZ -0.5 -0.5 0; +#X obj 25 122 scaleXYZ 10.6666 -8 1; +#X obj 25 97 alpha 0; +#X obj 25 71 gemhead 10000; +#X obj 25 52 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X obj 221 203 route float; +#X obj 221 225 sel 1; +#X obj 221 182 route gem_state; +#X obj 25 167 t a b b; +#X obj 25 375 gemvertexbuffer 200; +#X msg 45 191 position INNER_MOUTH; +#X floatatom 157 77 5 0 0 0 - - -; +#X msg 81 253 draw lineloop \, colorG colorR \, colorA colorA \, draw_range +0 8; +#X connect 0 0 8 0; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X connect 3 0 7 0; +#X connect 4 0 3 0; +#X connect 5 0 6 0; +#X connect 6 0 12 0; +#X connect 7 0 5 0; +#X connect 8 0 9 0; +#X connect 8 1 10 0; +#X connect 10 0 9 0; +#X connect 11 0 1 1; +#X connect 12 0 9 0; +#X restore 38 48 pd inner_mouse; +#X restore 490 366 pd draw_contour_gemvertexbuffer; +#X obj 488 313 rectangle 5.3333 4; +#N canvas 1 205 450 300 settab 0; +#X obj 60 76 loadbang; +#X obj 60 224 outlet; +#X msg 73 178 settab OUTER_MOUTH MOUTH; +#X msg 60 96 settab LEFT_EYE LEFT_EYE \, settab RIGHT_EYE RIGHT_EYE +\, settab OUTER_MOUTH MOUTH \, settab JAW JAW \, settab NOSE_BRIDGE +NOSE_BRIDGE \, settab NOSE_BASE NOSE_BASE \, settab INNER_MOUTH INNER_MOUTH +\, settab RIGHT_EYEBROW RIGHT_EYEBROW \, settab LEFT_EYEBROW LEFT_EYEBROW +; +#X connect 0 0 3 0; +#X connect 2 0 1 0; +#X connect 3 0 1 0; +#X restore 501 150 pd settab; +#N canvas 118 701 450 349 fill_tables 0; +#X obj 196 84 until; +#X obj 196 106 f; +#X obj 221 106 + 1; +#X obj 196 20 loadbang; +#X obj 196 148 t b f; +#X obj 196 200 tabwrite colorR; +#X obj 186 220 tabwrite colorA; +#X msg 196 170 1; +#X obj 196 40 t b b; +#X msg 250 67 0; +#X obj 177 21 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X msg 196 63 200; +#X obj -111 45 table LEFT_EYE 100; +#X obj -111 65 table RIGHT_EYE 100; +#X obj -111 85 table MOUTH 100; +#X obj -111 145 table JAW 100; +#X obj -111 165 table NOSE_BRIDGE 100; +#X obj -111 105 table INNER_MOUTH 100; +#X obj -111 185 table NOSE_BASE 100; +#X obj -111 205 table FACE_OUTLINE 100; +#X obj -111 264 table colorR 100; +#X obj -110 285 table colorA 100; +#X obj -111 5 table LEFT_EYEBROW 100; +#X obj -111 25 table RIGHT_EYEBROW 100; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 0 4 0; +#X connect 2 0 1 1; +#X connect 3 0 8 0; +#X connect 4 0 7 0; +#X connect 4 1 5 1; +#X connect 4 1 6 1; +#X connect 7 0 5 0; +#X connect 7 0 6 0; +#X connect 8 0 11 0; +#X connect 8 1 9 0; +#X connect 9 0 1 1; +#X connect 10 0 8 0; +#X connect 11 0 0 0; +#X restore 490 386 pd fill_tables; +#X obj 488 219 pix_opencv_facetracker; +#X text 27 137 supported features : LEFT_EYEBROW \, RIGHT_EYEBROW \, +LEFT_EYE \, RIGHT_EYE \, LEFT_JAW \, RIGHT_JAW \, JAW \, OUTER_MOUTH +\, INNER_MOUTH \, NOSE_BRIDGE \, NOSE_BASE \, FACE_OUTLINE \, ALL_FEATURES +; +#X obj 488 119 pix_rgba; +#X connect 11 0 12 0; +#X connect 12 0 11 0; +#X connect 17 0 20 0; +#X connect 18 0 40 0; +#X connect 19 0 43 0; +#X connect 20 0 45 0; +#X connect 26 0 43 0; +#X connect 27 0 26 0; +#X connect 30 0 43 0; +#X connect 31 0 30 0; +#X connect 32 0 33 0; +#X connect 33 0 43 0; +#X connect 34 0 43 0; +#X connect 35 0 34 0; +#X connect 41 0 43 0; +#X connect 43 0 18 0; +#X connect 45 0 43 0; diff --git a/help/pix_opencv_findchessboardcorners-help.pd b/help/pix_opencv_findchessboardcorners-help.pd new file mode 100644 index 0000000..40bc6f1 --- /dev/null +++ b/help/pix_opencv_findchessboardcorners-help.pd @@ -0,0 +1,185 @@ +#N canvas 259 316 996 571 10; +#X obj -64 52 cnv 15 430 350 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj -64 6 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text -55 10 Arguments:; +#X obj -65 -90 cnv 15 430 90 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text -34 26 none; +#X obj 372 -157 cnv 15 540 560 empty empty empty 20 12 0 14 -228992 +-66577 0; +#X obj 525 238 cnv 15 380 120 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 530 -150 gemhead; +#X obj 531 365 pix_texture; +#X obj 685 161 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 65 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#N canvas 87 154 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 obj 162 241 gemwin; +#X msg 161 188 create \, 1; +#X msg 237 189 destroy; +#X msg 283 161 frame 25; +#X obj 164 126 t b b b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 10 0; +#X connect 2 1 4 0; +#X connect 2 1 8 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 7 0; +#X connect 10 2 9 0; +#X restore 695 205 pd gemwin; +#X msg 695 187 destroy; +#X obj 379 365 pix_texture; +#X obj 531 196 separator; +#X obj 542 -131 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 599 44 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 581 9 5 0 10000 1 frame# - -; +#X obj 542 -102 openpanel; +#X msg 542 -82 open \$1; +#X obj 530 27 pix_film; +#X msg 548 -39 auto \$1; +#X obj 548 -57 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X text 693 167 Create window and render; +#X msg 605 -39 colorspace RGBA; +#X msg 612 -16 colorspace Grey; +#X obj 605 -79 loadbang; +#X obj 531 178 pix_separator; +#X obj 379 196 separator; +#X obj 379 177 pix_separator; +#X obj 379 214 translateXYZ -2 0 0; +#X obj 531 214 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 379 67 pd vswitch; +#X obj 456 67 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X obj 379 -150 gemhead; +#X msg 413 -80 device 0; +#X msg 404 -104 dialog; +#X obj 379 25 pix_video; +#X obj 379 386 square 2; +#X obj 531 387 square 2; +#X obj 531 331 pix_opencv_findchessboardcorners; +#X text -57 -82 pix_opencv_findchessboardcorners :: Search inner corners +coordinates of a known chessboard pattern; +#X text -55 61 It is useful to calibration severals cameras togehter +or camera(s) and video beamer(s)...; +#X obj 379 149 pix_gray; +#X msg 427 -29 driver 0; +#X obj 720 383 print; +#X obj 449 130 spigot; +#X obj 449 149 pix_rgba; +#X obj 379 130 spigot 1; +#X obj 482 108 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 499 108 switch gray/color; +#X text 683 363 print out raw corners coordinates...; +#X obj 545 267 pack 6 7; +#X floatatom 545 247 5 0 0 0 - - -; +#X floatatom 598 247 5 0 0 0 - - -; +#X msg 423 -54 device /dev/video0; +#X msg 545 287 patternSize \$1 \$2; +#X text 555 307 pattern size (number of inner corners in each direction) +; +#X obj 424 109 == 0; +#X obj 379 86 pix_resize 640 480; +#X obj 456 45 loadbang; +#X text -58 -110 pix_opencv_findchessboardcorners :; +#X connect 7 0 19 0; +#X connect 8 0 38 0; +#X connect 10 0 11 0; +#X connect 11 0 10 0; +#X connect 12 0 37 0; +#X connect 13 0 30 0; +#X connect 14 0 17 0; +#X connect 15 0 16 0; +#X connect 16 0 19 1; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 19 0 31 1; +#X connect 19 2 15 0; +#X connect 20 0 19 0; +#X connect 21 0 20 0; +#X connect 23 0 19 0; +#X connect 23 0 36 0; +#X connect 24 0 19 0; +#X connect 25 0 23 0; +#X connect 25 0 21 0; +#X connect 26 0 13 0; +#X connect 27 0 29 0; +#X connect 28 0 27 0; +#X connect 29 0 12 0; +#X connect 30 0 39 0; +#X connect 31 0 58 0; +#X connect 32 0 31 2; +#X connect 33 0 36 0; +#X connect 34 0 36 0; +#X connect 35 0 36 0; +#X connect 36 0 31 0; +#X connect 39 0 8 0; +#X connect 39 1 44 0; +#X connect 42 0 28 0; +#X connect 42 0 26 0; +#X connect 43 0 36 0; +#X connect 45 0 46 0; +#X connect 46 0 26 0; +#X connect 46 0 28 0; +#X connect 47 0 42 0; +#X connect 48 0 45 1; +#X connect 48 0 57 0; +#X connect 51 0 55 0; +#X connect 52 0 51 0; +#X connect 53 0 51 1; +#X connect 54 0 36 0; +#X connect 55 0 39 0; +#X connect 57 0 47 1; +#X connect 58 0 47 0; +#X connect 58 0 45 0; +#X connect 59 0 32 0; diff --git a/help/pix_opencv_floodfill-help.pd b/help/pix_opencv_floodfill-help.pd new file mode 100644 index 0000000..4655918 --- /dev/null +++ b/help/pix_opencv_floodfill-help.pd @@ -0,0 +1,209 @@ +#N canvas 194 115 986 717 10; +#X obj -177 159 cnv 15 430 520 empty empty empty 20 12 0 14 -233017 +-66577 0; +#X obj -177 113 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 +-66577 0; +#X text -168 117 Arguments:; +#X obj -177 18 cnv 15 430 90 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text -147 137 none; +#X obj 260 -34 cnv 15 520 710 empty empty empty 20 12 0 14 -228992 +-66577 0; +#X obj 30 604 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#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; +#N canvas 87 154 247 179 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 268 69 pd Gem.init; +#X obj 162 241 gemwin; +#X msg 161 188 create \, 1; +#X msg 237 189 destroy; +#X msg 188 161 dimen 320 240; +#X obj 164 126 t b b b; +#X msg 279 161 frame 25; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 10 0; +#X connect 2 1 4 0; +#X connect 2 1 8 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 7 0; +#X connect 10 1 9 0; +#X connect 10 2 11 0; +#X connect 11 0 6 0; +#X restore 37 650 pd gemwin; +#X msg 38 628 create; +#X text 38 607 Create window and render; +#X obj 268 273 cnv 15 500 350 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 275 516 pix_opencv_floodfill; +#X text -170 172 used in tracking algorithms as an object selector +; +#X text -172 201 and Yves Degoyon ( ydegoyon@gmail.com ); +#X text -175 23 pdp_opencv_floodfill : mark image components with a +specific color; +#X text -170 187 Written by Lluis Gomez i Bigorda ( lluisgomez@hangar.org +); +#X floatatom 366 468 5 0 0 0 - - -; +#X floatatom 374 489 5 0 0 0 - - -; +#X msg 310 299 mark \$1 \$2; +#X msg 357 448 color \$1; +#X obj 419 449 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 445 447 activate color mode ( default : on ); +#X msg 341 374 fillcolor 1 255 0 123; +#X text 479 375 fillcolor of nth component ( 1 < n < 10 ); +#X msg 325 327 delete 1; +#X msg 339 349 clear; +#X text 385 327 delete a component ( 1 <= index <= 10 ); +#X text 388 349 delete all components; +#X text 439 410 set connectivity ( default 4 ); +#X text 408 468 lower tolerance ( default 20 ); +#X text 414 488 upper tolerance ( default 20 ); +#X obj 392 544 route 0 1 2 3 4 5 6 7 8 9; +#X floatatom 392 587 5 0 0 0 - - -; +#X floatatom 428 588 5 0 0 0 - - -; +#X floatatom 464 588 5 0 0 0 - - -; +#X floatatom 500 588 5 0 0 0 - - -; +#X obj 392 565 unpack f f f f; +#X text 394 604 X; +#X text 431 604 Y; +#X text 463 605 Width; +#X text 501 605 Height; +#X text 551 545 detected components; +#X msg 345 399 connectivity 4; +#X msg 347 422 connectivity 8; +#X obj 513 -1 gemhead; +#X obj 275 628 pix_texture; +#X obj 525 26 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 582 201 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 564 166 5 0 10000 1 frame# - -; +#X obj 525 55 openpanel; +#X msg 525 75 open \$1; +#X obj 513 184 pix_film; +#X msg 531 118 auto \$1; +#X obj 531 100 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X msg 626 101 colorspace RGBA; +#X msg 637 121 colorspace RGB; +#X msg 650 140 colorspace Grey; +#X obj 626 73 loadbang; +#N canvas 2 83 450 300 vswitch 0; +#X obj 36 131 outlet; +#X obj 36 26 inlet; +#X obj 130 26 inlet; +#X obj 175 26 inlet; +#X obj 81 73 == 0; +#X obj 36 93 spigot 1; +#X obj 130 95 spigot 0; +#X connect 1 0 5 0; +#X connect 2 0 6 0; +#X connect 3 0 4 0; +#X connect 3 0 6 1; +#X connect 4 0 5 1; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X restore 276 214 pd vswitch; +#X obj 344 214 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 276 182 pix_video; +#X obj 276 -6 gemhead; +#X msg 315 107 device 0; +#X msg 324 138 driver 1; +#X msg 301 53 dialog; +#X msg 306 83 device /dev/dv1394-0; +#X obj 275 647 rectangle 5.3 4; +#X text 384 299 mark x y : mark a component; +#X obj 276 252 pix_resize 320 240; +#X obj 276 233 pix_rgba; +#N canvas 1 83 450 300 gemmouse 0; +#X obj 74 28 gemmouse; +#X obj 130 135 f; +#X obj 100 134 f; +#X obj 144 106 t b b; +#X obj 100 162 pack f f; +#X obj 120 56 route 1; +#X msg 141 81 bang; +#X floatatom 22 69 5 0 0 0 - - -; +#X floatatom 70 68 5 0 0 0 - - -; +#X obj 100 185 outlet; +#X connect 0 0 7 0; +#X connect 0 0 2 1; +#X connect 0 1 8 0; +#X connect 0 1 1 1; +#X connect 0 2 5 0; +#X connect 1 0 4 1; +#X connect 2 0 4 0; +#X connect 3 0 2 0; +#X connect 3 1 1 0; +#X connect 4 0 9 0; +#X connect 5 0 6 0; +#X connect 6 0 3 0; +#X restore 310 279 pd gemmouse; +#X connect 7 0 8 0; +#X connect 8 0 7 0; +#X connect 11 0 45 0; +#X connect 11 1 31 0; +#X connect 16 0 11 1; +#X connect 17 0 11 2; +#X connect 18 0 11 0; +#X connect 19 0 11 0; +#X connect 20 0 19 0; +#X connect 22 0 11 0; +#X connect 24 0 11 0; +#X connect 25 0 11 0; +#X connect 31 0 36 0; +#X connect 36 0 32 0; +#X connect 36 1 33 0; +#X connect 36 2 34 0; +#X connect 36 3 35 0; +#X connect 42 0 11 0; +#X connect 43 0 11 0; +#X connect 44 0 51 0; +#X connect 45 0 66 0; +#X connect 46 0 49 0; +#X connect 47 0 48 0; +#X connect 48 0 51 1; +#X connect 49 0 50 0; +#X connect 50 0 51 0; +#X connect 51 0 58 1; +#X connect 51 2 47 0; +#X connect 52 0 51 0; +#X connect 53 0 52 0; +#X connect 54 0 51 0; +#X connect 54 0 60 0; +#X connect 55 0 51 0; +#X connect 56 0 51 0; +#X connect 57 0 54 0; +#X connect 57 0 53 0; +#X connect 58 0 69 0; +#X connect 59 0 58 2; +#X connect 60 0 58 0; +#X connect 61 0 60 0; +#X connect 62 0 60 0; +#X connect 63 0 60 0; +#X connect 64 0 60 0; +#X connect 65 0 60 0; +#X connect 68 0 11 0; +#X connect 69 0 68 0; +#X connect 70 0 18 0; diff --git a/help/pix_opencv_haarcascade-help.pd b/help/pix_opencv_haarcascade-help.pd new file mode 100644 index 0000000..43f62cc --- /dev/null +++ b/help/pix_opencv_haarcascade-help.pd @@ -0,0 +1,204 @@ +#N canvas 428 140 1265 709 10; +#X obj 5 12 cnv 15 430 500 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 5 -34 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 14 -30 Arguments:; +#X obj 5 -129 cnv 15 430 90 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 35 -10 none; +#X obj 441 -187 cnv 15 810 700 empty empty empty 20 12 0 14 -228992 +-66577 0; +#X obj 595 165 cnv 15 650 300 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X floatatom 727 448 5 0 0 0 - - -; +#X floatatom 762 448 5 0 0 0 - - -; +#X floatatom 799 448 5 0 0 0 - - -; +#X obj 598 370 pix_opencv_haarcascade; +#X obj 684 169 openpanel; +#X obj 727 410 route 0 1 2 3 4; +#X text 840 449 Xcenter Ycenter Radius; +#X obj 727 429 unpack 0 0 0; +#X msg 624 170 load \$1; +#X text 774 171 Load a trained cascade classifier from XML file; +#X obj 754 169 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X floatatom 791 266 5 0 0 0 - - -; +#X floatatom 745 237 5 0 0 0 - - -; +#X msg 644 203 mode \$1; +#X obj 705 203 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 654 236 min_size \$1; +#X msg 668 263 min_neighbors \$1; +#X text 829 255 Minimum number (minus 1) of neighbor rectangles that +makes up an object (default 2); +#X msg 697 296 scale_factor \$1; +#X floatatom 815 296 5 0 0 0 - - -; +#X text 852 290 The factor by which the search window is scaled between +the subsequent scans (default 1.1); +#X text 825 411 For each object detected; +#X floatatom 662 391 5 0 0 0 - - -; +#X text 701 391 number of objects detected; +#X text 786 238 Minimum size of object (default 30); +#X msg 725 325 ftolerance \$1; +#X floatatom 815 326 5 0 0 0 - - -; +#X msg 730 349 clear; +#X text 856 333 temporarily ( default 5 ); +#X text 856 321 number of frames where an object can disappear; +#X text 775 350 clear markers history; +#X text 727 200 Mode of operation. Currently the only flag that may +be specified is CV_HAAR_DO_CANNY_PRUNING ( 0 ); +#X text 16 22 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 pix_threshold to obtain a correct input for pix_opencv_contours_boundingrect. +; +#X text 17 75 pix_opencv_contours_convexhull works detecting the bigest +white area in the input image \, sometimes you will need to use pix_opencv_morphology +to transform the contours of the shape to be analyzed..; +#X text 13 -120 pix_opencv_contours_convexhull :: Finds convexhull +of the bigest contour of a binary image.; +#X obj 633 -174 gemhead; +#X obj 598 469 pix_texture; +#X obj 598 488 square 2; +#X obj 1025 432 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 +-66577 0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 65 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#N canvas 87 154 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 obj 162 241 gemwin; +#X msg 161 188 create \, 1; +#X msg 237 189 destroy; +#X msg 283 161 frame 25; +#X obj 164 126 t b b b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 10 0; +#X connect 2 1 4 0; +#X connect 2 1 8 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 7 0; +#X connect 10 2 9 0; +#X restore 1035 476 pd gemwin; +#X msg 1035 458 create; +#X obj 446 470 pix_texture; +#X obj 446 489 square 2; +#X obj 598 106 separator; +#X obj 645 -147 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 702 28 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 684 -7 5 0 10000 1 frame# - -; +#X obj 645 -118 openpanel; +#X msg 645 -98 open \$1; +#X obj 633 11 pix_film; +#X msg 651 -55 auto \$1; +#X obj 651 -73 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X text 1033 438 Create window and render; +#X msg 746 -72 colorspace RGBA; +#X msg 764 -52 colorspace RGB; +#X msg 783 -33 colorspace Grey; +#X obj 746 -100 loadbang; +#X obj 598 87 pix_separator; +#X obj 446 109 separator; +#X obj 446 90 pix_separator; +#X obj 446 128 translateXYZ -2 0 0; +#X obj 598 125 translateXYZ 2 0 0; +#N canvas 1 83 450 300 vswitch 0; +#X obj 36 237 outlet; +#X obj 36 26 inlet; +#X obj 260 29 inlet; +#X obj 399 34 inlet; +#X obj 36 133 spigot 1; +#X obj 260 141 spigot 0; +#X obj 81 108 == 0; +#X connect 1 0 4 0; +#X connect 2 0 5 0; +#X connect 3 0 6 0; +#X connect 3 0 5 1; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 6 0 4 1; +#X restore 446 41 pd vswitch; +#X obj 514 41 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X obj 446 9 pix_video; +#X obj 446 -179 gemhead; +#X msg 485 -66 device 0; +#X msg 494 -35 driver 1; +#X msg 471 -120 dialog; +#X msg 476 -90 device /dev/dv1394-0; +#X obj 598 144 pix_resize 320 240; +#X obj 446 60 pix_rgba; +#X connect 10 0 43 0; +#X connect 10 1 29 0; +#X connect 10 2 12 0; +#X connect 11 0 15 0; +#X connect 12 0 14 0; +#X connect 14 0 7 0; +#X connect 14 1 8 0; +#X connect 14 2 9 0; +#X connect 15 0 10 0; +#X connect 17 0 11 0; +#X connect 18 0 23 0; +#X connect 19 0 22 0; +#X connect 20 0 10 0; +#X connect 21 0 20 0; +#X connect 22 0 10 0; +#X connect 23 0 10 0; +#X connect 25 0 10 0; +#X connect 26 0 25 0; +#X connect 32 0 10 0; +#X connect 33 0 32 0; +#X connect 34 0 10 0; +#X connect 42 0 56 0; +#X connect 43 0 44 0; +#X connect 46 0 47 0; +#X connect 47 0 46 0; +#X connect 48 0 49 0; +#X connect 50 0 68 0; +#X connect 51 0 54 0; +#X connect 52 0 53 0; +#X connect 53 0 56 1; +#X connect 54 0 55 0; +#X connect 55 0 56 0; +#X connect 56 0 69 1; +#X connect 56 2 52 0; +#X connect 57 0 56 0; +#X connect 58 0 57 0; +#X connect 60 0 56 0; +#X connect 60 0 71 0; +#X connect 61 0 56 0; +#X connect 62 0 56 0; +#X connect 63 0 60 0; +#X connect 63 0 58 0; +#X connect 64 0 50 0; +#X connect 65 0 67 0; +#X connect 66 0 65 0; +#X connect 67 0 48 0; +#X connect 68 0 77 0; +#X connect 69 0 78 0; +#X connect 70 0 69 2; +#X connect 71 0 69 0; +#X connect 72 0 71 0; +#X connect 73 0 71 0; +#X connect 74 0 71 0; +#X connect 75 0 71 0; +#X connect 76 0 71 0; +#X connect 77 0 10 0; +#X connect 78 0 66 0; +#X connect 78 0 64 0; diff --git a/help/pix_opencv_hist_compare-help.pd b/help/pix_opencv_hist_compare-help.pd new file mode 100644 index 0000000..8d53114 --- /dev/null +++ b/help/pix_opencv_hist_compare-help.pd @@ -0,0 +1,168 @@ +#N canvas 639 272 1101 588 10; +#X obj 5 20 cnv 15 430 350 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 5 -26 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 14 -22 Arguments:; +#X obj 5 -121 cnv 15 430 90 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 35 -2 none; +#X obj 447 -179 cnv 15 650 550 empty empty empty 20 12 0 14 -228992 +-66577 0; +#X obj 589 143 cnv 15 500 180 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 678 148 hradio 15 1 0 5 empty empty empty 0 -8 0 10 -262144 +-1 -1 0; +#X text 761 147 save an histogram at position nth ( 0 <= n <= 80 ) +; +#X floatatom 682 279 5 0 0 0 - - -, f 5; +#X obj 744 204 unpack f f f f f; +#X text 837 239 nearest to 1 is the winner; +#X text 718 280 closest histogram (winner); +#X obj 744 232 vsl 15 37 0 1 0 0 empty empty empty 0 -9 0 10 -262144 +-1 -1 0 1; +#X obj 767 232 vsl 15 37 0 1 0 0 empty empty empty 0 -9 0 10 -262144 +-1 -1 0 1; +#X obj 790 232 vsl 15 37 0 1 0 0 empty empty empty 0 -9 0 10 -262144 +-1 -1 0 1; +#X obj 813 232 vsl 15 37 0 1 0 0 empty empty empty 0 -9 0 10 -262144 +-1 -1 0 1; +#X text 836 228 matching measure with stored histograms; +#X obj 603 173 pix_opencv_hist_compare; +#X obj 688 -169 gemhead; +#X obj 603 331 pix_texture; +#X obj 603 350 square 2; +#X obj 869 289 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 50 454 304 gemwin 0; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 65 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#N canvas 87 154 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 obj 162 241 gemwin; +#X msg 161 188 create \, 1; +#X msg 237 189 destroy; +#X msg 283 161 frame 25; +#X obj 164 126 t b b b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 10 0; +#X connect 2 1 4 0; +#X connect 2 1 8 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 7 0; +#X connect 10 2 9 0; +#X restore 879 333 pd gemwin; +#X msg 879 315 create; +#X obj 451 331 pix_texture; +#X obj 451 352 square 2; +#X obj 603 105 separator; +#X obj 700 -142 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 757 33 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 739 -2 5 0 10000 1 frame# - -, f 5; +#X obj 700 -113 openpanel; +#X msg 700 -93 open \$1; +#X obj 688 16 pix_film; +#X msg 706 -50 auto \$1; +#X obj 706 -68 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 +1; +#X text 877 295 Create window and render; +#X msg 801 -67 colorspace RGBA; +#X msg 812 -46 colorspace RGB; +#X msg 824 -25 colorspace Grey; +#X obj 801 -95 loadbang; +#X obj 603 86 pix_separator; +#X obj 451 106 separator; +#X obj 451 87 pix_separator; +#X obj 603 123 translateXYZ 2 0 0; +#N canvas 1 83 450 300 vswitch 0; +#X obj 36 214 outlet; +#X obj 36 26 inlet; +#X obj 260 29 inlet; +#X obj 399 34 inlet; +#X obj 36 133 spigot 1; +#X obj 260 141 spigot 0; +#X obj 81 111 == 0; +#X connect 1 0 4 0; +#X connect 2 0 5 0; +#X connect 3 0 6 0; +#X connect 3 0 5 1; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 6 0 4 1; +#X restore 451 38 pd vswitch; +#X obj 519 38 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X obj 451 -174 gemhead; +#X msg 490 -61 device 0; +#X msg 499 -30 driver 1; +#X msg 476 -115 dialog; +#X msg 481 -85 device /dev/dv1394-0; +#X text 21 -88 record histograms of specific situations; +#X text 23 -76 the object will recognize the situations if they occur +again; +#X text 23 -62 Written by Lluis Gomez i Bigorda ( lluisgomez@hangar.org +); +#X text 14 -114 pix_opencv_hist_compare : image recognition using histograms +; +#X obj 451 58 pix_rgba; +#X obj 451 14 pix_video; +#X obj 451 124 translateXYZ -2 0 0; +#X connect 7 0 18 1; +#X connect 10 0 13 0; +#X connect 10 1 14 0; +#X connect 10 2 15 0; +#X connect 10 3 16 0; +#X connect 18 0 20 0; +#X connect 18 1 9 0; +#X connect 18 2 10 0; +#X connect 19 0 33 0; +#X connect 20 0 21 0; +#X connect 23 0 24 0; +#X connect 24 0 23 0; +#X connect 25 0 26 0; +#X connect 27 0 44 0; +#X connect 28 0 31 0; +#X connect 29 0 30 0; +#X connect 30 0 33 1; +#X connect 31 0 32 0; +#X connect 32 0 33 0; +#X connect 33 0 45 1; +#X connect 33 2 29 0; +#X connect 34 0 33 0; +#X connect 35 0 34 0; +#X connect 37 0 33 0; +#X connect 37 0 57 0; +#X connect 38 0 33 0; +#X connect 39 0 33 0; +#X connect 40 0 37 0; +#X connect 40 0 35 0; +#X connect 41 0 27 0; +#X connect 42 0 58 0; +#X connect 43 0 42 0; +#X connect 44 0 18 0; +#X connect 45 0 56 0; +#X connect 46 0 45 2; +#X connect 47 0 57 0; +#X connect 48 0 57 0; +#X connect 49 0 57 0; +#X connect 50 0 57 0; +#X connect 51 0 57 0; +#X connect 56 0 43 0; +#X connect 56 0 41 0; +#X connect 57 0 45 0; +#X connect 58 0 25 0; diff --git a/help/pix_opencv_hough_circles-help.pd b/help/pix_opencv_hough_circles-help.pd new file mode 100644 index 0000000..9cbdd7f --- /dev/null +++ b/help/pix_opencv_hough_circles-help.pd @@ -0,0 +1,191 @@ +#N canvas 501 132 1214 680 10; +#X obj 5 205 cnv 15 430 470 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 5 159 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 14 163 Arguments:; +#X obj 5 64 cnv 15 430 90 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 35 183 none; +#X obj 445 5 cnv 15 760 670 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 599 357 cnv 15 600 270 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 605 527 pix_opencv_hough_circles; +#X obj 788 494 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 703 492 nightmode \$1; +#X text 807 495 set nightmode; +#X floatatom 726 390 5 0 0 0 - - -; +#X msg 637 387 threshold \$1; +#X floatatom 771 456 5 0 0 0 - - -; +#X floatatom 790 475 5 0 0 0 - - -; +#X floatatom 712 369 5 0 0 0 - - -; +#X msg 622 368 maxcircles \$1; +#X text 752 368 maximum nuber of circles detected ( default : 10 ) +; +#X floatatom 748 407 5 0 0 0 - - -; +#X msg 660 406 threshold2 \$1; +#X text 672 420 see documentation of cvHoughCircles for the meaning +of thresholds; +#X msg 685 455 mindist \$1; +#X text 808 454 minimum distance between circles ( default : 30 ); +#X msg 690 473 resolution \$1; +#X text 833 474 detector resolution ( default 1 ); +#X text 765 386 threshold ( default 100 ); +#X text 787 402 threshold2 ( default 10 ); +#X floatatom 746 588 5 0 0 0 - - -; +#X floatatom 782 589 5 0 0 0 - - -; +#X obj 746 548 route 1 2 3 4 5 6 7 8 9 10; +#X text 749 602 X1; +#X text 785 602 Y1; +#X floatatom 819 589 5 0 0 0 - - -; +#X text 915 548 position of each circle; +#X text 822 603 radius; +#X obj 746 569 unpack f f f; +#X text 12 208 written by Lluis Gomez i Bigorda ( lluisgomez@hangar.org +) and Yves Degoyon ( ydegoyon@gmail.com ); +#X text 13 70 pix_opencv_hough_circles : Hough circles detection algorithm +; +#X obj 656 18 gemhead; +#X obj 605 631 pix_texture; +#X obj 605 650 square 2; +#X obj 977 15 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 65 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#N canvas 87 154 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 obj 162 241 gemwin; +#X msg 161 188 create \, 1; +#X msg 237 189 destroy; +#X msg 283 161 frame 25; +#X obj 164 126 t b b b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 10 0; +#X connect 2 1 4 0; +#X connect 2 1 8 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 7 0; +#X connect 10 2 9 0; +#X restore 987 59 pd gemwin; +#X msg 987 41 create; +#X obj 453 631 pix_texture; +#X obj 453 650 square 2; +#X obj 605 293 separator; +#X obj 668 45 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 725 220 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 707 185 5 0 10000 1 frame# - -; +#X obj 668 74 openpanel; +#X msg 668 94 open \$1; +#X obj 656 203 pix_film; +#X msg 674 137 auto \$1; +#X obj 674 119 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X text 985 21 Create window and render; +#X msg 769 120 colorspace RGBA; +#X msg 780 139 colorspace RGB; +#X msg 796 158 colorspace Grey; +#X obj 769 92 loadbang; +#X obj 605 274 pix_separator; +#X obj 453 294 separator; +#X obj 453 275 pix_separator; +#X obj 453 314 translateXYZ -2 0 0; +#X obj 605 313 translateXYZ 2 0 0; +#N canvas 1 83 450 300 vswitch 0; +#X obj 36 127 outlet; +#X obj 36 27 inlet; +#X obj 110 27 inlet; +#X obj 155 26 inlet; +#X obj 36 93 spigot 1; +#X obj 110 94 spigot 0; +#X obj 81 71 == 0; +#X connect 1 0 4 0; +#X connect 2 0 5 0; +#X connect 3 0 6 0; +#X connect 3 0 5 1; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 6 0 4 1; +#X restore 453 228 pd vswitch; +#X obj 521 228 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 453 201 pix_video; +#X obj 453 13 gemhead; +#X msg 492 126 device 0; +#X msg 501 157 driver 1; +#X msg 478 72 dialog; +#X msg 483 102 device /dev/dv1394-0; +#X obj 605 337 pix_resize 320 240; +#X obj 453 249 pix_rgba; +#X connect 7 0 39 0; +#X connect 7 1 29 0; +#X connect 8 0 9 0; +#X connect 9 0 7 0; +#X connect 11 0 12 0; +#X connect 12 0 7 0; +#X connect 13 0 21 0; +#X connect 14 0 23 0; +#X connect 15 0 16 0; +#X connect 16 0 7 0; +#X connect 18 0 19 0; +#X connect 19 0 7 0; +#X connect 21 0 7 0; +#X connect 23 0 7 0; +#X connect 29 0 35 0; +#X connect 35 0 27 0; +#X connect 35 1 28 0; +#X connect 35 2 32 0; +#X connect 38 0 52 0; +#X connect 39 0 40 0; +#X connect 42 0 43 0; +#X connect 43 0 42 0; +#X connect 44 0 45 0; +#X connect 46 0 64 0; +#X connect 47 0 50 0; +#X connect 48 0 49 0; +#X connect 49 0 52 1; +#X connect 50 0 51 0; +#X connect 51 0 52 0; +#X connect 52 0 65 1; +#X connect 52 2 48 0; +#X connect 53 0 52 0; +#X connect 54 0 53 0; +#X connect 56 0 52 0; +#X connect 56 0 67 0; +#X connect 57 0 52 0; +#X connect 58 0 52 0; +#X connect 59 0 56 0; +#X connect 59 0 54 0; +#X connect 60 0 46 0; +#X connect 61 0 63 0; +#X connect 62 0 61 0; +#X connect 63 0 44 0; +#X connect 64 0 73 0; +#X connect 65 0 74 0; +#X connect 66 0 65 2; +#X connect 67 0 65 0; +#X connect 68 0 67 0; +#X connect 69 0 67 0; +#X connect 70 0 67 0; +#X connect 71 0 67 0; +#X connect 72 0 67 0; +#X connect 73 0 7 0; +#X connect 74 0 62 0; +#X connect 74 0 60 0; diff --git a/help/pix_opencv_hough_lines-help.pd b/help/pix_opencv_hough_lines-help.pd new file mode 100644 index 0000000..b40976c --- /dev/null +++ b/help/pix_opencv_hough_lines-help.pd @@ -0,0 +1,213 @@ +#N canvas 545 63 1680 940 10; +#X obj 580 463 cnv 15 600 400 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 606 762 pix_opencv_hough_lines; +#X obj 790 732 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X msg 705 730 nightmode \$1; +#X text 809 733 set nightmode; +#X floatatom 736 580 5 0 0 0 - - -; +#X msg 635 546 mode \$1; +#X obj 731 517 vradio 15 1 0 3 empty empty empty 0 -8 0 10 -262144 +-1 -1 1; +#X text 752 517 CV_HOUGH_STANDARD; +#X text 752 531 CV_HOUGH_PROBABILISTIC; +#X text 753 547 CV_HOUGN_MULTI_SCALE; +#X msg 647 577 threshold \$1; +#X msg 661 607 minlength \$1; +#X floatatom 747 608 5 0 0 0 - - -; +#X floatatom 727 634 5 0 0 0 - - -; +#X msg 676 633 gap \$1; +#X text 770 634 gap betwwen lines ( default 10 \, for mode CV_HOUGH_PROBABILISTIC +); +#X text 784 605 minimum length ( default 30 \, for mode CV_HOUGH_PROBABILISTIC +); +#X floatatom 781 672 5 0 0 0 - - -; +#X floatatom 803 704 5 0 0 0 - - -; +#X msg 680 670 aresolution \$1; +#X text 847 700 distance resolution ( default 1 \, for mode CV_HOUGH_MULTI_SCALE +); +#X text 819 669 angle resolution ( default 1 \, for mode CV_HOUGH_MULTI_SCALE +); +#X msg 621 476 maxlines \$1; +#X floatatom 700 477 5 0 0 0 - - -; +#X text 741 473 maximum nuber of lines detected ( default : 10 ); +#X text 775 576 threshold ( default 50 ); +#X text 640 499 Detection mode ( default : CV_HOUGH_PROBABILISTIC ) +; +#X floatatom 750 831 5 0 0 0 - - -; +#X floatatom 786 832 5 0 0 0 - - -; +#X obj 750 791 route 1 2 3 4 5 6 7 8 9 10; +#X text 919 790 position of each line; +#X obj 750 811 unpack f f f f; +#X text 753 845 X1; +#X text 789 845 Y1; +#X floatatom 823 832 5 0 0 0 - - -; +#X floatatom 859 833 5 0 0 0 - - -; +#X text 826 846 X2; +#X text 862 846 Y2; +#X text 41 154 written by Lluis Gomez i Bigorda ( lluisgomez@hangar.org +) and Yves Degoyon ( ydegoyon@gmail.com ); +#X text 40 139 pix_opencv_hough_lines : Hough lines algorithm; +#X msg 698 702 dresolution \$1; +#X obj 725 54 gemhead; +#X obj 606 884 pix_texture; +#X obj 606 903 square 2; +#X obj 43 50 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 65 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#N canvas 87 154 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 obj 162 241 gemwin; +#X msg 161 188 create \, 1; +#X msg 237 189 destroy; +#X msg 283 161 frame 25; +#X obj 164 126 t b b b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 10 0; +#X connect 2 1 4 0; +#X connect 2 1 8 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 7 0; +#X connect 10 2 9 0; +#X restore 53 94 pd gemwin; +#X msg 53 76 create; +#X obj 454 691 pix_texture; +#X obj 454 719 square 2; +#X obj 606 381 separator; +#X obj 737 81 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 794 256 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 776 221 5 0 10000 1 frame# - -; +#X obj 737 110 openpanel; +#X msg 737 130 open \$1; +#X obj 725 239 pix_film; +#X msg 743 173 auto \$1; +#X obj 743 155 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 +1; +#X text 51 56 Create window and render; +#X msg 838 156 colorspace RGBA; +#X msg 943 156 colorspace RGB; +#X msg 1047 156 colorspace Grey; +#X obj 838 128 loadbang; +#X obj 605 352 pix_separator; +#X obj 454 384 separator; +#X obj 454 355 pix_separator; +#X obj 454 419 translateXYZ -2 0 0; +#X obj 606 416 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 547 309 pd vswitch; +#X obj 615 309 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 488 237 pix_video; +#X obj 488 49 gemhead; +#X msg 527 162 device 0; +#X msg 536 193 driver 1; +#X msg 513 108 dialog; +#X msg 518 138 device /dev/dv1394-0; +#X obj 606 440 pix_resize 320 240; +#X text 884 547 (WARNING :: only for powerfull machines); +#X obj 547 329 pix_rgba; +#X connect 1 0 43 0; +#X connect 1 1 30 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 5 0 11 0; +#X connect 6 0 1 0; +#X connect 7 0 6 0; +#X connect 11 0 1 0; +#X connect 12 0 1 0; +#X connect 13 0 12 0; +#X connect 14 0 15 0; +#X connect 15 0 1 0; +#X connect 18 0 20 0; +#X connect 19 0 41 0; +#X connect 20 0 1 0; +#X connect 23 0 1 0; +#X connect 24 0 23 0; +#X connect 30 0 32 0; +#X connect 32 0 28 0; +#X connect 32 1 29 0; +#X connect 32 2 35 0; +#X connect 32 3 36 0; +#X connect 41 0 1 0; +#X connect 42 0 56 0; +#X connect 43 0 44 0; +#X connect 46 0 47 0; +#X connect 47 0 46 0; +#X connect 48 0 49 0; +#X connect 50 0 68 0; +#X connect 51 0 54 0; +#X connect 52 0 53 0; +#X connect 53 0 56 1; +#X connect 54 0 55 0; +#X connect 55 0 56 0; +#X connect 56 0 69 1; +#X connect 56 2 52 0; +#X connect 57 0 56 0; +#X connect 58 0 57 0; +#X connect 60 0 56 0; +#X connect 60 0 71 0; +#X connect 61 0 56 0; +#X connect 62 0 56 0; +#X connect 63 0 60 0; +#X connect 63 0 58 0; +#X connect 64 0 50 0; +#X connect 65 0 67 0; +#X connect 66 0 65 0; +#X connect 67 0 48 0; +#X connect 68 0 77 0; +#X connect 69 0 79 0; +#X connect 70 0 69 2; +#X connect 71 0 69 0; +#X connect 72 0 71 0; +#X connect 73 0 71 0; +#X connect 74 0 71 0; +#X connect 75 0 71 0; +#X connect 76 0 71 0; +#X connect 77 0 1 0; +#X connect 79 0 66 0; +#X connect 79 0 64 0; diff --git a/help/pix_opencv_hu_compare-help.pd b/help/pix_opencv_hu_compare-help.pd new file mode 100644 index 0000000..413d8bc --- /dev/null +++ b/help/pix_opencv_hu_compare-help.pd @@ -0,0 +1,240 @@ +#N canvas 542 83 1154 759 10; +#X obj 937 -7 gemhead; +#X obj 375 543 pix_texture; +#X obj 374 566 square 2; +#X obj 9 -28 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#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; +#N canvas 87 154 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 obj 160 260 gemwin; +#X msg 159 207 create \, 1; +#X msg 235 208 destroy; +#X msg 281 180 frame 25; +#X obj 162 170 t b b b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 10 0; +#X connect 2 1 4 0; +#X connect 2 1 8 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 7 0; +#X connect 10 2 9 0; +#X restore 14 16 pd gemwin; +#X msg 14 -5 create; +#X text 15 -23 Create window and render; +#X obj 353 225 cnv 15 700 300 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 619 -90 bng 25 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 676 85 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 658 50 5 0 10000 1 frame# - -; +#X obj 619 -61 openpanel; +#X msg 619 -41 open \$1; +#X obj 607 68 pix_film; +#X msg 625 2 auto \$1; +#X obj 625 -16 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 373 395 pix_opencv_hu_compare; +#X floatatom 491 481 30 0 0 0 - - -; +#X text 496 464 distance; +#X obj 707 499 route 1; +#X obj 759 499 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 668 500 < 0.1; +#X obj 768 479 hsl 128 15 0 0.2 0 0 cdist empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X text 788 499 criteria value; +#X floatatom 686 481 10 0 0 0 - - -; +#X text 528 376 calculating their hu moments ( CvMatchShape ); +#X text 527 364 compares the contours to the pattern reference contour +; +#X msg 511 333 criteria \$1; +#X obj 595 334 r cdist; +#X text 648 328 criteria value under which the contour is recongnized +; +#X text 646 339 ( adjust to your situation : default : 0.1 ); +#X obj 575 283 hradio 15 1 0 3 empty empty empty 0 -8 0 10 -262144 +-1 -1 0; +#X text 626 277 method used for comparison : one of : CV_CONTOURS_MATCH_I1 +\, CV_CONTOURS_MATCH_I2 or CV_CONTOURS_MATCH_I3; +#X obj 547 282 + 1; +#X msg 477 282 method \$1; +#X msg 463 255 minsize \$1; +#X floatatom 537 256 5 0 0 0 - - -; +#X text 578 256 minimum size of selected contours ( default : 10x10 +); +#X msg 513 304 clear; +#X text 621 304 recalculates the pattern contour; +#X obj 562 305 r reset; +#X text 12 -57 Written by Yves Degoyon ( ydegoyon@gmail.com ); +#X text 13 -85 pix_opencv_hu_compare :: compare contours using their +hu moments using CvMatchShape.; +#X text 666 -88 playing a video file; +#X text 684 -75 ( try estrella.mov ); +#X msg 854 -80 bang; +#X text 900 -87 loading a pattern image; +#X text 899 -74 ( try estrella.jpg ); +#X text 853 -105 Compare to a pattern; +#X obj 854 -4 pix_image; +#X obj 856 -53 openpanel; +#X msg 855 -26 open \$1; +#X floatatom 1007 113 5 0 0 0 - - -; +#X text 836 192 threshold (default 13) to use when comparing pixel +colors; +#X obj 1075 86 loadbang; +#X msg 1044 86 160; +#X obj 976 85 r tresh; +#X floatatom 511 185 5 0 0 0 - - -; +#X obj 579 183 loadbang; +#X msg 551 183 160; +#X obj 512 203 s tresh; +#X obj 985 145 pix_texture; +#X obj 853 112 pix_opencv_threshold; +#X obj 378 204 pix_opencv_threshold; +#X obj 985 173 square 2; +#X obj 853 58 translateXYZ -2 0 0; +#X obj 854 26 pix_resize 320 240; +#X obj 373 130 pix_resize 320 240; +#X obj 683 -24 loadbang; +#X msg 683 1 colorspace RGBA; +#X msg 685 22 colorspace RGB; +#X msg 746 -25 colorspace Grey; +#X obj 687 -52 gemhead; +#X obj 376 180 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 375 98 pd vswitch; +#X obj 443 98 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X obj 374 60 pix_video; +#X obj 378 -88 gemhead; +#X msg 413 -15 device 0; +#X msg 422 16 driver 1; +#X msg 399 -69 dialog; +#X msg 404 -39 device /dev/dv1394-0; +#X obj 547 415 unpack f f f f f; +#X text 661 415 position of detected contours; +#X floatatom 570 437 5 0 0 0 - - -; +#X floatatom 608 438 5 0 0 0 - - -; +#X floatatom 648 437 5 0 0 0 - - -; +#X floatatom 691 438 5 0 0 0 - - -; +#X text 577 450 X; +#X text 616 449 Y; +#X text 648 449 width; +#X text 689 450 height; +#X obj 373 156 pix_rgba; +#X obj 850 150 pix_rgba; +#X connect 0 0 49 0; +#X connect 1 0 2 0; +#X connect 4 0 5 0; +#X connect 5 0 4 0; +#X connect 8 0 11 0; +#X connect 9 0 10 0; +#X connect 10 0 13 1; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 13 0 74 1; +#X connect 13 2 9 0; +#X connect 14 0 13 0; +#X connect 15 0 14 0; +#X connect 16 0 1 0; +#X connect 16 1 17 0; +#X connect 16 2 82 0; +#X connect 17 0 21 0; +#X connect 19 0 20 0; +#X connect 21 0 19 0; +#X connect 22 0 21 1; +#X connect 22 0 24 0; +#X connect 27 0 16 0; +#X connect 28 0 27 0; +#X connect 31 0 33 0; +#X connect 33 0 34 0; +#X connect 34 0 16 0; +#X connect 35 0 16 0; +#X connect 36 0 35 0; +#X connect 38 0 16 0; +#X connect 40 0 38 0; +#X connect 45 0 50 0; +#X connect 49 0 66 0; +#X connect 50 0 51 0; +#X connect 51 0 49 0; +#X connect 52 0 62 2; +#X connect 54 0 55 0; +#X connect 55 0 52 0; +#X connect 56 0 52 0; +#X connect 57 0 60 0; +#X connect 57 0 63 2; +#X connect 58 0 59 0; +#X connect 59 0 57 0; +#X connect 61 0 64 0; +#X connect 62 0 61 0; +#X connect 62 0 93 0; +#X connect 63 0 16 0; +#X connect 65 0 62 0; +#X connect 66 0 65 0; +#X connect 67 0 92 0; +#X connect 68 0 69 0; +#X connect 69 0 13 0; +#X connect 69 0 49 0; +#X connect 70 0 49 0; +#X connect 70 0 13 0; +#X connect 71 0 13 0; +#X connect 71 0 49 0; +#X connect 72 0 13 0; +#X connect 73 0 63 0; +#X connect 74 0 67 0; +#X connect 75 0 74 2; +#X connect 76 0 74 0; +#X connect 77 0 76 0; +#X connect 78 0 76 0; +#X connect 79 0 76 0; +#X connect 80 0 76 0; +#X connect 81 0 76 0; +#X connect 82 1 84 0; +#X connect 82 2 85 0; +#X connect 82 3 86 0; +#X connect 82 4 87 0; +#X connect 92 0 73 0; +#X connect 93 0 16 1; diff --git a/help/pix_opencv_hu_moments-help.pd b/help/pix_opencv_hu_moments-help.pd new file mode 100644 index 0000000..dcac648 --- /dev/null +++ b/help/pix_opencv_hu_moments-help.pd @@ -0,0 +1,147 @@ +#N canvas 625 121 820 711 10; +#X obj 13 0 gemhead; +#X obj 30 439 pix_texture; +#X obj 30 467 square 2; +#X obj 506 536 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#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; +#N canvas 87 154 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 obj 171 266 gemwin; +#X msg 164 226 create \, 1; +#X msg 252 229 destroy; +#X msg 292 186 frame 25; +#X obj 173 176 t b b b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 10 0; +#X connect 2 1 4 0; +#X connect 2 1 8 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 7 0; +#X connect 10 2 9 0; +#X restore 516 580 pd gemwin; +#X msg 516 562 create; +#X obj 114 -18 bng 25 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 114 11 openpanel; +#X msg 114 31 open \$1; +#X obj 15 182 cnv 15 400 250 empty empty empty 20 12 0 14 -4034 -66577 +0; +#X text 514 539 Create window and render; +#X obj 32 235 pix_opencv_hu_moments; +#X msg 82 197 binary \$1; +#X obj 152 198 tgl 15 0 sbin empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X text 171 198 treat incoming frames as binary data; +#X text 187 -19 Written by Yves Degoyon ( ydegoyon@gmail.com ); +#X text 186 -67 pix_opencv_hu_moments :: Calculates the hu moments +of contours.; +#X obj 135 256 unpack f f f f f f f; +#X floatatom 145 283 30 0 0 0 - - h1; +#X text 125 282 h1; +#X floatatom 156 305 30 0 0 0 - - h2; +#X floatatom 167 326 30 0 0 0 - - h3; +#X floatatom 180 347 30 0 0 0 - - h4; +#X floatatom 196 369 30 0 0 0 - - h5; +#X floatatom 208 389 30 0 0 0 - - h6; +#X floatatom 217 412 30 0 0 0 - - h7; +#X text 136 304 h2; +#X text 148 325 h3; +#X text 161 346 h4; +#X text 176 368 h5; +#X text 188 388 h6; +#X text 197 411 h7; +#X obj 115 104 pix_image; +#X text 187 -43 Load here with a simple patterns image and compare +the moments.; +#X obj 546 20 bng 25 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 546 49 openpanel; +#X msg 546 69 open \$1; +#X obj 430 185 cnv 15 400 250 empty empty empty 20 12 0 14 -4034 -66577 +0; +#X obj 447 238 pix_opencv_hu_moments; +#X msg 497 200 binary \$1; +#X obj 567 201 tgl 15 0 sbin empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X text 593 201 treat incoming frames as binary data; +#X obj 550 259 unpack f f f f f f f; +#X floatatom 560 286 30 0 0 0 - - h1; +#X text 540 285 h1; +#X floatatom 571 308 30 0 0 0 - - h2; +#X floatatom 582 329 30 0 0 0 - - h3; +#X floatatom 595 350 30 0 0 0 - - h4; +#X floatatom 611 372 30 0 0 0 - - h5; +#X floatatom 623 392 30 0 0 0 - - h6; +#X floatatom 632 415 30 0 0 0 - - h7; +#X text 551 307 h2; +#X text 563 328 h3; +#X text 576 349 h4; +#X text 591 371 h5; +#X text 603 391 h6; +#X text 612 414 h7; +#X obj 484 117 pix_image; +#X obj 115 133 translateXYZ -2 0 0; +#X obj 447 445 pix_texture; +#X obj 447 473 square 2; +#X floatatom 216 100 5 0 0 0 - - -; +#X obj 384 9 gemhead; +#X obj 385 29 translateXYZ 2 0 0; +#X obj 116 161 pix_rgba; +#X obj 469 155 pix_rgba; +#X connect 0 0 32 0; +#X connect 1 0 2 0; +#X connect 4 0 5 0; +#X connect 5 0 4 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 8 0 32 0; +#X connect 11 0 1 0; +#X connect 11 1 17 0; +#X connect 12 0 11 0; +#X connect 13 0 12 0; +#X connect 17 0 18 0; +#X connect 17 1 20 0; +#X connect 17 2 21 0; +#X connect 17 3 22 0; +#X connect 17 4 23 0; +#X connect 17 5 24 0; +#X connect 17 6 25 0; +#X connect 32 0 58 0; +#X connect 34 0 35 0; +#X connect 35 0 36 0; +#X connect 36 0 57 0; +#X connect 38 0 59 0; +#X connect 38 1 42 0; +#X connect 39 0 38 0; +#X connect 40 0 39 0; +#X connect 42 0 43 0; +#X connect 42 1 45 0; +#X connect 42 2 46 0; +#X connect 42 3 47 0; +#X connect 42 4 48 0; +#X connect 42 5 49 0; +#X connect 42 6 50 0; +#X connect 57 0 65 0; +#X connect 58 0 64 0; +#X connect 59 0 60 0; +#X connect 61 0 58 1; +#X connect 62 0 63 0; +#X connect 63 0 57 0; +#X connect 64 0 11 0; +#X connect 65 0 38 0; diff --git a/help/pix_opencv_knear-help.pd b/help/pix_opencv_knear-help.pd new file mode 100644 index 0000000..5143dec --- /dev/null +++ b/help/pix_opencv_knear-help.pd @@ -0,0 +1,94 @@ +#N canvas 562 208 1154 642 10; +#X obj 384 31 gemhead; +#X obj 365 414 pix_texture; +#X obj 365 442 square 2; +#X obj 9 -28 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 5 50 454 304 gemwin 0; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 39 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 156 142 dimen 256 128; +#X obj 127 212 gemwin; +#X msg 120 172 create \, 1; +#X msg 208 175 destroy; +#X msg 248 132 frame 25; +#X obj 129 122 t b b b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 10 0; +#X connect 2 1 4 0; +#X connect 2 1 8 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 5 0 6 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 7 0; +#X connect 10 1 5 0; +#X connect 10 2 9 0; +#X restore 14 16 pd gemwin; +#X msg 14 -8 destroy; +#X text 15 -25 Create window and render; +#X obj 200 368 pix_texture; +#X obj 200 396 square 2; +#X obj 367 159 translateXYZ -2 0 0; +#X obj 367 193 separator; +#X obj 343 221 cnv 15 700 180 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 356 -55 bng 25 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 356 -26 openpanel; +#X msg 356 -6 open \$1; +#X obj 364 259 translateXYZ 4 0 0; +#X text 9 -82 based on basic OCR with Open CV tutorial; +#X text 9 -71 by damiles : http://blog.damiles.com/?p=93; +#X text 9 -58 adapted to PD by Yves Degoyon ( ydegoyon@gmail.com ) +; +#X text 9 -93 pix_opencv_knear : OCR-like pattern recognition; +#X msg 532 250 bang; +#X text 571 254 Compare the incoming frame to the patterns; +#X text 637 281 Load a new set of patterns from a directory; +#X text 637 294 All patterns should be of the same size; +#X floatatom 591 355 10 0 0 0 - - -, f 10; +#X text 663 356 Distance of the incoming frame compared to the patterns +; +#X obj 384 72 pix_image; +#X obj 592 380 print distance; +#X obj 575 177 loadbang; +#X obj 382 110 pix_grey; +#X text 433 -33 load patterns \, create the Gem window and then load +a character image; +#X msg 550 283 load plus 15; +#X obj 367 215 pix_separator; +#X obj 365 336 pix_opencv_knear; +#X obj 575 199 t b b; +#X text 638 309 Directory could be ether relative to patch or absolute +; +#X connect 0 0 26 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 10 0; +#X connect 9 0 7 0; +#X connect 10 0 32 0; +#X connect 12 0 13 0; +#X connect 12 0 20 0; +#X connect 13 0 14 0; +#X connect 14 0 26 0; +#X connect 15 0 33 0; +#X connect 20 0 33 0; +#X connect 26 0 29 0; +#X connect 28 0 34 0; +#X connect 29 0 9 0; +#X connect 31 0 33 0; +#X connect 32 0 15 0; +#X connect 33 0 1 0; +#X connect 33 1 24 0; +#X connect 33 1 27 0; +#X connect 34 0 20 0; +#X connect 34 1 31 0; diff --git a/help/pix_opencv_laplace-help.pd b/help/pix_opencv_laplace-help.pd new file mode 100644 index 0000000..ca44d22 --- /dev/null +++ b/help/pix_opencv_laplace-help.pd @@ -0,0 +1,153 @@ +#N canvas 487 97 970 899 10; +#X obj 347 393 cnv 15 200 70 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 374 435 pix_opencv_laplace; +#X msg 419 410 1; +#X msg 453 410 3; +#X msg 486 410 5; +#X msg 518 410 7; +#X text 381 392 aperture size ( default 3 ); +#X text 517 343 Written by Lluis Gomez i Bigorda ( lluisgomez@hangar.org +); +#X text 517 332 used as an edge detector; +#X text 516 319 pix_opencv_laplace : laplace filter; +#X obj 515 232 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#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; +#N canvas 87 154 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 obj 160 260 gemwin; +#X msg 159 207 create \, 1; +#X msg 235 208 destroy; +#X msg 281 180 frame 25; +#X obj 162 170 t b b b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 10 0; +#X connect 2 1 4 0; +#X connect 2 1 8 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 7 0; +#X connect 10 2 9 0; +#X restore 520 276 pd gemwin; +#X msg 520 255 create; +#X text 521 237 Create window and render; +#X obj 493 -11 gemhead; +#X obj 374 316 separator; +#X obj 505 16 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 562 191 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 544 156 5 0 10000 1 frame# - -; +#X obj 505 45 openpanel; +#X msg 505 65 open \$1; +#X obj 493 174 pix_film; +#X msg 511 108 auto \$1; +#X obj 511 90 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X msg 606 91 colorspace RGBA; +#X msg 711 91 colorspace RGB; +#X msg 815 91 colorspace Grey; +#X obj 606 63 loadbang; +#X obj 373 287 pix_separator; +#X obj 222 319 separator; +#X obj 222 290 pix_separator; +#X obj 222 354 translateXYZ -2 0 0; +#X obj 374 351 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 315 245 pd vswitch; +#X obj 383 244 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 256 172 pix_video; +#X obj 256 -16 gemhead; +#X msg 295 97 device 0; +#X msg 304 128 driver 1; +#X msg 281 43 dialog; +#X msg 286 73 device /dev/dv1394-0; +#X obj 374 495 pix_texture; +#X obj 374 514 square 2; +#X obj 222 491 pix_texture; +#X obj 222 519 square 2; +#X obj 316 271 pix_rgba; +#X connect 1 0 41 0; +#X connect 2 0 1 1; +#X connect 3 0 1 1; +#X connect 4 0 1 1; +#X connect 5 0 1 1; +#X connect 11 0 12 0; +#X connect 12 0 11 0; +#X connect 14 0 21 0; +#X connect 15 0 32 0; +#X connect 16 0 19 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 33 1; +#X connect 21 2 17 0; +#X connect 22 0 21 0; +#X connect 23 0 22 0; +#X connect 24 0 21 0; +#X connect 24 0 35 0; +#X connect 25 0 21 0; +#X connect 26 0 21 0; +#X connect 27 0 24 0; +#X connect 27 0 23 0; +#X connect 28 0 15 0; +#X connect 29 0 31 0; +#X connect 30 0 29 0; +#X connect 31 0 43 0; +#X connect 32 0 1 0; +#X connect 33 0 45 0; +#X connect 34 0 33 2; +#X connect 35 0 33 0; +#X connect 36 0 35 0; +#X connect 37 0 35 0; +#X connect 38 0 35 0; +#X connect 39 0 35 0; +#X connect 40 0 35 0; +#X connect 41 0 42 0; +#X connect 43 0 44 0; +#X connect 45 0 30 0; +#X connect 45 0 28 0; diff --git a/help/pix_opencv_lk-help.pd b/help/pix_opencv_lk-help.pd new file mode 100644 index 0000000..8343d60 --- /dev/null +++ b/help/pix_opencv_lk-help.pd @@ -0,0 +1,242 @@ +#N canvas 331 42 1192 685 10; +#X obj 141 -12 cnv 15 700 450 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X floatatom 288 328 5 0 0 0 - - -; +#X text 323 327 window size; +#X obj 353 70 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 268 68 nightmode \$1; +#X text 372 71 set nightmode; +#X msg 263 42 quality \$1; +#X floatatom 338 43 5 0 0 0 - - -; +#X floatatom 346 18 5 0 0 0 - - -; +#X msg 249 17 mindistance \$1; +#X text 387 16 set distance ( default 10 ); +#X msg 242 -11 init; +#X text 311 -11 init point detections; +#X floatatom 431 43 5 0 0 0 - - -; +#X obj 376 41 / 1000; +#X msg 294 136 mark \$1 \$2; +#X msg 308 157 delete \$1; +#X text 502 157 delete a marker; +#X msg 316 177 clear; +#X text 364 178 delete all markers; +#X msg 322 197 maxmove \$1; +#X floatatom 398 199 5 0 0 0 - - -; +#X text 563 42 set quality ( default 100 ); +#X msg 471 41 100; +#X obj 504 41 loadbang; +#X obj 285 383 unpack f f; +#X floatatom 286 408 5 0 0 0 - - -; +#X floatatom 344 409 5 0 0 0 - - -; +#X text 287 424 X; +#X text 342 425 Y; +#X obj 284 357 route 1 2 3 4 5 6 7 8 9 10; +#X text 450 306 position of each marked point; +#X obj 178 346 pix_opencv_lk; +#X obj 664 -167 gemmouse; +#X obj 678 -133 f; +#X obj 648 -134 f; +#X obj 734 -89 t b b; +#X obj 645 -89 pack f f; +#X text 373 137 mark x y : mark a point to track ( max points : 10 +); +#X obj 710 -139 route 1; +#X msg 731 -114 bang; +#X msg 277 91 mark all; +#X msg 287 112 mark none; +#X text 340 92 mark all points; +#X text 357 113 reset all markers; +#X text 422 241 make a delaunay with all points; +#X msg 342 241 delaunay on; +#X msg 350 261 delaunay off; +#X text 451 274 make a delaunay with point 1 and a tolerance of 50 +( all points which color is in that range will be included in the delaunay) +; +#X msg 333 217 ftolerance \$1; +#X floatatom 425 217 5 0 0 0 - - -; +#X text 465 217 frame tolerance for point identification ( default +: 5 ); +#X text -232 -324 written by Lluis Gomez i Bigorda ( lluisgomez@hangar.org +) and Yves Degoyon ( ydegoyon@gmail.com ); +#X text -231 -336 Corner points detection based on Shi and Tomasi; +#X text -231 -348 pix_opencv_lk : Lukas-Kanade corner points tracking +; +#X obj 376 158 hradio 15 1 0 8 empty empty empty 0 -8 0 10 -262144 +-1 -1 0; +#X floatatom 639 -112 5 0 0 0 - - -; +#X floatatom 692 -109 5 0 0 0 - - -; +#X msg 350 283 pdelaunay 1 500; +#X obj 341 -335 gemhead; +#X obj 353 -308 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 410 -133 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 392 -168 5 0 10000 1 frame# - -; +#X obj 353 -279 openpanel; +#X msg 353 -259 open \$1; +#X obj 341 -150 pix_film; +#X msg 359 -216 auto \$1; +#X obj 359 -234 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 +1; +#X msg 454 -233 colorspace RGBA; +#X msg 559 -233 colorspace RGB; +#X msg 663 -233 colorspace Grey; +#X obj 454 -261 loadbang; +#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 178 -115 pd vswitch; +#X obj 250 -119 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 161 -166 pix_video; +#X obj 163 -320 gemhead; +#X msg 200 -241 device 0; +#X msg 209 -210 driver 1; +#X msg 186 -295 dialog; +#X msg 191 -265 device /dev/dv1394-0; +#X obj 178 469 pix_texture; +#X obj -231 -425 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 +-66577 0; +#N canvas 0 22 454 304 gemwin 0; +#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; +#N canvas 87 154 247 179 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 268 69 pd Gem.init; +#X obj 162 241 gemwin; +#X msg 161 188 create \, 1; +#X msg 237 189 destroy; +#X msg 188 161 dimen 320 240; +#X obj 164 126 t b b b; +#X msg 279 161 frame 25; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 10 0; +#X connect 2 1 4 0; +#X connect 2 1 8 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 7 0; +#X connect 10 1 9 0; +#X connect 10 2 11 0; +#X connect 11 0 6 0; +#X restore -224 -379 pd gemwin; +#X msg -223 -401 destroy; +#X text -223 -422 Create window and render; +#X obj 178 488 rectangle 5.3 4; +#X obj 178 -78 pix_resize 320 240; +#X text 642 -68 selection of a point; +#X text 436 196 max movement of a marker ( default 20 pixels ); +#X obj 178 -40 pix_rgba; +#X connect 1 0 32 1; +#X connect 3 0 4 0; +#X connect 4 0 32 0; +#X connect 6 0 32 0; +#X connect 7 0 6 0; +#X connect 8 0 9 0; +#X connect 9 0 32 0; +#X connect 11 0 32 0; +#X connect 13 0 14 0; +#X connect 14 0 7 0; +#X connect 15 0 32 0; +#X connect 16 0 32 0; +#X connect 18 0 32 0; +#X connect 20 0 32 0; +#X connect 21 0 20 0; +#X connect 23 0 13 0; +#X connect 24 0 23 0; +#X connect 25 0 26 0; +#X connect 25 1 27 0; +#X connect 30 0 25 0; +#X connect 32 0 80 0; +#X connect 32 1 30 0; +#X connect 33 0 35 1; +#X connect 33 1 34 1; +#X connect 33 2 39 0; +#X connect 34 0 37 1; +#X connect 34 0 57 0; +#X connect 35 0 37 0; +#X connect 35 0 56 0; +#X connect 36 0 35 0; +#X connect 36 1 34 0; +#X connect 37 0 15 0; +#X connect 39 0 40 0; +#X connect 40 0 36 0; +#X connect 41 0 32 0; +#X connect 42 0 32 0; +#X connect 46 0 32 0; +#X connect 47 0 32 0; +#X connect 49 0 32 0; +#X connect 50 0 49 0; +#X connect 55 0 16 0; +#X connect 58 0 32 0; +#X connect 59 0 65 0; +#X connect 60 0 63 0; +#X connect 61 0 62 0; +#X connect 62 0 65 1; +#X connect 63 0 64 0; +#X connect 64 0 65 0; +#X connect 65 0 72 1; +#X connect 65 2 61 0; +#X connect 66 0 65 0; +#X connect 67 0 66 0; +#X connect 68 0 65 0; +#X connect 68 0 74 0; +#X connect 69 0 65 0; +#X connect 70 0 65 0; +#X connect 71 0 68 0; +#X connect 71 0 67 0; +#X connect 72 0 86 0; +#X connect 73 0 72 2; +#X connect 74 0 72 0; +#X connect 75 0 74 0; +#X connect 76 0 74 0; +#X connect 77 0 74 0; +#X connect 78 0 74 0; +#X connect 79 0 74 0; +#X connect 80 0 85 0; +#X connect 82 0 83 0; +#X connect 83 0 82 0; +#X connect 86 0 89 0; +#X connect 89 0 32 0; diff --git a/help/pix_opencv_matchshape-help.pd b/help/pix_opencv_matchshape-help.pd new file mode 100644 index 0000000..be53c23 --- /dev/null +++ b/help/pix_opencv_matchshape-help.pd @@ -0,0 +1,103 @@ +#N canvas 216 165 968 473 10; +#X obj 477 6 cnv 15 480 460 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 20 75 cnv 15 450 200 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 21 326 cnv 15 450 140 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 22 331 Inlets:; +#X obj 21 286 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 30 285 Arguments:; +#X text 22 400 Outlets:; +#X obj 491 41 cnv 15 460 310 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 501 326 pix_opencv_matchshape; +#X obj 501 14 gemhead; +#X obj 501 377 pix_texture; +#X obj 501 398 rectangle 4 3; +#X msg 570 103 contour 4 2 0 0 0 1 1 1 1 0; +#X msg 556 239 method \$1; +#X floatatom 556 217 5 0 0 0 - - -; +#X msg 580 153 template 4 2 0 0 0 1 1 1 1 0; +#X msg 590 173 template 4 2 2 0 4 1 1 1 1 0; +#X msg 560 83 contour 6 2 0 0 0 1 1 1 1 0 -0.5 -0.5; +#X floatatom 556 267 5 0 0 0 - - -; +#X msg 556 287 threshold \$1; +#X msg 550 64 contour 4 2 2 0 4 1 1 1 1 0; +#X obj 624 357 route match_vec template_vec; +#X obj 624 407 unpack; +#X text 631 390 found corresponding contour; +#X floatatom 624 435 5 0 0 0 - - -; +#X floatatom 659 435 5 0 0 0 - - -; +#X text 623 448 id; +#X text 659 448 absolute difference from template; +#X floatatom 706 378 5 0 0 0 - - -; +#X text 740 375 number of loaded contour; +#X text 593 213 method to compare shape (1 \, 2 or 3 \, please refer +to OpenCV doc for details); +#X text 37 193 This external uses cv::matchShapes function. Documentation +is here : http://docs.opencv.org/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html?highlight=matchshapes#matchshapes +; +#X text 588 266 threshold behind wich a shape is recognized; +#X text 575 135 template message add a template to library; +#X text 549 46 contour message compare the contour to each loaded contour +; +#X text 37 103 [pix_opencv_matchshape] compares input images or input +contours to a library of images (or contours). It sends out the id +of the closest found behind a threshold.; +#X text 37 143 You can use pix_opencv_contour_convexhull2 to find all +contours in the image and send them to pix_opencv_matchshape to recognize +it.; +#X text 20 79 Description: compares shapes; +#X text 45 24 Synopsis: [pix_opencv_matchshape]; +#X text 67 40 Class: pix_opencv; +#X text 76 296 none; +#X text 40 353 Inlet 1: message: template ; +#X text 40 363 Inlet 1: message: contour ; +#X text 40 373 Inlet 1: message: method ; +#X text 40 383 Inlet 1: message: threshold ; +#X text 34 413 Outlet 1: input image; +#X text 40 343 Inlet 1: image; +#X obj 364 368 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#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 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 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 369 407 pd gemwin; +#X msg 369 388 create; +#X text 365 367 Create window:; +#X connect 8 0 10 0; +#X connect 8 1 21 0; +#X connect 9 0 8 0; +#X connect 10 0 11 0; +#X connect 12 0 8 0; +#X connect 13 0 8 0; +#X connect 14 0 13 0; +#X connect 15 0 8 0; +#X connect 16 0 8 0; +#X connect 17 0 8 0; +#X connect 18 0 19 0; +#X connect 19 0 8 0; +#X connect 20 0 8 0; +#X connect 21 0 22 0; +#X connect 21 1 28 0; +#X connect 22 0 24 0; +#X connect 22 1 25 0; +#X connect 48 0 49 0; +#X connect 49 0 48 0; diff --git a/help/pix_opencv_morphology-help.pd b/help/pix_opencv_morphology-help.pd new file mode 100644 index 0000000..e6276d6 --- /dev/null +++ b/help/pix_opencv_morphology-help.pd @@ -0,0 +1,163 @@ +#N canvas 539 121 1064 885 10; +#X obj 369 412 cnv 15 450 150 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X floatatom 488 504 5 0 0 0 - - -; +#X obj 514 418 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X msg 472 462 shape 2; +#X msg 462 442 shape 1; +#X msg 482 481 shape 3; +#X msg 456 418 mode \$1; +#X text 519 443 use rectangle structuring element; +#X text 537 478 use cross-shaped structuring element; +#X text 531 460 use elliptic structuring element; +#X text 537 418 switch open/close and erode/dilate modes; +#X text 541 502 number of iterations -10/+10 (be carefull); +#X obj 374 532 pix_opencv_morphology; +#X text -98 98 written by Lluis Gomez i Bigorda ( lluisgomez@hangar.org +); +#X text -98 59 pdp_opencv_morphology : morphology filter ( erosion +/ dilatation ); +#X text -98 84 used as a filter to focus on bright or dark zones; +#X obj -96 -31 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#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; +#N canvas 87 154 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 obj 160 260 gemwin; +#X msg 159 207 create \, 1; +#X msg 235 208 destroy; +#X msg 281 180 frame 25; +#X obj 162 170 t b b b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 10 0; +#X connect 2 1 4 0; +#X connect 2 1 8 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 7 0; +#X connect 10 2 9 0; +#X restore -91 13 pd gemwin; +#X msg -91 -8 create; +#X text -90 -26 Create window and render; +#X obj 493 -11 gemhead; +#X obj 374 642 pix_texture; +#X obj 374 661 square 2; +#X obj 222 638 pix_texture; +#X obj 222 666 square 2; +#X obj 374 316 separator; +#X obj 505 16 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 562 191 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 544 156 5 0 10000 1 frame# - -; +#X obj 505 45 openpanel; +#X msg 505 65 open \$1; +#X obj 493 174 pix_film; +#X msg 511 108 auto \$1; +#X obj 511 90 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X msg 606 91 colorspace RGBA; +#X msg 711 91 colorspace RGB; +#X msg 815 91 colorspace Grey; +#X obj 606 63 loadbang; +#X obj 373 287 pix_separator; +#X obj 222 319 separator; +#X obj 222 290 pix_separator; +#X obj 222 354 translateXYZ -2 0 0; +#X obj 374 351 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 315 244 pd vswitch; +#X obj 383 244 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 256 172 pix_video; +#X obj 256 -16 gemhead; +#X msg 295 97 device 0; +#X msg 304 128 driver 1; +#X msg 281 43 dialog; +#X msg 286 73 device /dev/dv1394-0; +#X obj 316 267 pix_rgba; +#X connect 1 0 12 1; +#X connect 2 0 6 0; +#X connect 3 0 12 0; +#X connect 4 0 12 0; +#X connect 5 0 12 0; +#X connect 6 0 12 0; +#X connect 12 0 21 0; +#X connect 17 0 18 0; +#X connect 18 0 17 0; +#X connect 20 0 31 0; +#X connect 21 0 22 0; +#X connect 23 0 24 0; +#X connect 25 0 42 0; +#X connect 26 0 29 0; +#X connect 27 0 28 0; +#X connect 28 0 31 1; +#X connect 29 0 30 0; +#X connect 30 0 31 0; +#X connect 31 0 43 1; +#X connect 31 2 27 0; +#X connect 32 0 31 0; +#X connect 33 0 32 0; +#X connect 34 0 31 0; +#X connect 34 0 45 0; +#X connect 35 0 31 0; +#X connect 36 0 31 0; +#X connect 37 0 34 0; +#X connect 37 0 33 0; +#X connect 38 0 25 0; +#X connect 39 0 41 0; +#X connect 40 0 39 0; +#X connect 41 0 23 0; +#X connect 42 0 12 0; +#X connect 43 0 51 0; +#X connect 44 0 43 2; +#X connect 45 0 43 0; +#X connect 46 0 45 0; +#X connect 47 0 45 0; +#X connect 48 0 45 0; +#X connect 49 0 45 0; +#X connect 50 0 45 0; +#X connect 51 0 40 0; +#X connect 51 0 38 0; diff --git a/help/pix_opencv_motempl-help.pd b/help/pix_opencv_motempl-help.pd new file mode 100644 index 0000000..4d5d485 --- /dev/null +++ b/help/pix_opencv_motempl-help.pd @@ -0,0 +1,231 @@ +#N canvas 431 23 1249 684 10; +#X obj 535 783 pix_texture; +#X obj 535 811 square 2; +#X obj 504 497 cnv 15 550 251 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X floatatom 669 841 5 0 0 0 - - -; +#X floatatom 704 841 5 0 0 0 - - -; +#X floatatom 741 841 5 0 0 0 - - -; +#X floatatom 775 841 5 0 0 0 - - -; +#X floatatom 698 890 5 0 0 0 - - -; +#X floatatom 733 890 5 0 0 0 - - -; +#X floatatom 770 890 5 0 0 0 - - -; +#X floatatom 804 890 5 0 0 0 - - -; +#X floatatom 742 946 5 0 0 0 - - -; +#X floatatom 777 946 5 0 0 0 - - -; +#X floatatom 814 946 5 0 0 0 - - -; +#X floatatom 848 946 5 0 0 0 - - -; +#X obj 666 812 unpack 0 0 0 0 0; +#X obj 695 861 unpack 0 0 0 0 0; +#X obj 739 917 unpack 0 0 0 0 0; +#X floatatom 812 840 5 0 0 0 - - -; +#X floatatom 842 890 5 0 0 0 - - -; +#X floatatom 886 946 5 0 0 0 - - -; +#X text 726 779 For each motion component component; +#X text 788 812 (-1) means the whole image; +#X text 863 838 Xcenter Ycenter Width Height Angle; +#X text 884 889 Xcenter Ycenter Width Height Angle; +#X text 931 945 Xcenter Ycenter Width Height Angle; +#X floatatom 649 621 5 0 0 0 - - -; +#X floatatom 682 595 5 0 0 0 - - -; +#X text 689 623 Threshold value. (default 30); +#X msg 577 594 mhi_duration \$1; +#X floatatom 670 524 5 0 0 0 - - -; +#X msg 555 523 max_time_delta \$1; +#X floatatom 679 548 5 0 0 0 - - -; +#X msg 562 545 min_time_delta \$1; +#X floatatom 703 572 5 0 0 0 - - -; +#X msg 572 569 frame_buffer_num \$1; +#X floatatom 676 639 5 0 0 0 - - -; +#X floatatom 687 658 5 0 0 0 - - -; +#X text 727 660 Max size of the motion component (default 500); +#X text 717 639 Min size of the motion component (default 50); +#X text 740 570 Number of frames in the buffer. (default 4); +#X text 709 522 Max time delta in seconds. (default 0.5); +#X text 720 547 Min time delta in seconds. (default 0.05); +#X obj 533 694 pix_opencv_motempl; +#X msg 536 502 aperture \$1; +#X text 712 503 aperture ( 3 \, 5 or 7 \, default 3 ); +#X msg 616 502 3; +#X msg 649 502 5; +#X msg 680 502 7; +#X text 719 596 Maximal duration of motion track in seconds; +#X text 59 153 pix_opencv_motempl : opencv motion detection based on +movement history; +#X obj 666 761 route -1 1 2 3 4; +#X obj 61 49 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#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; +#N canvas 87 154 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 obj 160 260 gemwin; +#X msg 159 207 create \, 1; +#X msg 235 208 destroy; +#X msg 281 180 frame 25; +#X obj 162 170 t b b b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 10 0; +#X connect 2 1 4 0; +#X connect 2 1 8 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 7 0; +#X connect 10 2 9 0; +#X restore 66 93 pd gemwin; +#X msg 66 72 destroy; +#X text 67 54 Create window and render; +#X obj 650 69 gemhead; +#X obj 379 718 pix_texture; +#X obj 379 746 square 2; +#X obj 531 396 separator; +#X obj 662 96 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 719 271 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 701 236 5 0 10000 1 frame# - -; +#X obj 662 125 openpanel; +#X msg 662 145 open \$1; +#X obj 650 254 pix_film; +#X msg 668 188 auto \$1; +#X obj 668 170 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 +1; +#X msg 763 171 colorspace RGBA; +#X msg 868 171 colorspace RGB; +#X msg 972 171 colorspace Grey; +#X obj 763 143 loadbang; +#X obj 530 367 pix_separator; +#X obj 379 399 separator; +#X obj 379 370 pix_separator; +#X obj 379 434 translateXYZ -2 0 0; +#X obj 531 431 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 472 324 pd vswitch; +#X obj 540 324 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 413 252 pix_video; +#X obj 413 64 gemhead; +#X msg 452 177 device 0; +#X msg 461 208 driver 1; +#X msg 438 123 dialog; +#X msg 443 153 device /dev/dv1394-0; +#X obj 471 350 pix_rgba; +#X obj 528 462 pix_resize 320 240; +#X text 59 273 bugs and comments write Lluis Gomez i Bigorda ( lluisgomez@hangar.org +); +#X text 59 193 pix_opencv_motempl works better with small connected +components moving inside the image .... a good setup is for example +a zenital camera with wider lens or shooting a stage from a viewpoint +from far (5 o more meters of distance).; +#X connect 0 0 1 0; +#X connect 15 0 3 0; +#X connect 15 1 4 0; +#X connect 15 2 5 0; +#X connect 15 3 6 0; +#X connect 15 4 18 0; +#X connect 16 0 7 0; +#X connect 16 1 8 0; +#X connect 16 2 9 0; +#X connect 16 3 10 0; +#X connect 16 4 19 0; +#X connect 17 0 11 0; +#X connect 17 1 12 0; +#X connect 17 2 13 0; +#X connect 17 3 14 0; +#X connect 17 4 20 0; +#X connect 26 0 43 1; +#X connect 27 0 29 0; +#X connect 29 0 43 0; +#X connect 30 0 31 0; +#X connect 31 0 43 0; +#X connect 32 0 33 0; +#X connect 33 0 43 0; +#X connect 34 0 35 0; +#X connect 35 0 43 0; +#X connect 36 0 43 2; +#X connect 37 0 43 3; +#X connect 43 0 0 0; +#X connect 43 1 51 0; +#X connect 44 0 43 0; +#X connect 46 0 44 0; +#X connect 47 0 44 0; +#X connect 48 0 44 0; +#X connect 51 0 15 0; +#X connect 51 1 16 0; +#X connect 51 2 17 0; +#X connect 53 0 54 0; +#X connect 54 0 53 0; +#X connect 56 0 65 0; +#X connect 57 0 58 0; +#X connect 59 0 76 0; +#X connect 60 0 63 0; +#X connect 61 0 62 0; +#X connect 62 0 65 1; +#X connect 63 0 64 0; +#X connect 64 0 65 0; +#X connect 65 0 77 1; +#X connect 65 2 61 0; +#X connect 66 0 65 0; +#X connect 67 0 66 0; +#X connect 68 0 65 0; +#X connect 68 0 79 0; +#X connect 69 0 65 0; +#X connect 70 0 65 0; +#X connect 71 0 68 0; +#X connect 71 0 67 0; +#X connect 72 0 59 0; +#X connect 73 0 75 0; +#X connect 74 0 73 0; +#X connect 75 0 57 0; +#X connect 76 0 86 0; +#X connect 77 0 85 0; +#X connect 78 0 77 2; +#X connect 79 0 77 0; +#X connect 80 0 79 0; +#X connect 81 0 79 0; +#X connect 82 0 79 0; +#X connect 83 0 79 0; +#X connect 84 0 79 0; +#X connect 85 0 74 0; +#X connect 85 0 72 0; +#X connect 86 0 43 0; diff --git a/help/pix_opencv_of_bm-help.pd b/help/pix_opencv_of_bm-help.pd new file mode 100644 index 0000000..99db7d4 --- /dev/null +++ b/help/pix_opencv_of_bm-help.pd @@ -0,0 +1,214 @@ +#N canvas 64 85 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 text 979 189 with a great help from Mateu Batle & Alberto de Rodrigo +from the iBit foundation.; +#X text 978 153 the main purpose of this object is to calculate the +average direction and the intensity of the movement in a video stream. +; +#X text 979 213 comments to ydegoyon@gmail.com; +#X text 979 137 pix_opencv_of_bm : Block Matching optical flow algorithm. +; +#X obj 426 308 cnv 15 600 350 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 455 540 pix_opencv_of_bm; +#X obj 560 572 unpack f f; +#X floatatom 646 572 5 0 0 0 - - -, f 5; +#X floatatom 648 592 5 0 0 0 - - -, f 5; +#X text 688 571 largest amplitude of movement; +#X text 688 592 angle of the block with the maximum movement; +#X text 686 604 ( in degrees [-180 \, 180]); +#X floatatom 507 621 5 0 0 0 - - -, f 5; +#X text 549 642 marked with a white arrow on the stream; +#X text 549 618 average angle of the blocks movement; +#X text 548 630 ( in degrees [-180 \, 180]); +#X obj 600 463 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 515 461 nightmode \$1; +#X floatatom 573 332 5 0 0 0 - - -, f 5; +#X msg 463 331 blocksize \$1 \$1; +#X floatatom 585 355 5 0 0 0 - - -, f 5; +#X floatatom 599 381 5 0 0 0 - - -, f 5; +#X msg 475 354 shiftsize \$1 \$1; +#X msg 489 380 maxrange \$1 \$1; +#X floatatom 589 408 5 0 0 0 - - -, f 5; +#X msg 502 406 threshold \$1; +#X obj 621 492 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 521 491 useprevious \$1; +#X text 614 332 set blocksize (width height) ( default 20x20 ); +#X text 625 354 set shiftsize (width height) ( default 20x20 ); +#X text 639 381 set maxrange (width height) ( default 20x10 ); +#X text 643 490 use previous results ( default : 0 \, surprising results +when on ); +#X msg 505 435 minblocks \$1; +#X floatatom 592 436 5 0 0 0 - - -, f 5; +#X text 619 464 set nightmode; +#X text 636 430 minimum nuber of blocks to detect the movement; +#X text 631 405 threshold value for the detection of movement ( default +10 ); +#X text 633 443 ( default 10 ); +#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# - -, f 5; +#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 50 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 294 659 pix_texture; +#X obj 294 687 square 2; +#X obj 455 664 pix_texture; +#X text 504 146 this object can work on small frames unless you have +a very powerful machine; +#X obj 456 688 square 2; +#X obj 295 201 pix_separator; +#X obj 454 205 pix_separator; +#X obj 384 154 pix_resize 320 240; +#X obj 386 180 pix_rgba; +#X connect 1 0 2 0; +#X connect 2 0 1 0; +#X connect 9 0 69 0; +#X connect 9 1 16 0; +#X connect 9 2 10 0; +#X connect 10 0 11 0; +#X connect 10 1 12 0; +#X connect 20 0 21 0; +#X connect 21 0 9 0; +#X connect 22 0 23 0; +#X connect 23 0 9 0; +#X connect 24 0 26 0; +#X connect 25 0 27 0; +#X connect 26 0 9 0; +#X connect 27 0 9 0; +#X connect 28 0 29 0; +#X connect 29 0 9 0; +#X connect 30 0 31 0; +#X connect 31 0 9 0; +#X connect 36 0 9 0; +#X connect 37 0 36 0; +#X connect 42 0 49 0; +#X connect 43 0 58 0; +#X connect 44 0 47 0; +#X connect 45 0 46 0; +#X connect 46 0 49 1; +#X connect 47 0 48 0; +#X connect 48 0 49 0; +#X connect 49 0 59 1; +#X connect 49 2 45 0; +#X connect 50 0 49 0; +#X connect 51 0 50 0; +#X connect 52 0 49 0; +#X connect 52 0 61 0; +#X connect 53 0 49 0; +#X connect 54 0 49 0; +#X connect 55 0 52 0; +#X connect 55 0 51 0; +#X connect 56 0 57 0; +#X connect 57 0 67 0; +#X connect 58 0 9 0; +#X connect 59 0 74 0; +#X connect 60 0 59 2; +#X connect 61 0 59 0; +#X connect 62 0 61 0; +#X connect 63 0 61 0; +#X connect 64 0 61 0; +#X connect 65 0 61 0; +#X connect 66 0 61 0; +#X connect 67 0 68 0; +#X connect 69 0 71 0; +#X connect 72 0 56 0; +#X connect 73 0 43 0; +#X connect 74 0 75 0; +#X connect 75 0 72 0; +#X connect 75 0 73 0; diff --git a/help/pix_opencv_of_hs-help.pd b/help/pix_opencv_of_hs-help.pd new file mode 100644 index 0000000..c0baf2c --- /dev/null +++ b/help/pix_opencv_of_hs-help.pd @@ -0,0 +1,207 @@ +#N canvas 1644 152 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 983 98 pd gemwin; +#X msg 983 77 create; +#X text 986 59 Create window and render; +#X obj 427 308 cnv 15 600 300 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 559 504 unpack f f; +#X floatatom 645 504 5 0 0 0 - - -; +#X floatatom 647 524 5 0 0 0 - - -; +#X text 687 503 largest amplitude of movement; +#X text 687 524 angle of the block with the maximum movement; +#X text 685 536 ( in degrees [-180 \, 180]); +#X floatatom 506 553 5 0 0 0 - - -; +#X text 548 574 marked with a white arrow on the stream; +#X text 548 550 average angle of the blocks movement; +#X text 547 562 ( 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 613 pix_texture; +#X obj 293 641 square 2; +#X obj 454 618 pix_texture; +#X text 504 146 this object can work on small frames unless you have +a very powerful machine; +#X obj 455 642 square 2; +#X obj 295 201 pix_separator; +#X obj 454 205 pix_separator; +#X obj 454 472 pix_opencv_of_hs; +#X obj 596 402 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 511 400 nightmode \$1; +#X floatatom 557 323 5 0 0 0 - - -; +#X floatatom 585 347 5 0 0 0 - - -; +#X msg 498 345 threshold \$1; +#X obj 620 433 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 520 432 useprevious \$1; +#X text 642 431 use previous results ( default : 0 \, surprising results +when on ); +#X msg 501 374 minblocks \$1; +#X floatatom 588 375 5 0 0 0 - - -; +#X text 615 403 set nightmode; +#X text 632 369 minimum nuber of blocks to detect the movement; +#X msg 487 320 lambda \$1; +#X text 600 320 set Lagragian multiplier ( default 1 ); +#X text 629 382 ( default 10 ); +#X text 627 344 threshold value for the detection of movement ( default +100 ); +#X text 971 253 with a great help from Mateu Batle & Alberto de Rodrigo +from the iBit foundation.; +#X text 970 217 the main purpose of this object is to calculate the +average direction and the intensity of the movement in a video stream. +; +#X text 971 277 comments to ydegoyon@gmail.com; +#X text 972 132 pix_opencv_of_hs : Haron and Schunck optical flow algorithm. +; +#X obj 385 160 pix_resize 320 240; +#X obj 385 182 pix_rgba; +#X text 971 153 IMPORTANT: this object is quite experimental. For OpticalFlow +analisys we recommend [pix_opencv_of_bm]; +#X obj 975 184 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 27 0 22 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 47 0; +#X connect 32 0 68 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 47 0 42 0; +#X connect 47 1 11 0; +#X connect 47 2 5 0; +#X connect 48 0 49 0; +#X connect 49 0 47 0; +#X connect 50 0 60 0; +#X connect 51 0 52 0; +#X connect 52 0 47 0; +#X connect 53 0 54 0; +#X connect 54 0 47 0; +#X connect 56 0 47 0; +#X connect 57 0 56 0; +#X connect 60 0 47 0; +#X connect 68 0 69 0; +#X connect 69 0 45 0; +#X connect 69 0 46 0; diff --git a/help/pix_opencv_of_lk-help.pd b/help/pix_opencv_of_lk-help.pd new file mode 100644 index 0000000..bdbf2c9 --- /dev/null +++ b/help/pix_opencv_of_lk-help.pd @@ -0,0 +1,205 @@ +#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; diff --git a/help/pix_opencv_opticalflow-help.pd b/help/pix_opencv_opticalflow-help.pd new file mode 100644 index 0000000..62e353a --- /dev/null +++ b/help/pix_opencv_opticalflow-help.pd @@ -0,0 +1,91 @@ +#N canvas 922 201 794 766 10; +#X obj 472 35 cnv 15 300 500 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 11 56 cnv 15 450 200 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 11 307 cnv 15 450 380 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 13 315 Inlets:; +#X obj 11 267 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 20 266 Arguments:; +#X text 12 356 Outlets:; +#X text 478 20 Example:; +#X text 58 21 Class: pix_opencv; +#X text 66 276 none; +#X obj 353 315 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 1 122 450 300 gemwin 0; +#X obj 132 156 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 198 112 destroy; +#X msg 132 132 reset \, dimen 640 480 \, create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 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 358 354 pd gemwin; +#X msg 358 335 destroy; +#X text 354 314 Create window:; +#X text 354 314 Create window:; +#X text 25 367 Outlet 1: gemlist output; +#X text 16 719 bug \, feedback \, comment... on the pd-list; +#X obj 476 233 cnv 15 280 80 empty empty empty 20 12 0 14 -4034 -66577 +0; +#X obj 487 57 gemhead 1; +#X floatatom 542 237 5 0 0 0 - - -, f 5; +#X obj 625 121 loadbang; +#X text 487 387 color legend :; +#X text 520 404 yellow = bounding box; +#X text 526 414 green = contour; +#X text 532 425 blue = convexhull; +#X text 532 437 pink = convexhull edge with defects; +#X text 538 449 red = farthest point from convexhull; +#X obj 554 32 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 542 254 gain \$1; +#X text 37 5 Synopsis: [pix_opencv_opticalflow]; +#X text 11 60 Description: compute optical flow; +#X text 30 329 Inlet 1: RGBA image; +#X text 30 339 Inlet 1: message: gain [float]; +#X text 25 377 Outlet 2: info output; +#X text 26 699 by antoine villeret - 2013; +#X obj 487 171 pix_rgba; +#X obj 487 280 pix_opencv_opticalflow; +#X obj 487 347 pix_texture; +#X obj 487 367 rectangle 5.333 4; +#X msg 545 319 quality 0; +#X obj 545 300 loadbang; +#X obj 487 193 pix_resize 320 240; +#X msg 617 253 normalize \$1; +#X obj 617 233 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 625 141 1; +#X text 37 74 [pix_opencv_opticalflow] computes optical flow; +#X obj 487 135 pix_video; +#X connect 11 0 12 0; +#X connect 12 0 11 0; +#X connect 18 0 46 0; +#X connect 19 0 28 0; +#X connect 20 0 44 0; +#X connect 27 0 18 0; +#X connect 28 0 36 0; +#X connect 35 0 41 0; +#X connect 36 0 37 0; +#X connect 37 0 38 0; +#X connect 39 0 37 0; +#X connect 40 0 39 0; +#X connect 41 0 36 0; +#X connect 42 0 36 0; +#X connect 43 0 42 0; +#X connect 44 0 19 0; +#X connect 46 0 35 0; diff --git a/help/pix_opencv_pgh_compare-help.pd b/help/pix_opencv_pgh_compare-help.pd new file mode 100644 index 0000000..22e21d0 --- /dev/null +++ b/help/pix_opencv_pgh_compare-help.pd @@ -0,0 +1,225 @@ +#N canvas 343 247 1154 642 10; +#X obj 897 4 gemhead; +#X obj 372 500 pix_texture; +#X obj 372 528 square 2; +#X obj 18 26 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#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; +#N canvas 87 154 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 obj 160 260 gemwin; +#X msg 159 207 create \, 1; +#X msg 235 208 destroy; +#X msg 281 180 frame 25; +#X obj 162 170 t b b b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 10 0; +#X connect 2 1 4 0; +#X connect 2 1 8 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 7 0; +#X connect 10 2 9 0; +#X restore 24 69 pd gemwin; +#X msg 24 48 create; +#X text 25 30 Create window and render; +#X obj 363 232 cnv 15 700 250 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 553 -63 bng 25 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 610 112 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 592 77 5 0 10000 1 frame# - -; +#X obj 553 -34 openpanel; +#X msg 553 -14 open \$1; +#X obj 552 94 pix_film; +#X msg 559 29 auto \$1; +#X obj 559 11 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X floatatom 506 439 30 0 0 0 - - -; +#X text 511 422 distance; +#X obj 730 457 route 1; +#X obj 782 457 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 783 437 hsl 128 15 0 0.2 0 0 cdist empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X text 805 455 criteria value; +#X floatatom 701 439 10 0 0 0 - - -; +#X msg 478 319 criteria \$1; +#X obj 562 320 r cdist; +#X text 615 314 criteria value under which the contour is recongnized +; +#X msg 463 255 minsize \$1; +#X floatatom 537 256 5 0 0 0 - - -; +#X text 578 256 minimum size of selected contours ( default : 10x10 +); +#X msg 480 290 clear; +#X text 588 290 recalculates the pattern contour; +#X obj 529 291 r reset; +#X text 600 -61 playing a video file; +#X text 618 -48 ( try estrella.mov ); +#X msg 831 -72 bang; +#X text 877 -79 loading a pattern image; +#X text 876 -66 ( try estrella.jpg ); +#X text 830 -97 Compare to a pattern; +#X obj 831 4 pix_image; +#X obj 833 -45 openpanel; +#X obj 831 154 separator; +#X msg 832 -18 open \$1; +#X floatatom 984 121 5 0 0 0 - - -; +#X obj 1052 94 loadbang; +#X msg 1021 94 160; +#X obj 953 93 r tresh; +#X floatatom 507 187 5 0 0 0 - - -; +#X obj 575 185 loadbang; +#X msg 547 185 160; +#X obj 508 205 s tresh; +#X obj 962 153 pix_texture; +#X obj 830 120 pix_opencv_threshold; +#X obj 374 206 pix_opencv_threshold; +#X obj 962 181 square 2; +#X obj 830 66 translateXYZ -2 0 0; +#X obj 831 34 pix_resize 320 240; +#X obj 831 181 translateXYZ 4 0 0; +#X obj 373 158 pix_resize 320 240; +#X obj 374 356 pix_opencv_pgh_compare; +#X text 17 -80 pix_opencv_pgh_compare :: compare contours calculating +their PGH histograms.; +#X text 17 -53 Written by Yves Degoyon ( ydegoyon@gmail.com ) using +example code from OpenCV book; +#X obj 683 458 < 0.05; +#X text 612 326 ( adjust to your situation : default : 0.05 ); +#X obj 616 0 loadbang; +#X msg 616 25 colorspace RGBA; +#X msg 720 25 colorspace RGB; +#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 374 136 pd vswitch; +#X obj 443 135 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 373 83 pix_video; +#X obj 373 -54 gemhead; +#X msg 411 25 device 0; +#X msg 420 56 driver 1; +#X msg 397 -29 dialog; +#X msg 402 1 device /dev/dv1394-0; +#X obj 544 379 unpack f f f f f; +#X text 658 379 position of detected contours; +#X floatatom 567 401 5 0 0 0 - - -; +#X floatatom 605 402 5 0 0 0 - - -; +#X floatatom 645 401 5 0 0 0 - - -; +#X floatatom 688 402 5 0 0 0 - - -; +#X text 574 414 X; +#X text 613 413 Y; +#X text 645 413 width; +#X text 686 414 height; +#X obj 374 182 pix_rgba; +#X obj 831 90 pix_rgba; +#X obj 372 109 translateXYZ 2 0 0; +#X connect 0 0 38 0; +#X connect 1 0 2 0; +#X connect 4 0 5 0; +#X connect 5 0 4 0; +#X connect 8 0 11 0; +#X connect 9 0 10 0; +#X connect 10 0 13 1; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 13 0 66 1; +#X connect 13 2 9 0; +#X connect 14 0 13 0; +#X connect 15 0 14 0; +#X connect 16 0 61 0; +#X connect 18 0 19 0; +#X connect 20 0 22 0; +#X connect 20 0 61 1; +#X connect 23 0 58 0; +#X connect 24 0 23 0; +#X connect 26 0 58 0; +#X connect 27 0 26 0; +#X connect 29 0 58 0; +#X connect 31 0 29 0; +#X connect 34 0 39 0; +#X connect 38 0 55 0; +#X connect 39 0 41 0; +#X connect 40 0 56 0; +#X connect 41 0 38 0; +#X connect 42 0 51 2; +#X connect 43 0 44 0; +#X connect 44 0 42 0; +#X connect 45 0 42 0; +#X connect 46 0 49 0; +#X connect 46 0 52 2; +#X connect 47 0 48 0; +#X connect 48 0 46 0; +#X connect 50 0 53 0; +#X connect 51 0 40 0; +#X connect 51 0 50 0; +#X connect 51 0 58 1; +#X connect 52 0 58 0; +#X connect 54 0 85 0; +#X connect 55 0 54 0; +#X connect 56 0 13 0; +#X connect 57 0 84 0; +#X connect 58 0 1 0; +#X connect 58 1 16 0; +#X connect 58 2 74 0; +#X connect 61 0 18 0; +#X connect 63 0 64 0; +#X connect 64 0 13 0; +#X connect 65 0 13 0; +#X connect 66 0 57 0; +#X connect 67 0 66 2; +#X connect 68 0 86 0; +#X connect 69 0 68 0; +#X connect 70 0 68 0; +#X connect 71 0 68 0; +#X connect 72 0 68 0; +#X connect 73 0 68 0; +#X connect 74 1 76 0; +#X connect 74 2 77 0; +#X connect 74 3 78 0; +#X connect 74 4 79 0; +#X connect 84 0 52 0; +#X connect 85 0 51 0; +#X connect 86 0 66 0; diff --git a/help/pix_opencv_surf-help.pd b/help/pix_opencv_surf-help.pd new file mode 100644 index 0000000..8bf97c4 --- /dev/null +++ b/help/pix_opencv_surf-help.pd @@ -0,0 +1,220 @@ +#N canvas 126 104 1266 876 10; +#X obj 361 637 pix_texture; +#X obj 32 -122 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 194 173 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 156 138 dimen 320 240; +#X msg 252 139 frame 25; +#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 10 0; +#X connect 9 2 11 0; +#X connect 10 0 0 0; +#X connect 11 0 0 0; +#X restore 39 -76 pd gemwin; +#X msg 39 -97 create; +#X text 40 -118 Create window and render; +#X obj 340 180 cnv 15 600 450 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 485 575 unpack f f; +#X floatatom 486 600 5 0 0 0 - - -; +#X floatatom 544 601 5 0 0 0 - - -; +#X text 487 616 X; +#X text 542 617 Y; +#X obj 484 549 route 1 2 3 4 5 6 7 8 9 10; +#X obj 952 123 gemmouse; +#X obj 1008 230 f; +#X obj 978 229 f; +#X obj 1022 201 t b b; +#X obj 975 274 pack f f; +#X obj 998 151 route 1; +#X msg 1019 176 bang; +#X floatatom 969 251 5 0 0 0 - - -; +#X floatatom 1022 254 5 0 0 0 - - -; +#X obj 360 524 pix_opencv_surf; +#X obj 467 252 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 382 253 nightmode \$1; +#X text 486 256 set nightmode; +#X msg 429 316 mark \$1 \$2; +#X msg 435 339 delete \$1; +#X text 628 340 delete a marker; +#X msg 446 362 clear; +#X text 494 363 delete all markers; +#X msg 461 392 maxmove \$1; +#X floatatom 537 394 5 0 0 0 - - -; +#X text 502 316 mark %x %y : mark a point to track ( max points : 10 +); +#X text 546 441 make a delaunay with all points; +#X msg 465 439 delaunay on; +#X msg 467 460 delaunay off; +#X text 577 471 make a delaunay with point 1 and a tolerance of 50 +( all points which color is in that range will be included in the delaunay) +; +#X obj 500 339 hradio 15 1 0 8 empty empty empty 0 -8 0 10 -262144 +-1 -1 0; +#X msg 473 483 pdelaunay 1 50; +#X msg 363 224 hessian \$1; +#X floatatom 438 225 5 0 0 0 - - -; +#X floatatom 546 416 5 0 0 0 - - -; +#X msg 464 415 ftolerance \$1; +#X text 589 416 frame tolerance for point recognition ( default : 5 +); +#X msg 406 272 mark all; +#X text 476 273 mark all points; +#X msg 416 293 mark none; +#X text 486 294 suppress all marks; +#X text 635 -81 written by Lluis Gomez i Bigorda ( lluisgomez@hangar.org +) and Yves Degoyon ( ydegoyon@gmail.com ); +#X text 633 -104 pix_opencv_surf : SURF ( Speed Up Robust Features +) points detection and tracking; +#X text 478 224 hessian threshold ( default 1000 ); +#X obj 360 669 rectangle 5.3 4; +#X obj 515 -102 gemhead; +#X obj 527 -75 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 584 100 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 566 65 5 0 10000 1 frame# - -; +#X obj 527 -46 openpanel; +#X msg 527 -26 open \$1; +#X obj 515 83 pix_film; +#X msg 533 17 auto \$1; +#X obj 533 -1 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X msg 628 0 colorspace RGBA; +#X msg 733 0 colorspace RGB; +#X msg 630 24 colorspace Grey; +#X obj 628 -28 loadbang; +#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 357 114 pd vswitch; +#X obj 429 110 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 340 63 pix_video; +#X obj 342 -91 gemhead; +#X msg 379 -12 device 0; +#X msg 388 19 driver 1; +#X msg 365 -66 dialog; +#X msg 370 -36 device /dev/dv1394-0; +#X obj 356 140 pix_resize 320 240; +#X text 575 392 max movement of a marker ( default 20 pixels ); +#X obj 357 161 pix_rgba; +#X connect 0 0 51 0; +#X connect 2 0 3 0; +#X connect 3 0 2 0; +#X connect 6 0 7 0; +#X connect 6 1 8 0; +#X connect 11 0 6 0; +#X connect 12 0 14 1; +#X connect 12 1 13 1; +#X connect 12 2 17 0; +#X connect 13 0 16 1; +#X connect 13 0 20 0; +#X connect 14 0 16 0; +#X connect 14 0 19 0; +#X connect 15 0 14 0; +#X connect 15 1 13 0; +#X connect 16 0 25 0; +#X connect 17 0 18 0; +#X connect 18 0 15 0; +#X connect 21 0 0 0; +#X connect 21 1 11 0; +#X connect 22 0 23 0; +#X connect 23 0 21 0; +#X connect 25 0 21 0; +#X connect 26 0 21 0; +#X connect 28 0 21 0; +#X connect 30 0 21 0; +#X connect 31 0 30 0; +#X connect 34 0 21 0; +#X connect 35 0 21 0; +#X connect 37 0 26 0; +#X connect 38 0 21 0; +#X connect 39 0 21 0; +#X connect 40 0 39 0; +#X connect 41 0 42 0; +#X connect 42 0 21 0; +#X connect 44 0 21 0; +#X connect 46 0 21 0; +#X connect 52 0 58 0; +#X connect 53 0 56 0; +#X connect 54 0 55 0; +#X connect 55 0 58 1; +#X connect 56 0 57 0; +#X connect 57 0 58 0; +#X connect 58 0 65 1; +#X connect 58 2 54 0; +#X connect 59 0 58 0; +#X connect 60 0 59 0; +#X connect 61 0 58 0; +#X connect 61 0 67 0; +#X connect 62 0 58 0; +#X connect 63 0 58 0; +#X connect 64 0 61 0; +#X connect 64 0 60 0; +#X connect 65 0 73 0; +#X connect 66 0 65 2; +#X connect 67 0 65 0; +#X connect 68 0 67 0; +#X connect 69 0 67 0; +#X connect 70 0 67 0; +#X connect 71 0 67 0; +#X connect 72 0 67 0; +#X connect 73 0 75 0; +#X connect 75 0 21 0; diff --git a/help/pix_opencv_threshold-help.pd b/help/pix_opencv_threshold-help.pd new file mode 100644 index 0000000..9c72dd5 --- /dev/null +++ b/help/pix_opencv_threshold-help.pd @@ -0,0 +1,169 @@ +#N canvas 562 90 1077 791 10; +#X obj 174 365 cnv 15 600 180 empty empty empty 20 12 0 14 -4034 -66577 +0; +#X floatatom 300 424 5 0 0 0 - - -; +#X msg 503 503 mode \$1; +#X floatatom 254 405 5 0 0 0 - - -; +#X text 254 388 Max value used in some modes; +#X msg 480 391 0; +#X msg 501 414 1; +#X msg 524 437 2; +#X msg 548 458 3; +#X msg 575 481 4; +#X text 297 408 threshold value; +#X text 554 503 thresholding mode ( default 0 ); +#X text 512 389 pixel >= threshold; +#X text 552 436 pixel >= threshold set to threshold; +#X text 530 413 pixel <= threshold; +#X text 579 457 pixel <= threshold set to 0; +#X text 603 479 pixel >= threshold set to 0; +#X obj 191 449 pix_opencv_threshold; +#X text 333 425 ( default 50 ); +#X obj 310 -76 gemhead; +#X obj 191 565 pix_texture; +#X obj 191 584 square 2; +#X obj -290 -42 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 +-66577 0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 65 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#N canvas 87 154 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 obj 162 241 gemwin; +#X msg 161 188 create \, 1; +#X msg 237 189 destroy; +#X msg 283 161 frame 25; +#X obj 164 126 t b b b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 10 0; +#X connect 2 1 4 0; +#X connect 2 1 8 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 7 0; +#X connect 10 2 9 0; +#X restore -280 2 pd gemwin; +#X msg -280 -16 create; +#X obj 39 561 pix_texture; +#X obj 39 589 square 2; +#X obj 191 251 separator; +#X obj 322 -49 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 379 126 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144 +-1 -1; +#X floatatom 361 91 5 0 10000 1 frame# - -; +#X obj 322 -20 openpanel; +#X msg 322 0 open \$1; +#X obj 310 109 pix_film; +#X msg 328 43 auto \$1; +#X obj 328 25 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X text -282 -36 Create window and render; +#X msg 423 26 colorspace RGBA; +#X msg 528 26 colorspace RGB; +#X msg 632 26 colorspace Grey; +#X obj 423 -2 loadbang; +#X obj 190 222 pix_separator; +#X obj 39 254 separator; +#X obj 39 225 pix_separator; +#X obj 39 289 translateXYZ -2 0 0; +#X obj 191 286 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 130 164 pd vswitch; +#X obj 198 164 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 73 107 pix_video; +#X obj 73 -81 gemhead; +#X msg 112 32 device 0; +#X msg 121 63 driver 1; +#X msg 98 -22 dialog; +#X msg 103 8 device /dev/dv1394-0; +#X text -293 65 written by Lluis Gomez i Bigorda ( lluisgomez@hangar.org +); +#X text -294 53 used as a filter to detect bright or dark piksels; +#X text -293 40 pix_opencv_threshold : pixel thresholding; +#X obj 132 194 pix_rgba; +#X connect 1 0 17 2; +#X connect 2 0 17 0; +#X connect 3 0 17 1; +#X connect 5 0 2 0; +#X connect 6 0 2 0; +#X connect 7 0 2 0; +#X connect 8 0 2 0; +#X connect 9 0 2 0; +#X connect 17 0 20 0; +#X connect 19 0 33 0; +#X connect 20 0 21 0; +#X connect 23 0 24 0; +#X connect 24 0 23 0; +#X connect 25 0 26 0; +#X connect 27 0 45 0; +#X connect 28 0 31 0; +#X connect 29 0 30 0; +#X connect 30 0 33 1; +#X connect 31 0 32 0; +#X connect 32 0 33 0; +#X connect 33 0 46 1; +#X connect 33 2 29 0; +#X connect 34 0 33 0; +#X connect 35 0 34 0; +#X connect 37 0 33 0; +#X connect 37 0 48 0; +#X connect 38 0 33 0; +#X connect 39 0 33 0; +#X connect 40 0 37 0; +#X connect 40 0 35 0; +#X connect 41 0 27 0; +#X connect 42 0 44 0; +#X connect 43 0 42 0; +#X connect 44 0 25 0; +#X connect 45 0 17 0; +#X connect 46 0 57 0; +#X connect 47 0 46 2; +#X connect 48 0 46 0; +#X connect 49 0 48 0; +#X connect 50 0 48 0; +#X connect 51 0 48 0; +#X connect 52 0 48 0; +#X connect 53 0 48 0; +#X connect 57 0 43 0; +#X connect 57 0 41 0; diff --git a/help/pix_opencv_trackKnn-help.pd b/help/pix_opencv_trackKnn-help.pd new file mode 100644 index 0000000..91cd034 --- /dev/null +++ b/help/pix_opencv_trackKnn-help.pd @@ -0,0 +1,275 @@ +#N canvas 715 154 789 554 10; +#X obj 483 42 cnv 15 300 500 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 22 63 cnv 15 450 200 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 22 314 cnv 15 450 180 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 24 322 Inlets:; +#X obj 22 274 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 31 273 Arguments:; +#X text 26 377 Outlets:; +#X text 489 27 Example:; +#X text 69 28 Class: pix_opencv; +#X text 77 283 none; +#X obj 363 194 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 1 122 450 300 gemwin 0; +#X obj 132 156 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 198 112 destroy; +#X msg 132 132 reset \, dimen 640 480 \, create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 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 368 233 pd gemwin; +#X msg 368 214 destroy; +#X text 364 193 Create window:; +#X text 39 388 Outlet 1: gemlist output; +#X text 39 398 Outlet 2: contour \, convexhull and convexity defect +output; +#X text 59 515 bug \, feedback \, comment... on the pd-list; +#X obj 489 355 cnv 15 280 80 empty empty empty 20 12 0 14 -4034 -66577 +0; +#X obj 498 64 gemhead 1; +#X obj 565 39 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#N canvas 1014 357 709 722 cvblob 0; +#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 549 scaleXYZ 0.125 0.25 0; +#X msg 459 349 \$3; +#X msg 434 463 \$4; +#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 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 obj 187 13 inlet cvblob; +#X obj 187 35 route cvblob; +#X msg 333 26 0; +#X obj 333 6 loadbang; +#X obj 187 57 t a b; +#X msg 291 27 1, f 5; +#X obj 432 485 sqrt; +#X obj 279 446 scaleXYZ 10.666 -8 0; +#X obj 390 520 / 2; +#X obj 361 522 / 3; +#X connect 0 0 18 0; +#X connect 1 0 0 0; +#X connect 1 1 15 0; +#X connect 2 0 6 0; +#X connect 3 0 21 0; +#X connect 4 1 21 0; +#X connect 5 0 35 0; +#X connect 6 0 5 0; +#X connect 6 1 0 1; +#X connect 7 0 3 0; +#X connect 7 1 1 0; +#X connect 8 0 12 0; +#X connect 9 0 8 1; +#X connect 10 0 17 0; +#X connect 11 0 8 0; +#X connect 12 0 16 0; +#X connect 13 0 8 2; +#X connect 14 0 42 0; +#X connect 15 0 13 0; +#X connect 15 0 9 0; +#X connect 15 1 14 0; +#X connect 15 1 19 0; +#X connect 15 1 25 0; +#X connect 16 0 30 0; +#X connect 17 0 43 0; +#X connect 18 0 10 0; +#X connect 19 0 32 0; +#X connect 20 0 32 0; +#X connect 21 0 7 0; +#X connect 21 1 3 1; +#X connect 22 0 21 1; +#X connect 23 0 24 0; +#X connect 24 0 32 1; +#X connect 25 0 26 0; +#X connect 26 0 27 0; +#X connect 27 0 28 0; +#X connect 27 1 29 0; +#X connect 28 0 17 1; +#X connect 29 0 17 1; +#X connect 30 0 20 0; +#X connect 35 0 4 0; +#X connect 35 1 22 0; +#X connect 36 0 37 0; +#X connect 37 0 40 0; +#X connect 38 0 2 0; +#X connect 39 0 38 0; +#X connect 40 0 5 1; +#X connect 40 1 41 0; +#X connect 41 0 2 0; +#X connect 42 0 44 0; +#X connect 42 0 45 0; +#X connect 43 0 11 0; +#X connect 44 0 12 2; +#X connect 45 0 12 1; +#X restore 609 410 pd cvblob; +#X text 39 408 Outlet 3: info output; +#X text 50 11 Synopsis: [pix_opencv_trackKnn]; +#X text 48 82 [pix_opencv_trackKnn] uses the Knn algorithm to keep +the ids of tracked features.; +#X text 29 65 Description: keep track of detected features; +#X text 41 336 Inlet 1: message: cvblob ; +#X text 69 500 by antoine villeret - 2013; +#X obj 498 106 pix_film; +#X obj 631 76 bng 25 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#N canvas 1 95 450 300 open&loop 0; +#X obj -107 89 openpanel; +#X msg -130 131 open \$1 \, auto 1; +#X obj -131 89 t b; +#X obj -131 110 symbol; +#X obj -131 50 inlet; +#X obj -86 48 inlet; +#X obj -129 158 outlet; +#X connect 0 0 3 0; +#X connect 1 0 6 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 4 0 2 0; +#X connect 5 0 0 0; +#X restore 562 105 pd open&loop; +#X floatatom 628 27 5 0 0 0 - - -, f 5; +#X msg 628 46 auto \$1; +#X obj 498 386 pix_opencv_trackKnn; +#X msg 525 364 reset; +#X text 48 114 This could be use in conjonction of some tracking technique +technique. This help shows how to use it with a contour based tracker. +; +#X text 41 346 Inlet 1: message: reset : clear the internal memory +\, reset the counter; +#N canvas 1 130 450 358 find_blobs 0; +#X msg 182 191 epsilon \$1; +#X floatatom 182 174 5 0 0 0 - - -, f 5; +#X obj 223 132 loadbang; +#X msg 257 191 area \$1; +#X floatatom 257 174 5 0 0 0 - - -, f 5; +#X msg 257 153 10; +#X msg 223 152 2; +#X obj 127 217 pix_opencv_contours; +#X obj 127 96 pix_opencv_threshold; +#X obj 127 116 pix_grey; +#X obj 238 238 route count; +#X obj 127 40 inlet; +#X obj 127 310 outlet; +#N canvas 521 748 562 291 options 0; +#X obj 57 147 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 57 167 contours \$1; +#X obj 57 251 outlet; +#X obj 147 147 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 247 147 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 147 167 convexhulls \$1; +#X msg 247 167 convexitydefects \$1; +#X text 25 37 set hierarchy level (which contour to send out); +#X obj 24 83 nbx 5 14 -2 1e+37 0 1 empty empty empty 0 -8 0 10 -262144 +-1 -1 0 256; +#X msg 24 100 hierarchy_level \$1; +#X text 71 125 send out different kind of infos (all on by default) +:; +#X text 25 47 -1 for all contours (default); +#X msg 383 167 cvblobOutput \$1; +#X obj 383 148 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X text 25 57 -2 for only contours with no child (aka holes); +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 3 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 2 0; +#X connect 6 0 2 0; +#X connect 8 0 9 0; +#X connect 9 0 2 0; +#X connect 12 0 2 0; +#X connect 13 0 12 0; +#X restore 142 142 pd options; +#X obj 244 74 inlet; +#X connect 0 0 7 0; +#X connect 1 0 0 0; +#X connect 2 0 6 0; +#X connect 2 0 5 0; +#X connect 3 0 7 0; +#X connect 4 0 3 0; +#X connect 5 0 4 0; +#X connect 6 0 1 0; +#X connect 7 0 12 0; +#X connect 7 2 10 0; +#X connect 8 0 9 0; +#X connect 9 0 7 0; +#X connect 10 1 12 0; +#X connect 11 0 8 0; +#X connect 13 0 7 0; +#X connect 14 0 8 2; +#X restore 498 213 pd find_blobs; +#X obj 498 458 pix_texture; +#X obj 498 478 rectangle 5.333 4; +#X text 32 432 20 +0 0 0 0; +#X text 23 422 cvblob; +#X floatatom 573 192 5 0 0 1 binarization_threshold - -, f 5; +#X connect 11 0 12 0; +#X connect 12 0 11 0; +#X connect 18 0 27 0; +#X connect 19 0 18 0; +#X connect 27 0 36 0; +#X connect 27 2 29 0; +#X connect 28 0 29 1; +#X connect 29 0 27 0; +#X connect 30 0 31 0; +#X connect 31 0 27 0; +#X connect 32 0 37 0; +#X connect 32 1 20 0; +#X connect 33 0 32 0; +#X connect 36 0 32 0; +#X connect 37 0 38 0; +#X connect 41 0 36 1; diff --git a/help/pix_opencv_warpperspective-help.pd b/help/pix_opencv_warpperspective-help.pd new file mode 100644 index 0000000..4c8749b --- /dev/null +++ b/help/pix_opencv_warpperspective-help.pd @@ -0,0 +1,119 @@ +#N canvas 616 396 980 660 10; +#X obj 24 25 gemhead; +#X obj 411 543 gemwin; +#X msg 411 509 create \, 1; +#X msg 492 509 destroy; +#X obj 24 565 pix_texture; +#X obj 203 571 print; +#X obj 24 591 rectangle 4 3; +#X obj 24 4 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X obj 24 539 pix_opencv_warpperspective; +#X msg 76 367 mapMatrix 1 0 0 0 1 0 0 0 1; +#X text 75 348 you can also set the map matrix directly; +#X msg 76 387 mapMatrix 0.5 0 0 0 0.5 0 0 0 1; +#X text 281 366 identity; +#X text 302 388 scale by 0.5; +#X msg 76 407 mapMatrix 0 1 0 1 0 0 0 0 2; +#X text 275 409 rotation by 90deg and scale by 0.5; +#X obj 24 93 pix_video; +#X obj 24 133 pix_flip; +#N canvas 1 105 936 545 wrap_perspective_GPU 0; +#X obj 251 443 mesh_square 10 10; +#X obj 301 277 /; +#X obj 351 278 /; +#X obj 301 233 loadbang; +#X obj 251 356 GEMglMultTransposeMatrixf; +#X obj 251 414 translateXYZ 1 1 0; +#X obj 251 299 scaleXYZ 0.003 0.003 0; +#X obj 251 376 scaleXYZ 639 479 0; +#X obj 251 212 translateXYZ -5.33333 -4 0; +#X obj 251 395 scaleXYZ 0.5 0.5 0; +#X msg 301 255 5.3333 320; +#X msg 377 255 4 240; +#X msg 423 330 \$1 \$4 0 \$7 \$2 \$5 0 \$8 0 0 1 0 \$3 \$6 0 \$9; +#X text 46 22 wrap_persective can be easilly computed by the GPU in +order to boost performace; +#X obj 251 188 spigot; +#X obj 290 138 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 39 105 t a a; +#X obj 39 190 spigot 1; +#X obj 92 164 == 0; +#X obj 39 253 rectangle 4 3; +#X obj 39 233 pix_texture; +#X obj 39 211 pix_opencv_warpperspective; +#X text 306 137 switch CPU / GPU; +#X text 454 256 Since the matrice is computed for somthing that range +from 0 to 639 in X \, and from 0 to 479 in Y \, one have to convert +(scale / translate) the primitive coordinate to fit the transformation +matrix.; +#X obj 41 62 inlet; +#X connect 1 0 6 1; +#X connect 2 0 6 2; +#X connect 3 0 10 0; +#X connect 3 0 11 0; +#X connect 4 0 7 0; +#X connect 5 0 0 0; +#X connect 6 0 4 0; +#X connect 7 0 9 0; +#X connect 8 0 6 0; +#X connect 9 0 5 0; +#X connect 10 0 1 0; +#X connect 11 0 2 0; +#X connect 12 0 4 1; +#X connect 14 0 8 0; +#X connect 15 0 14 1; +#X connect 15 0 18 0; +#X connect 16 0 17 0; +#X connect 16 1 14 0; +#X connect 17 0 21 0; +#X connect 18 0 17 1; +#X connect 20 0 19 0; +#X connect 21 0 20 0; +#X connect 21 1 12 0; +#X connect 24 0 16 0; +#X restore 161 604 pd wrap_perspective_GPU; +#X msg 43 233 dstMatrix 0 0 0 1 1 1 1 0; +#X msg 59 281 srcMatrix 0 0 0 1 1 1 1 0; +#X text 203 234 destination matrix; +#X text 103 261 source matrix; +#X text 229 279 the same as dst lead to identity map matrix; +#X msg 71 306 srcMatrix 1 0 1 1 2 1 2 0; +#X text 234 299 translation also lead to identity map matrix while +translation is not a perspective transformation; +#X text 126 327 TODO more src examples...; +#X text 112 88 pix_opencv_warpperspective computes the perspective +transformation between dstMatrix and srcMatrix and corrects the image +image according to this perspective transformation; +#X text 111 129 the trasnsformation matrix is also sent through the +right outlet to be applied in OpenGL for example; +#X text 114 159 the transformation matrix could also be set by mapMatrix +message to apply the transformation; +#X text 112 25 see examples/05-perspective_correction for an example +of the use of pix_opencv_warpperspective with pix_opencv_findchessboardcorners +to correct perspective; +#X obj 24 112 pix_grey; +#X msg 123 480 invert \$1; +#X obj 123 452 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 140 450 invert transformation matrix (same as swaping src and +dst matrix); +#X connect 0 0 16 0; +#X connect 2 0 1 0; +#X connect 3 0 1 0; +#X connect 4 0 6 0; +#X connect 7 0 0 0; +#X connect 8 0 4 0; +#X connect 8 1 5 0; +#X connect 9 0 8 0; +#X connect 11 0 8 0; +#X connect 14 0 8 0; +#X connect 16 0 31 0; +#X connect 17 0 8 0; +#X connect 19 0 8 0; +#X connect 20 0 8 0; +#X connect 24 0 8 0; +#X connect 31 0 17 0; +#X connect 32 0 8 0; +#X connect 33 0 32 0; -- cgit v1.2.1