aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntoine Villeret <avilleret@users.sourceforge.net>2012-09-22 15:20:06 +0000
committerAntoine Villeret <avilleret@users.sourceforge.net>2012-09-22 15:20:06 +0000
commitbd711e9011a3d71248ba9f1595ed2d23089f4667 (patch)
tree2e8fcdf4d66be09c9970a48381aa1257c22a3158
parentf197e642d3db83267914d1fdc348016b1abfc805 (diff)
help patches
svn path=/trunk/externals/pix_opencv/; revision=16271
-rw-r--r--pix_opencv-meta.pd15
-rw-r--r--pix_opencv_athreshold-help.pd267
-rw-r--r--pix_opencv_bgstats-help.pd219
-rw-r--r--pix_opencv_bgsubstract-help.pd227
-rw-r--r--pix_opencv_calibration-help.pd378
-rw-r--r--pix_opencv_camshift-help.pd298
-rw-r--r--pix_opencv_colorfilt-help.pd257
-rw-r--r--pix_opencv_contours_boundingrect-help.pd371
-rw-r--r--pix_opencv_contours_convexity-help.pd338
-rw-r--r--pix_opencv_dft-help.pd231
-rw-r--r--pix_opencv_distrans-help.pd247
-rw-r--r--pix_opencv_edge-help.pd218
-rw-r--r--pix_opencv_findchessboardcorners-help.pd229
-rw-r--r--pix_opencv_floodfill-help.pd316
-rw-r--r--pix_opencv_haarcascade-help.pd331
-rw-r--r--pix_opencv_hist_compare-help.pd247
-rw-r--r--pix_opencv_hough_circles-help.pd295
-rw-r--r--pix_opencv_warpperspective-help.pd214
18 files changed, 2224 insertions, 2474 deletions
diff --git a/pix_opencv-meta.pd b/pix_opencv-meta.pd
index 598c79f..ca13d9a 100644
--- a/pix_opencv-meta.pd
+++ b/pix_opencv-meta.pd
@@ -1,8 +1,9 @@
-#N canvas 15 49 200 200 10;
-#N canvas 25 49 420 300 META 1;
-#X text 10 10 NAME pix_opencv;
-#X text 10 30 AUTHOR Yves Degoyon <ydegoyon@gmail.com> and Lluis Gomez i Bigorda <lluisgomez@hangar.org>;
-#X text 10 65 Further documentation at hangar.org/wikis/lab/doku.php?id=start:puredata_opencv;
-#X text 10 95 VERSION 0.2-rc5;
-#X text 10 120 LICENSE Intel License Agreement For Open Source Computer Vision Library;
+#N canvas 13 111 200 200 10;
+#N canvas 23 83 420 300 META 1;
+#X text 13 10 NAME pix_opencv;
+#X text 10 65 VERSION 0.2-rc5;
+#X text 10 85 LICENSE Intel License Agreement For Open Source Computer
+Vision Library;
+#X text 10 30 AUTHOR Yves Degoyon <ydegoyon@gmail.com> \, Lluis Gomez
+i Bigorda <lluisgomez@hangar.org> and Antoine Villleret;
#X restore 10 10 pd META;
diff --git a/pix_opencv_athreshold-help.pd b/pix_opencv_athreshold-help.pd
index 000713c..61afeba 100644
--- a/pix_opencv_athreshold-help.pd
+++ b/pix_opencv_athreshold-help.pd
@@ -1,9 +1,19 @@
-#N canvas 520 34 1119 972 10;
-#X obj 300 -86 gemhead;
-#X obj 184 629 pix_texture;
-#X obj 184 648 square 2;
-#X obj -363 -163 cnv 15 220 70 empty empty empty 20 12 0 14 -195568
+#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;
@@ -34,158 +44,145 @@
#X connect 9 0 6 0;
#X connect 10 0 7 0;
#X connect 10 2 9 0;
-#X restore -353 -119 pd gemwin;
-#X msg -353 -137 create;
-#X obj 30 625 pix_texture;
-#X obj 30 653 square 2;
-#X obj 181 241 separator;
-#X obj 312 -59 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1
+#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 369 116 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
+#X obj 319 66 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
-1 -1;
-#X floatatom 351 81 5 0 10000 1 frame# - -;
-#X obj 312 -30 openpanel;
-#X msg 312 -10 open \$1;
-#X obj 300 99 pix_film;
-#X msg 318 33 auto \$1;
-#X obj 318 15 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
-;
-#X obj 148 301 cnv 15 600 310 empty empty empty 20 12 0 14 -4034 -66577
+#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 -355 -157 Create window and render;
-#X obj 184 577 pix_opencv_athreshold;
-#X floatatom 343 538 5 0 0 0 - - -;
-#X msg 238 436 mode \$1;
-#X floatatom 340 500 5 0 0 0 - - -;
-#X text 376 538 ( default 3 );
-#X msg 214 350 method \$1;
-#X msg 236 397 dim \$1;
-#X floatatom 287 400 5 0 0 0 - - -;
-#X text -357 321 written by Yves Degoyon ( ydegoyon@gmail.com );
-#X msg 413 16 colorspace RGBA;
-#X msg 518 16 colorspace RGB;
-#X msg 622 16 colorspace Grey;
-#X obj 413 -12 loadbang;
-#X obj 180 212 pix_separator;
-#X obj 29 244 separator;
-#X obj 29 215 pix_separator;
-#X obj 29 279 translateXYZ -2 0 0;
-#X obj 181 276 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 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 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 122 169 pd vswitch;
-#X obj 190 170 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X obj 63 97 pix_video;
-#X obj 63 -91 gemhead;
-#X msg 102 22 device 0;
-#X msg 111 53 driver 1;
-#X msg 88 -32 dialog;
-#X msg 93 -2 device /dev/dv1394-0;
-#X text 323 399 value to correct the theshold;
-#X text -366 -80 pix_opencv_threshold :;
-#X text 340 486 MaxValue (default 255);
-#X text 317 435 inverse mode ( default 0 );
-#X text -366 -56 Thresholding is used to segment an image by setting
+#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 -367 -10 Whereas the conventional thresholding operator uses
+#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 -338 129 - zero otherwise;
-#X text -364 92 Adaptive thresholding sets a pixel dst(x \, y) value
+#X text -325 205 - zero otherwise;
+#X text -351 168 Adaptive thresholding sets a pixel dst(x \, y) value
to:;
-#X text -338 114 - MaxValue (see MaxValue inlet) if src(x \, y) > T(x
+#X text -325 190 - MaxValue (see MaxValue inlet) if src(x \, y) > T(x
\, y);
-#X text -360 162 Where T(x \, y) is a threshold calculated individually
+#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 -360 238 For the method ADAPTIVE_THRESH_GAUSSIAN_C the threshold
+#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 341 524 blockSize;
-#X obj 288 351 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
+#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 206 328 Thresholding method ( default 0 );
-#X obj 297 437 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 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 306 345 0 = CV_ADAPTIVE_THRESH_MEAN_C;
-#X text 306 355 1 = CV_ADAPTIVE_THRESH_GAUSSIAN_C;
-#X obj 123 190 pix_rgba;
-#X connect 0 0 14 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 8 0 36 0;
-#X connect 9 0 12 0;
+#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 14 1;
+#X connect 11 0 10 0;
#X connect 12 0 13 0;
-#X connect 13 0 14 0;
-#X connect 14 0 37 1;
-#X connect 14 2 10 0;
-#X connect 15 0 14 0;
-#X connect 16 0 15 0;
-#X connect 19 0 1 0;
-#X connect 20 0 19 2;
-#X connect 21 0 19 0;
-#X connect 22 0 19 1;
-#X connect 24 0 19 0;
-#X connect 25 0 19 0;
-#X connect 26 0 25 0;
-#X connect 28 0 14 0;
-#X connect 28 0 39 0;
-#X connect 29 0 14 0;
-#X connect 30 0 14 0;
-#X connect 31 0 28 0;
-#X connect 31 0 16 0;
-#X connect 32 0 8 0;
-#X connect 33 0 35 0;
-#X connect 34 0 33 0;
-#X connect 35 0 6 0;
-#X connect 36 0 19 0;
-#X connect 37 0 62 0;
-#X connect 38 0 37 2;
-#X connect 39 0 37 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 39 0;
-#X connect 42 0 39 0;
-#X connect 43 0 39 0;
-#X connect 44 0 39 0;
-#X connect 57 0 24 0;
-#X connect 59 0 21 0;
-#X connect 62 0 34 0;
-#X connect 62 0 32 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/pix_opencv_bgstats-help.pd b/pix_opencv_bgstats-help.pd
index bdaaccb..9413df2 100644
--- a/pix_opencv_bgstats-help.pd
+++ b/pix_opencv_bgstats-help.pd
@@ -1,7 +1,18 @@
-#N canvas 286 25 1043 839 10;
-#X obj 365 487 pix_texture;
-#X obj 365 515 square 2;
-#X obj 28 -124 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577
+#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;
@@ -33,119 +44,107 @@
#X connect 9 0 6 0;
#X connect 10 0 7 0;
#X connect 10 2 9 0;
-#X restore 40 -78 pd gemwin;
-#X msg 40 -102 create;
-#X text 36 -122 Create window and render;
-#X obj 213 486 pix_texture;
-#X obj 213 514 square 2;
-#X obj 346 281 cnv 15 550 200 empty empty empty 20 12 0 14 -24198 -66577
+#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 361 388 pix_opencv_bgstats;
-#X text 27 -47 pix_opencv_bgstats : background and foreground extraction
+#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 -113 gemhead;
-#X obj 361 212 separator;
-#X obj 689 -86 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1
+#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 89 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
+#X obj 746 34 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
-1 -1;
-#X floatatom 728 54 5 0 10000 1 frame# - -;
-#X obj 689 -57 openpanel;
-#X msg 689 -37 open \$1;
-#X obj 677 72 pix_film;
-#X msg 695 6 auto \$1;
-#X obj 695 -12 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -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 -11 colorspace RGBA;
-#X msg 895 -11 colorspace RGB;
-#X msg 999 -11 colorspace Grey;
-#X obj 790 -39 loadbang;
-#X obj 360 183 pix_separator;
-#X obj 209 215 separator;
-#X obj 209 186 pix_separator;
-#X obj 209 250 translateXYZ -2 0 0;
-#X obj 361 247 translateXYZ 2 0 0;
-#N canvas 5 49 450 300 vswitch 0;
-#X obj 144 263 outlet;
+#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 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 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 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 302 140 pd vswitch;
-#X obj 370 140 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X obj 440 70 pix_video;
-#X obj 440 -94 gemhead;
-#X msg 479 -5 device 0;
-#X msg 488 26 driver 1;
-#X msg 465 -59 dialog;
-#X msg 470 -29 device /dev/dv1394-0;
-#X obj 335 101 pix_resize 160 120;
-#X text 28 -10 Objects disappear from the background after a certain
+#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 text 28 55 Comments and support @ ydegoyon.gmail.com;
-#X msg 415 339 reset;
-#X text 455 341 reset the background;
-#X obj 302 164 pix_rgba;
-#X connect 0 0 1 0;
-#X connect 3 0 4 0;
-#X connect 4 0 3 0;
-#X connect 6 0 7 0;
-#X connect 9 0 0 0;
-#X connect 11 0 18 0;
-#X connect 12 0 29 0;
-#X connect 13 0 16 0;
-#X connect 14 0 15 0;
-#X connect 15 0 18 1;
-#X connect 16 0 17 0;
-#X connect 17 0 18 0;
-#X connect 18 0 30 1;
-#X connect 18 2 14 0;
-#X connect 19 0 18 0;
-#X connect 20 0 19 0;
-#X connect 21 0 18 0;
-#X connect 21 0 32 0;
-#X connect 22 0 18 0;
-#X connect 23 0 18 0;
-#X connect 24 0 21 0;
-#X connect 24 0 20 0;
-#X connect 25 0 12 0;
-#X connect 26 0 28 0;
+#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 6 0;
-#X connect 29 0 9 0;
-#X connect 30 0 43 0;
-#X connect 31 0 30 2;
-#X connect 32 0 38 0;
-#X connect 33 0 32 0;
-#X connect 34 0 32 0;
-#X connect 35 0 32 0;
-#X connect 36 0 32 0;
-#X connect 37 0 32 0;
-#X connect 38 0 30 0;
-#X connect 41 0 9 0;
-#X connect 43 0 27 0;
-#X connect 43 0 25 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/pix_opencv_bgsubstract-help.pd b/pix_opencv_bgsubstract-help.pd
index 4802396..85876e2 100644
--- a/pix_opencv_bgsubstract-help.pd
+++ b/pix_opencv_bgsubstract-help.pd
@@ -1,28 +1,39 @@
-#N canvas 719 162 938 771 10;
-#X obj 568 529 cnv 15 255 67 empty empty empty 20 12 0 14 -24198 -66577
+#N canvas 253 422 985 540 10;
+#X obj 17 17 cnv 15 430 320 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X floatatom 751 569 5 0 0 0 - - -;
-#X obj 586 570 pix_opencv_bgsubstract;
-#X msg 694 536 set;
-#X text 730 536 set the background;
-#X text 794 568 threshold (default 13);
-#X text 22 244 This object takes an image as a background reference
+#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 - - -;
+#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 text 22 84 This object takes an image as a background reference
and the compare each incomming frame with that. On the output you get
a bw image \, black pixels are considered as background and white poixels
as foreground.;
-#X text 23 152 pix_opencv_bgsubstract :: A simple background substract
+#X text 27 -107 pix_opencv_bgsubstract :: A simple background substract
and binarization object.;
-#X text 22 197 It is useful if you want to detect objects that are
-in front of an static background and you want to isolate the foreground
+#X text 22 37 It is useful if you want to detect objects that are in
+front of an static background and you want to isolate the foreground
silhouete of the foreground objects.;
-#X text 22 305 pix_opencv_bgsubstract works comparing color values
+#X text 22 145 pix_opencv_bgsubstract works comparing color values
of each pixel \, so it can fail if the foreground object has the same
color that the background \, and also if the light conditions or the
shadows changes since you SET the background image.;
-#X obj 705 34 gemhead;
-#X obj 586 675 pix_texture;
-#X obj 586 694 square 2;
-#X obj 23 30 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577
+#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 22 454 304 gemwin 0;
#X obj 67 89 outlet;
@@ -54,106 +65,94 @@ shadows changes since you SET the background image.;
#X connect 9 0 6 0;
#X connect 10 0 7 0;
#X connect 10 2 9 0;
-#X restore 33 74 pd gemwin;
-#X msg 33 56 create;
-#X obj 434 671 pix_texture;
-#X obj 434 699 square 2;
-#X obj 586 361 separator;
-#X obj 717 61 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1
+#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 774 236 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
+#X obj 710 29 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
-1 -1;
-#X floatatom 756 201 5 0 10000 1 frame# - -;
-#X obj 717 90 openpanel;
-#X msg 717 110 open \$1;
-#X obj 705 219 pix_film;
-#X msg 723 153 auto \$1;
-#X obj 723 135 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
+#X floatatom 692 -6 5 0 10000 1 frame# - -;
+#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 31 36 Create window and render;
-#X msg 818 136 colorspace RGBA;
-#X msg 923 136 colorspace RGB;
-#X msg 1027 136 colorspace Grey;
-#X obj 818 108 loadbang;
-#X obj 585 332 pix_separator;
-#X obj 434 364 separator;
-#X obj 434 335 pix_separator;
-#X obj 434 399 translateXYZ -2 0 0;
-#X obj 586 396 translateXYZ 2 0 0;
-#N canvas 0 22 450 300 vswitch 0;
-#X obj 144 263 outlet;
+#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 215 vswitch 0;
+#X obj 36 138 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 527 289 pd vswitch;
-#X obj 595 289 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X obj 468 217 pix_video;
-#X obj 468 29 gemhead;
-#X msg 507 142 device 0;
-#X msg 516 173 driver 1;
-#X msg 493 88 dialog;
-#X msg 498 118 device /dev/dv1394-0;
-#X obj 529 312 pix_rgba;
-#X connect 1 0 2 1;
-#X connect 2 0 11 0;
-#X connect 3 0 2 0;
-#X connect 10 0 24 0;
-#X connect 11 0 12 0;
-#X connect 14 0 15 0;
-#X connect 15 0 14 0;
-#X connect 16 0 17 0;
-#X connect 18 0 36 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 obj 100 29 inlet;
+#X obj 149 29 inlet;
+#X obj 149 67 == 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 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 connect 8 0 9 1;
+#X connect 9 0 18 0;
+#X connect 10 0 9 0;
+#X connect 17 0 31 0;
+#X connect 18 0 19 0;
+#X connect 21 0 22 0;
+#X connect 22 0 21 0;
#X connect 23 0 24 0;
-#X connect 24 0 37 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 39 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 2 0;
-#X connect 37 0 45 0;
-#X connect 38 0 37 2;
-#X connect 39 0 37 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 34 0;
-#X connect 45 0 32 0;
+#X connect 25 0 43 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 44 1;
+#X connect 31 2 27 0;
+#X connect 32 0 31 0;
+#X connect 33 0 32 0;
+#X connect 35 0 31 0;
+#X connect 35 0 46 0;
+#X connect 36 0 31 0;
+#X connect 37 0 31 0;
+#X connect 38 0 35 0;
+#X connect 38 0 33 0;
+#X connect 39 0 25 0;
+#X connect 40 0 42 0;
+#X connect 41 0 40 0;
+#X connect 42 0 23 0;
+#X connect 43 0 9 0;
+#X connect 44 0 52 0;
+#X connect 45 0 44 2;
+#X connect 46 0 44 0;
+#X connect 47 0 46 0;
+#X connect 48 0 46 0;
+#X connect 49 0 46 0;
+#X connect 50 0 46 0;
+#X connect 51 0 46 0;
+#X connect 52 0 41 0;
+#X connect 52 0 39 0;
diff --git a/pix_opencv_calibration-help.pd b/pix_opencv_calibration-help.pd
index 9adb855..41eea90 100644
--- a/pix_opencv_calibration-help.pd
+++ b/pix_opencv_calibration-help.pd
@@ -1,11 +1,45 @@
-#N canvas 260 0 1106 660 10;
-#X obj 182 329 cnv 15 400 180 empty empty empty 20 12 0 14 -4034 -66577
+#N canvas 84 222 1188 810 10;
+#X obj 20 33 cnv 15 430 580 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X obj 145 -162 gemhead;
-#X obj 192 525 pix_texture;
-#X obj 356 -216 cnv 15 220 70 empty empty empty 20 12 0 14 -195568
+#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 39 -100 Description: pix_opencv_calibration is an object allowing
+camera less calibration. you need to move a checkboard in front of
+the camera during the calibration part.;
+#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;
-#N canvas 0 22 454 304 gemwin 1;
+#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;
@@ -35,93 +69,80 @@
#X connect 9 0 10 0;
#X connect 9 2 8 0;
#X connect 10 0 6 0;
-#X restore 366 -170 pd gemwin;
-#X msg 366 -190 destroy;
-#X obj -232 499 pix_texture;
-#X obj 192 251 separator;
-#X obj 157 -135 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1
+#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 214 40 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
+#X obj 884 42 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
-1 -1;
-#X floatatom 196 5 5 0 10000 1 frame# - -;
-#X obj 157 -106 openpanel;
-#X msg 157 -86 open \$1;
-#X obj 145 23 pix_film;
-#X msg 163 -43 auto \$1;
-#X obj 163 -61 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
+#X floatatom 866 7 5 0 10000 1 frame# - -;
+#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 364 -210 Create window and render;
-#X msg 258 -60 colorspace RGBA;
-#X msg 363 -60 colorspace RGB;
-#X msg 467 -60 colorspace Grey;
-#X obj 258 -88 loadbang;
-#X obj 192 222 pix_separator;
-#X obj -232 252 separator;
-#X obj -232 223 pix_separator;
-#N canvas 0 22 450 300 vswitch 0;
-#X obj 144 263 outlet;
+#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 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 -232 52 pd vswitch;
-#X obj -136 53 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X obj -232 19 pix_video;
-#X obj -232 -169 gemhead;
-#X msg -213 -103 dimen 640 480;
-#X msg -215 -128 dimen 320 240;
-#X text 224 397 load distorsion coefficients and intrinsic matrix;
-#X msg -186 -33 driver v4l2;
-#X msg -202 -80 driver dc1394 \, dimen 640 480 \, colorspace grey;
-#X msg -177 -12 driver dc1394;
-#X obj 192 469 pix_opencv_calibration;
-#X obj -232 160 pix_grey;
-#X obj -232 289 translateXYZ 0 -2 0;
-#X obj 192 285 translateXYZ 0 2 0;
-#X obj -232 525 rectangle 2.666 2;
-#X obj 192 546 rectangle 2.666 2;
-#X msg 225 416 loadDist \$1;
-#X msg 321 417 loadIntra \$1;
-#X msg 225 376 writeDist \$1;
-#X msg 321 377 writeIntra \$1;
-#X text 224 357 write distorsion coefficients and intrinsic matrix
+#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 0 1
;
-#X obj 353 79 cnv 15 500 220 empty empty empty 20 12 0 14 -4034 -66577
+#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 361 90 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
+#X obj 754 128 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X msg 361 110 calibration \$1;
-#X msg 361 154 view \$1;
-#X text 400 132 number of view to take during calibration;
-#X floatatom 361 136 5 0 0 0 - - -;
-#X obj 361 195 pack f f;
-#X msg 361 215 patternSize \$1 \$2;
-#X floatatom 361 177 5 0 0 0 - - -;
-#X floatatom 414 177 5 0 0 0 - - -;
-#X text 451 173 number of inner corners on the chessboard;
+#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 - - -;
+#X obj 754 233 pack f f;
+#X msg 754 253 patternSize \$1 \$2;
+#X floatatom 754 215 5 0 0 0 - - -;
+#X floatatom 807 215 5 0 0 0 - - -;
+#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;
@@ -150,109 +171,88 @@
#X connect 4 0 2 0;
#X connect 5 0 1 0;
#X connect 6 0 3 0;
-#X restore 360 277 pd advance-options;
-#X floatatom 361 236 5 0 0 0 - - -;
-#X msg 361 254 wait \$1;
-#X text 399 235 number of frame to wait between two takes during calibration
+#X restore 753 315 pd advance-options;
+#X floatatom 754 274 5 0 0 0 - - -;
+#X msg 754 292 wait \$1;
+#X text 792 273 number of frame to wait between two takes during calibration
;
-#X text 380 90 start callibration;
-#X text -168 -242 pix_opencv_calibration is an object allowing camera
-calibration. you need to move a checkboard in front of the camera during
-the calibration part.;
-#X obj -112 160 pix_rgba;
-#X obj -232 125 spigot 1;
-#X text -119 51 switch source (camera / film);
-#X obj -136 73 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X text -119 71 switch color mode ( grey / rgba );
-#X msg 225 446 loadDist XCD-V60_4mm-dist;
-#X msg 414 446 loadIntra XCD-V60_4mm-intra;
-#X msg -193 -56 device 1;
-#X obj -164 100 == 0;
-#X obj -112 124 spigot 0;
-#X obj -108 375 cnv 15 200 50 empty empty empty 20 12 0 14 -4034 -66577
-0;
-#N canvas 602 330 764 438 how-to 1;
-#X text -93 -194 getting started with camera calibration :;
-#X text -65 -108 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 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 0 1
;
-#X text -65 -128 2 Plug a supported camera and start rendering;
-#X text -64 -158 1 Print the chessboard ona rigid paperboard (or just
-show it on the screen);
-#X text -65 -37 4 When enought chessboard have been found (20 by default)
-it computes transformation matrix and map to undistord the image;
-#X text -65 13 5 Then all incoming images are undistord \, you can
-save the transformation and distorsion matrix to files to load it next
-times;
-#X text -99 96 for more information about this calibration see :;
-#X text -89 146 - A flexible new technique for camera calibration \,
-Zhang \, 1998 \, Microsoft Research;
-#X text -89 116 - Learning Opencv \, Bradski and Kaehler \, 2008 \,
-O'Reilly;
-#X restore -78 391 pd how-to calibrate;
-#X connect 1 0 13 0;
-#X connect 2 0 39 0;
-#X connect 4 0 5 0;
-#X connect 5 0 4 0;
-#X connect 6 0 38 0;
-#X connect 7 0 37 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 24 1;
-#X connect 13 2 9 0;
-#X connect 14 0 13 0;
-#X connect 15 0 14 0;
-#X connect 17 0 13 0;
-#X connect 17 0 26 0;
-#X connect 18 0 13 0;
-#X connect 19 0 13 0;
-#X connect 20 0 17 0;
-#X connect 20 0 15 0;
-#X connect 21 0 7 0;
-#X connect 22 0 36 0;
+#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 connect 19 0 31 0;
+#X connect 20 0 57 0;
+#X connect 22 0 23 0;
#X connect 23 0 22 0;
-#X connect 24 0 63 0;
-#X connect 24 0 71 0;
-#X connect 25 0 24 2;
-#X connect 26 0 24 0;
-#X connect 27 0 26 0;
-#X connect 28 0 26 0;
-#X connect 29 0 26 0;
-#X connect 31 0 26 0;
-#X connect 32 0 26 0;
-#X connect 33 0 26 0;
-#X connect 34 0 2 0;
-#X connect 35 0 23 0;
-#X connect 35 0 21 0;
-#X connect 36 0 6 0;
-#X connect 37 0 34 0;
-#X connect 40 0 34 0;
-#X connect 41 0 34 0;
-#X connect 42 0 34 0;
-#X connect 43 0 34 0;
-#X connect 46 0 47 0;
-#X connect 47 0 34 0;
-#X connect 48 0 34 0;
-#X connect 50 0 48 0;
-#X connect 51 0 52 0;
-#X connect 52 0 34 0;
-#X connect 53 0 51 0;
-#X connect 54 0 51 1;
-#X connect 56 0 34 0;
-#X connect 57 0 58 0;
-#X connect 58 0 34 0;
-#X connect 62 0 23 0;
-#X connect 62 0 21 0;
-#X connect 63 0 35 0;
-#X connect 65 0 70 0;
-#X connect 65 0 71 1;
-#X connect 68 0 34 0;
-#X connect 69 0 26 0;
-#X connect 70 0 63 1;
-#X connect 71 0 62 0;
+#X connect 24 0 56 0;
+#X connect 25 0 55 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 42 1;
+#X connect 31 2 27 0;
+#X connect 32 0 31 0;
+#X connect 33 0 32 0;
+#X connect 35 0 31 0;
+#X connect 35 0 44 0;
+#X connect 36 0 31 0;
+#X connect 37 0 31 0;
+#X connect 38 0 35 0;
+#X connect 38 0 33 0;
+#X connect 39 0 25 0;
+#X connect 40 0 54 0;
+#X connect 41 0 40 0;
+#X connect 42 0 80 0;
+#X connect 42 0 86 0;
+#X connect 43 0 42 2;
+#X connect 44 0 42 0;
+#X connect 45 0 44 0;
+#X connect 46 0 44 0;
+#X connect 47 0 44 0;
+#X connect 49 0 44 0;
+#X connect 50 0 44 0;
+#X connect 51 0 44 0;
+#X connect 52 0 20 0;
+#X connect 52 1 89 0;
+#X connect 53 0 41 0;
+#X connect 53 0 39 0;
+#X connect 54 0 24 0;
+#X connect 55 0 52 0;
+#X connect 58 0 52 0;
+#X connect 59 0 52 0;
+#X connect 60 0 52 0;
+#X connect 61 0 52 0;
+#X connect 64 0 65 0;
+#X connect 65 0 91 0;
+#X connect 66 0 91 0;
+#X connect 68 0 66 0;
+#X connect 69 0 70 0;
+#X connect 70 0 91 0;
+#X connect 71 0 69 0;
+#X connect 72 0 69 1;
+#X connect 74 0 91 0;
+#X connect 75 0 76 0;
+#X connect 76 0 91 0;
+#X connect 79 0 41 0;
+#X connect 79 0 39 0;
+#X connect 80 0 53 0;
+#X connect 82 0 85 0;
+#X connect 82 0 86 1;
+#X connect 84 0 44 0;
+#X connect 85 0 80 1;
+#X connect 86 0 79 0;
+#X connect 87 0 91 0;
+#X connect 91 0 52 0;
diff --git a/pix_opencv_camshift-help.pd b/pix_opencv_camshift-help.pd
index e73278d..f9a3fed 100644
--- a/pix_opencv_camshift-help.pd
+++ b/pix_opencv_camshift-help.pd
@@ -1,6 +1,15 @@
-#N canvas 0 39 1680 940 10;
-#X obj 479 677 pix_texture;
-#X obj 25 -34 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577
+#N canvas 21 324 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;
@@ -40,173 +49,142 @@
#X connect 9 2 11 0;
#X connect 10 0 0 0;
#X connect 11 0 0 0;
-#X restore 32 12 pd gemwin;
-#X msg 32 -9 create;
-#X text 35 -27 Create window and render;
-#X obj 424 309 cnv 15 600 350 empty empty empty 20 12 0 14 -24198 -66577
+#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 1032 251 gemmouse;
-#X obj 1088 358 f;
-#X obj 1058 357 f;
-#X obj 1102 329 t b b;
-#X obj 1052 424 pack f f;
-#X obj 1078 279 route 1;
-#X msg 1099 304 bang;
-#X floatatom 1049 379 5 0 0 0 - - -;
-#X floatatom 1102 382 5 0 0 0 - - -;
-#X obj 473 709 pix_resize 320 240;
-#X obj 479 547 pix_opencv_camshift;
-#X obj 590 577 unpack f f f f f;
-#X floatatom 591 607 5 0 0 0 - - -;
-#X floatatom 630 607 5 0 0 0 - - -;
-#X floatatom 668 607 5 0 0 0 - - -;
-#X floatatom 707 607 5 0 0 0 - - -;
-#X floatatom 748 607 5 0 0 0 - - -;
-#X text 618 631 center Y;
-#X text 668 621 width;
-#X text 703 632 height;
-#X text 578 621 center X;
-#X text 746 623 angle;
-#X text 702 576 for the tracked object;
-#X msg 568 405 backproject \$1;
-#X text 687 406 show the backproject flow image;
-#X obj 665 406 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 440 552 pix_resize 320 240;
+#X obj 440 423 pix_opencv_camshift;
+#X obj 551 453 unpack f f f f f;
+#X floatatom 551 478 5 0 0 0 - - -;
+#X floatatom 590 478 5 0 0 0 - - -;
+#X floatatom 628 478 5 0 0 0 - - -;
+#X floatatom 667 478 5 0 0 0 - - -;
+#X floatatom 708 478 5 0 0 0 - - -;
+#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 331 backproject \$1;
+#X text 634 332 show the backproject flow image;
+#X obj 612 332 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X msg 526 322 vmin \$1;
-#X floatatom 582 324 5 0 0 0 - - -;
-#X floatatom 598 348 5 0 0 0 - - -;
-#X msg 544 348 vmax \$1;
-#X floatatom 611 379 5 0 0 0 - - -;
-#X msg 557 378 smin \$1;
-#X text 636 348 V pre-filtering maximal value ( default : 256 );
-#X text 650 377 S pre-filtering minimal value ( default : 30 );
-#X msg 600 485 track \$1 \$2;
-#X text 677 483 track %x %y : mark the object to track;
-#X floatatom 644 438 5 0 0 0 - - -;
-#X floatatom 661 462 5 0 0 0 - - -;
-#X msg 579 436 rwidth \$1;
-#X msg 588 460 rheight \$1;
-#X text 680 436 initial search region width ( default : 20 );
-#X text 699 461 initial search region height ( default : 20 );
-#X text 627 324 V pre-filtering minimal value ( default : 50 );
-#X text 23 46 pix_opencv_camshift : continuously adaptive mean-shift
+#X msg 473 268 vmin \$1;
+#X floatatom 529 270 5 0 0 0 - - -;
+#X floatatom 545 288 5 0 0 0 - - -;
+#X msg 491 288 vmax \$1;
+#X floatatom 558 311 5 0 0 0 - - -;
+#X msg 504 310 smin \$1;
+#X text 583 288 V pre-filtering maximal value ( default : 256 );
+#X text 597 309 S pre-filtering minimal value ( default : 30 );
+#X msg 547 394 track \$1 \$2;
+#X text 624 392 track %x %y : mark the object to track;
+#X floatatom 591 355 5 0 0 0 - - -;
+#X floatatom 608 375 5 0 0 0 - - -;
+#X msg 526 353 rwidth \$1;
+#X msg 535 373 rheight \$1;
+#X text 627 353 initial search region width ( default : 20 );
+#X text 646 374 initial search region height ( default : 20 );
+#X text 574 270 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 text 23 81 written by Yves Degoyon ( ydegoyon@gmail.com ) \, inspired
-by OpenCV samples code.;
-#X obj 499 274 pix_resize 320 240;
-#X obj 469 754 rectangle 5.3 4;
-#X obj 677 -31 gemhead;
-#X obj 689 -4 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1
+#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 746 171 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
+#X obj 686 171 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
-1 -1;
-#X floatatom 728 136 5 0 10000 1 frame# - -;
-#X obj 689 25 openpanel;
-#X msg 689 45 open \$1;
-#X obj 677 154 pix_film;
-#X msg 695 88 auto \$1;
-#X obj 695 70 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+#X floatatom 668 136 5 0 10000 1 frame# - -;
+#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 790 71 colorspace RGBA;
-#X msg 895 71 colorspace RGB;
-#X obj 790 43 loadbang;
-#N canvas 0 22 450 300 vswitch 0;
-#X obj 144 263 outlet;
+#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 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 499 224 pd vswitch;
-#X obj 568 223 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0
+#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 77 device 0;
+#X msg 479 88 device 0;
#X msg 488 108 driver 1;
-#X msg 465 23 dialog;
-#X msg 470 53 device /dev/dv1394-0;
-#X obj 498 249 pix_rgba;
-#X connect 0 0 15 0;
-#X connect 2 0 3 0;
-#X connect 3 0 2 0;
-#X connect 6 0 8 1;
-#X connect 6 1 7 1;
-#X connect 6 2 11 0;
-#X connect 7 0 14 0;
-#X connect 8 0 10 0;
-#X connect 8 0 13 0;
+#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.;
+#X connect 6 0 12 0;
+#X connect 8 0 9 0;
#X connect 9 0 8 0;
-#X connect 9 1 7 0;
-#X connect 10 0 40 0;
-#X connect 11 0 12 0;
-#X connect 12 0 9 0;
-#X connect 14 0 10 1;
-#X connect 15 0 52 0;
-#X connect 16 0 0 0;
-#X connect 16 1 17 0;
-#X connect 17 0 18 0;
-#X connect 17 1 19 0;
-#X connect 17 2 20 0;
-#X connect 17 3 21 0;
-#X connect 17 4 22 0;
-#X connect 29 0 16 0;
-#X connect 31 0 29 0;
-#X connect 32 0 16 0;
-#X connect 33 0 32 0;
-#X connect 34 0 35 0;
-#X connect 35 0 16 0;
-#X connect 36 0 37 0;
-#X connect 37 0 16 0;
-#X connect 40 0 16 0;
-#X connect 42 0 44 0;
-#X connect 43 0 45 0;
-#X connect 44 0 16 0;
-#X connect 45 0 16 0;
-#X connect 51 0 16 0;
-#X connect 53 0 59 0;
-#X connect 54 0 57 0;
-#X connect 55 0 56 0;
-#X connect 56 0 59 1;
-#X connect 57 0 58 0;
-#X connect 58 0 59 0;
-#X connect 59 0 65 1;
-#X connect 59 2 55 0;
-#X connect 60 0 59 0;
-#X connect 61 0 60 0;
-#X connect 62 0 59 0;
-#X connect 62 0 67 0;
-#X connect 63 0 59 0;
-#X connect 64 0 62 0;
-#X connect 64 0 61 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 51 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;
diff --git a/pix_opencv_colorfilt-help.pd b/pix_opencv_colorfilt-help.pd
index 5283fce..8244bac 100644
--- a/pix_opencv_colorfilt-help.pd
+++ b/pix_opencv_colorfilt-help.pd
@@ -1,6 +1,15 @@
-#N canvas 472 125 925 684 10;
-#X obj 183 555 pix_texture;
-#X obj 659 -55 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577
+#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;
@@ -32,140 +41,124 @@
#X connect 9 0 10 0;
#X connect 9 2 8 0;
#X connect 10 0 6 0;
-#X restore 669 -11 pd gemwin;
-#X msg 669 -29 create;
-#X obj 178 299 cnv 15 600 250 empty empty empty 20 12 0 14 -4034 -66577
+#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 667 -49 Create window and render;
-#X text 432 585 written by Yves Degoyon ( ydegoyon@gmail.com );
-#X obj 183 574 rectangle 5.3 4;
-#X floatatom 215 505 5 0 0 0 - - -;
-#X floatatom 260 504 5 0 0 0 - - -;
-#X floatatom 305 503 5 0 0 0 - - -;
-#X text 349 503 RGB selected components;
-#X obj 250 401 pdp_colorgrid pdp_colorgrid1 256 0 256 50 0 50 0 1 1
-10 10 298 431;
-#X msg 256 363 tolerance \$1;
-#X floatatom 342 365 5 0 0 0 - - -;
-#X text 383 364 tolerance applied for the selection of colors;
-#X obj 740 114 gemmouse;
-#X obj 796 221 f;
-#X obj 766 220 f;
-#X obj 810 192 t b b;
-#X obj 763 265 pack f f;
-#X obj 786 142 route 1;
-#X msg 807 167 bang;
-#X floatatom 757 242 5 0 0 0 - - -;
-#X floatatom 810 245 5 0 0 0 - - -;
-#X text 433 550 pix_opencv_colorfilt : color filter;
-#X text 434 562 you can set the selected color with its RGB components
+#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 239 317 pick \$1 \$2;
-#X text 315 316 pick a color from the video;
-#X obj 352 -33 gemhead;
-#X obj 364 -6 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1
+#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 421 169 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
+#X obj 702 67 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
-1 -1;
-#X floatatom 403 134 5 0 10000 1 frame# - -;
-#X obj 364 23 openpanel;
-#X msg 364 43 open \$1;
-#X obj 352 152 pix_film;
-#X msg 370 86 auto \$1;
-#X obj 370 68 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
-;
-#X msg 465 69 colorspace RGBA;
-#X msg 570 69 colorspace RGB;
-#X msg 466 92 colorspace Grey;
-#X obj 465 41 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 181 224 pd vswitch;
-#X obj 249 224 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0
+#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 obj 115 150 pix_video;
-#X obj 116 -16 gemhead;
-#X msg 154 75 device 0;
-#X msg 163 106 driver 1;
-#X msg 140 21 dialog;
-#X msg 145 51 device /dev/dv1394-0;
-#X obj 183 474 pix_opencv_colorfilt;
-#X obj 181 266 pix_resize 320 240;
-#X obj 183 245 pix_rgba;
-#X connect 0 0 7 0;
-#X connect 2 0 3 0;
-#X connect 3 0 2 0;
-#X connect 12 0 50 1;
-#X connect 12 1 50 2;
-#X connect 12 2 50 3;
-#X connect 13 0 50 0;
-#X connect 14 0 13 0;
-#X connect 16 0 18 1;
-#X connect 16 1 17 1;
-#X connect 16 2 21 0;
-#X connect 17 0 20 1;
-#X connect 17 0 24 0;
-#X connect 18 0 20 0;
-#X connect 18 0 23 0;
-#X connect 19 0 18 0;
-#X connect 19 1 17 0;
-#X connect 20 0 27 0;
-#X connect 21 0 22 0;
-#X connect 22 0 19 0;
-#X connect 27 0 50 0;
-#X connect 29 0 35 0;
-#X connect 30 0 33 0;
-#X connect 31 0 32 0;
-#X connect 32 0 35 1;
-#X connect 33 0 34 0;
+#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 42 1;
-#X connect 35 2 31 0;
-#X connect 36 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 35 0;
-#X connect 38 0 44 0;
-#X connect 39 0 35 0;
-#X connect 40 0 35 0;
-#X connect 41 0 38 0;
-#X connect 41 0 37 0;
-#X connect 42 0 52 0;
-#X connect 43 0 42 2;
-#X connect 44 0 42 0;
-#X connect 45 0 44 0;
-#X connect 46 0 44 0;
-#X connect 47 0 44 0;
-#X connect 48 0 44 0;
-#X connect 49 0 44 0;
-#X connect 50 0 0 0;
-#X connect 50 1 8 0;
-#X connect 50 2 9 0;
-#X connect 50 3 10 0;
-#X connect 51 0 50 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/pix_opencv_contours_boundingrect-help.pd b/pix_opencv_contours_boundingrect-help.pd
index bbc7a5f..035f46a 100644
--- a/pix_opencv_contours_boundingrect-help.pd
+++ b/pix_opencv_contours_boundingrect-help.pd
@@ -1,59 +1,70 @@
-#N canvas 1444 52 1427 767 10;
-#X obj 580 466 cnv 15 550 250 empty empty empty 20 12 0 14 -24198 -66577
+#N canvas 182 109 1202 794 10;
+#X obj 2 42 cnv 15 430 560 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X floatatom 717 652 5 0 0 0 - - -;
-#X floatatom 803 666 5 0 0 0 - - -;
-#X floatatom 725 815 5 0 0 0 - - -;
-#X floatatom 760 815 5 0 0 0 - - -;
-#X floatatom 797 815 5 0 0 0 - - -;
-#X floatatom 831 815 5 0 0 0 - - -;
-#X obj 722 786 unpack 0 0 0 0 0;
-#X obj 730 736 route 0 1 2 3 4;
-#X text 790 754 For each contour detected;
-#X text 29 172 It is useful as a motion tracker if you have well isolated
+#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 621 480 mode \$1;
-#X obj 682 481 hradio 15 1 0 4 empty empty empty 0 -8 0 10 -262144
+#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 751 482 retrieval mode ( see cvFindContours );
-#X obj 717 506 hradio 15 1 0 5 empty empty empty 0 -8 0 10 -262144
+#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 799 506 retrieval method ( see cvFindContours );
-#X msg 650 505 method \$1;
-#X msg 673 528 maxmove \$1;
-#X floatatom 747 529 5 0 0 0 - - -;
-#X floatatom 771 553 5 0 0 0 - - -;
-#X msg 683 550 ftolerance \$1;
-#X text 808 551 frame tolerance for identification ( default 5 );
-#X text 30 138 pix_opencv_contours_boundingrect :: Calculates up-right
+#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 29 211 This object considers a contour to be analyzed any group
+#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 29 265 pix_opencv_contours_boundingrect works detecting any
+#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 833 719 5 0 0 0 - - -;
-#X text 871 720 number of contours;
-#X msg 698 575 nightmode \$1;
-#X obj 788 576 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
+#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 777 597 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
+#X obj 774 410 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 790 619 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
+#X obj 787 432 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X msg 717 596 draw \$1;
-#X text 804 595 draw bounding rectangle ( default : on );
-#X msg 732 617 show \$1;
-#X text 817 616 draw the detected contours ( default : off );
-#X text 811 576 hide original image ( default : off );
-#X obj 715 44 gemhead;
-#X obj 596 842 pix_texture;
-#X obj 33 40 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577
-0;
+#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;
@@ -84,31 +95,31 @@ to transform the contours of the shapes to be analyzed..;
#X connect 9 0 6 0;
#X connect 10 0 7 0;
#X connect 10 2 9 0;
-#X restore 43 84 pd gemwin;
-#X msg 43 66 create;
-#X obj 444 838 pix_texture;
-#X obj 596 371 separator;
-#X obj 727 71 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1
+#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 784 246 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
+#X obj 683 57 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
-1 -1;
-#X floatatom 766 211 5 0 10000 1 frame# - -;
-#X obj 727 100 openpanel;
-#X msg 727 120 open \$1;
-#X obj 715 229 pix_film;
-#X msg 733 163 auto \$1;
-#X obj 733 145 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -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 0
1;
-#X text 41 46 Create window and render;
-#X msg 828 146 colorspace RGBA;
-#X msg 933 146 colorspace RGB;
-#X msg 1037 146 colorspace Grey;
-#X obj 828 118 loadbang;
-#X obj 595 342 pix_separator;
-#X obj 444 374 separator;
-#X obj 444 345 pix_separator;
-#X obj 444 409 translateXYZ -2 0 0;
-#X obj 596 406 translateXYZ 2 0 0;
+#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;
@@ -137,139 +148,105 @@ to transform the contours of the shapes to be analyzed..;
#X connect 11 0 8 0;
#X connect 11 1 9 0;
#X connect 11 1 6 0;
-#X restore 536 267 pd vswitch;
-#X obj 604 267 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X obj 478 39 gemhead;
-#X msg 517 152 device 0;
-#X msg 526 183 driver 1;
-#X msg 503 98 dialog;
-#X msg 508 128 device /dev/dv1394-0;
-#X text 875 815 ( First contour ) Xorigin Yorigin Width Height;
-#X text 752 648 min area in pixels (default 10x10);
-#X text 840 664 max area in pixels (default 320x240);
-#X obj 536 296 pix_resize 320 240;
-#X text 790 528 maximum move of a countour ( default 20 );
-#X floatatom 762 432 5 0 0 0 - - -;
-#X obj 596 439 pix_opencv_bgsubstract;
-#X floatatom 802 872 5 0 0 0 - - -;
-#X obj 1159 591 loadbang;
-#X obj 802 848 *;
-#X obj 802 891 s area;
-#X msg 766 399 set;
-#X text 800 401 reset background reference;
-#X obj 969 943 timeroll;
-#X obj 908 913 autoscale;
-#X msg 963 891 0;
-#X obj 602 685 pix_opencv_contours_boundingrect;
-#X obj 478 227 pix_video;
-#X obj 1243 910 autoscale;
-#X msg 1298 888 0;
-#X obj 1242 943 timeroll;
-#X obj 1202 863 mean_n 25;
-#X text 923 338 TODO ::: in some cases i want to reuse losts tags inmediately
+#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 msg 927 890 240;
-#X msg 1262 887 240;
-#X text 924 297 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 obj 749 988 -;
-#X msg 723 958 240;
-#X obj 723 934 t b;
-#X msg 1162 624 50;
-#X obj 834 431 loadbang;
-#X msg 799 433 50;
-#X obj 531 320 pix_rgba;
-#X obj 443 919 square 2;
-#X obj 595 914 square 2;
-#X obj 1199 819 loadbang;
-#X connect 1 0 84 1;
-#X connect 2 0 84 2;
-#X connect 4 0 94 1;
-#X connect 4 0 96 0;
-#X connect 5 0 77 0;
-#X connect 6 0 77 1;
-#X connect 7 0 3 0;
-#X connect 7 1 4 0;
-#X connect 7 2 5 0;
-#X connect 7 3 6 0;
-#X connect 8 0 7 0;
-#X connect 11 0 84 0;
-#X connect 12 0 11 0;
-#X connect 14 0 16 0;
-#X connect 16 0 84 0;
-#X connect 17 0 84 0;
-#X connect 18 0 17 0;
-#X connect 19 0 20 0;
-#X connect 20 0 84 0;
-#X connect 27 0 84 0;
-#X connect 28 0 27 0;
-#X connect 29 0 31 0;
-#X connect 30 0 33 0;
-#X connect 31 0 84 0;
-#X connect 33 0 84 0;
-#X connect 36 0 48 0;
-#X connect 37 0 102 0;
-#X connect 39 0 40 0;
-#X connect 40 0 39 0;
-#X connect 41 0 101 0;
-#X connect 42 0 60 0;
-#X connect 43 0 46 0;
-#X connect 44 0 45 0;
-#X connect 45 0 48 1;
+#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 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 48 0;
-#X connect 48 0 61 1;
-#X connect 48 2 44 0;
-#X connect 49 0 48 0;
-#X connect 50 0 49 0;
-#X connect 52 0 48 0;
-#X connect 52 0 85 0;
-#X connect 53 0 48 0;
-#X connect 54 0 48 0;
-#X connect 55 0 52 0;
-#X connect 55 0 50 0;
-#X connect 56 0 42 0;
-#X connect 57 0 59 0;
-#X connect 58 0 57 0;
-#X connect 59 0 41 0;
-#X connect 60 0 74 0;
-#X connect 61 0 71 0;
-#X connect 62 0 61 2;
-#X connect 63 0 85 0;
-#X connect 64 0 85 0;
-#X connect 65 0 85 0;
-#X connect 66 0 85 0;
-#X connect 67 0 85 0;
-#X connect 71 0 100 0;
-#X connect 73 0 74 1;
-#X connect 74 0 84 0;
-#X connect 75 0 78 0;
-#X connect 76 0 97 0;
-#X connect 77 0 75 0;
-#X connect 79 0 74 0;
-#X connect 82 0 81 0;
-#X connect 83 0 82 0;
-#X connect 84 0 37 0;
-#X connect 84 1 8 0;
-#X connect 84 2 25 0;
-#X connect 85 0 61 0;
-#X connect 86 0 88 0;
-#X connect 87 0 86 0;
-#X connect 89 0 86 0;
-#X connect 91 0 82 0;
-#X connect 92 0 86 0;
-#X connect 94 0 82 0;
-#X connect 94 0 89 0;
-#X connect 95 0 94 0;
-#X connect 96 0 95 0;
-#X connect 97 0 1 0;
-#X connect 98 0 99 0;
-#X connect 99 0 73 0;
-#X connect 100 0 58 0;
-#X connect 100 0 56 0;
-#X connect 103 0 91 0;
-#X connect 103 0 83 0;
-#X connect 103 0 92 0;
-#X connect 103 0 87 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/pix_opencv_contours_convexity-help.pd b/pix_opencv_contours_convexity-help.pd
index dded33a..9204814 100644
--- a/pix_opencv_contours_convexity-help.pd
+++ b/pix_opencv_contours_convexity-help.pd
@@ -1,23 +1,30 @@
-#N canvas 576 38 1283 943 10;
-#X obj 594 611 cnv 15 455 213 empty empty empty 20 12 0 14 -24198 -66577
+#N canvas 231 355 1068 671 10;
+#X obj 17 217 cnv 15 430 450 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X floatatom 1767 815 5 0 0 0 - - -;
-#X floatatom 1801 815 5 0 0 0 - - -;
-#X text 1775 834 Depth point (X -Y);
-#X text 1840 816 End point (X -Y);
-#X text 46 156 pix_opencv_contours_convexity :: Finds convexity defects
+#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 45 192 This object considers a contour to be analyzed any group
+#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 46 245 pix_opencv_contours_boundingrect works detecting the
+#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 735 64 gemhead;
-#X obj 616 862 pix_texture;
-#X obj 53 60 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577
+#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;
@@ -49,196 +56,133 @@ be analyzed..;
#X connect 9 0 6 0;
#X connect 10 0 7 0;
#X connect 10 2 9 0;
-#X restore 63 104 pd gemwin;
-#X msg 63 86 create;
-#X obj 464 858 pix_texture;
-#X obj 464 886 square 2;
-#X obj 616 391 separator;
-#X obj 747 91 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1
+#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 804 266 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
+#X obj 704 216 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
-1 -1;
-#X floatatom 786 231 5 0 10000 1 frame# - -;
-#X obj 747 120 openpanel;
-#X msg 747 140 open \$1;
-#X obj 735 249 pix_film;
-#X msg 753 183 auto \$1;
-#X obj 753 165 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -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 61 66 Create window and render;
-#X msg 848 166 colorspace RGBA;
-#X msg 953 166 colorspace RGB;
-#X msg 1057 166 colorspace Grey;
-#X obj 848 138 loadbang;
-#X obj 615 362 pix_separator;
-#X obj 464 394 separator;
-#X obj 464 365 pix_separator;
-#X obj 464 429 translateXYZ -2 0 0;
-#N canvas 0 22 450 300 vswitch 0;
-#X obj 144 263 outlet;
+#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 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 557 319 pd vswitch;
-#X obj 625 319 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0
+#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 498 247 pix_video;
-#X obj 498 59 gemhead;
-#X msg 537 172 device 0;
-#X msg 546 203 driver 1;
-#X msg 523 118 dialog;
-#X msg 528 148 device /dev/dv1394-0;
-#X obj 616 491 pix_opencv_bgsubstract;
-#X obj 616 459 pix_resize 320 240;
-#X floatatom 763 492 5 0 0 0 - - -;
-#X obj 616 534 pix_opencv_morphology;
-#X floatatom 764 533 5 0 0 0 - - -;
-#X obj 616 881 square 2;
-#X floatatom 753 797 5 0 0 0 - - -;
-#X floatatom 788 797 5 0 0 0 - - -;
-#X floatatom 818 778 5 0 0 0 - - -;
-#X floatatom 852 778 5 0 0 0 - - -;
-#X obj 790 695 route 0 1 2 3 4;
-#X obj 787 733 unpack 0 0 0 0 0 0;
-#X floatatom 882 759 5 0 0 0 - - -;
-#X floatatom 916 759 5 0 0 0 - - -;
-#X text 826 798 Start point (X -Y);
-#X text 890 778 Depth point (X -Y);
-#X text 955 760 End point (X -Y);
-#X floatatom 797 886 5 0 0 0 - - -;
-#X floatatom 832 886 5 0 0 0 - - -;
-#X floatatom 862 867 5 0 0 0 - - -;
-#X floatatom 896 867 5 0 0 0 - - -;
-#X obj 831 822 unpack 0 0 0 0 0 0;
-#X floatatom 926 848 5 0 0 0 - - -;
-#X floatatom 960 848 5 0 0 0 - - -;
-#X text 870 887 Start point (X -Y);
-#X text 934 867 Depth point (X -Y);
-#X text 999 849 End point (X -Y);
-#X floatatom 858 982 5 0 0 0 - - -;
-#X floatatom 893 982 5 0 0 0 - - -;
-#X floatatom 923 963 5 0 0 0 - - -;
-#X floatatom 957 963 5 0 0 0 - - -;
-#X obj 892 918 unpack 0 0 0 0 0 0;
-#X floatatom 987 944 5 0 0 0 - - -;
-#X floatatom 1021 944 5 0 0 0 - - -;
-#X text 931 983 Start point (X -Y);
-#X text 995 963 Depth point (X -Y);
-#X text 1060 945 End point (X -Y);
-#X floatatom 930 1056 5 0 0 0 - - -;
-#X floatatom 965 1056 5 0 0 0 - - -;
-#X floatatom 995 1037 5 0 0 0 - - -;
-#X floatatom 1029 1037 5 0 0 0 - - -;
-#X obj 964 992 unpack 0 0 0 0 0 0;
-#X floatatom 1059 1018 5 0 0 0 - - -;
-#X floatatom 1093 1018 5 0 0 0 - - -;
-#X text 1003 1057 Start point (X -Y);
-#X text 1067 1037 Depth point (X -Y);
-#X text 1132 1019 End point (X -Y);
-#X floatatom 704 660 5 0 0 0 - - -;
-#X text 740 664 number convexity defects in our detected contour;
-#X text 900 696 A convexity defect is defined by 3 points. So for each
+#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 615 420 translateXYZ 2 0 0;
-#X obj 618 630 pix_opencv_contours_convexity;
-#X obj 558 340 pix_rgba;
-#X msg 762 462 set;
-#X text 791 461 <- Set the background reference;
-#X text 797 492 <-Adjust threshold;
-#X text 803 535 <-Adjust morphology if needed;
-#X connect 8 0 21 0;
-#X connect 9 0 46 0;
-#X connect 11 0 12 0;
-#X connect 12 0 11 0;
-#X connect 13 0 14 0;
-#X connect 15 0 91 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 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 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 33 1;
-#X connect 21 2 17 0;
-#X connect 22 0 21 0;
-#X connect 23 0 22 0;
-#X connect 25 0 21 0;
-#X connect 25 0 35 0;
-#X connect 26 0 21 0;
-#X connect 27 0 21 0;
-#X connect 28 0 25 0;
-#X connect 28 0 23 0;
-#X connect 29 0 15 0;
-#X connect 30 0 32 0;
-#X connect 31 0 30 0;
-#X connect 32 0 13 0;
-#X connect 33 0 93 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 44 0;
-#X connect 42 0 41 0;
-#X connect 43 0 41 1;
-#X connect 44 0 92 0;
-#X connect 45 0 44 1;
-#X connect 51 0 52 0;
-#X connect 51 1 62 0;
-#X connect 51 2 72 0;
-#X connect 51 3 82 0;
-#X connect 52 0 47 0;
-#X connect 52 1 48 0;
-#X connect 52 2 49 0;
-#X connect 52 3 50 0;
-#X connect 52 4 53 0;
-#X connect 52 5 54 0;
-#X connect 62 0 58 0;
-#X connect 62 1 59 0;
-#X connect 62 2 60 0;
-#X connect 62 3 61 0;
-#X connect 62 4 63 0;
-#X connect 62 5 64 0;
-#X connect 72 0 68 0;
-#X connect 72 1 69 0;
-#X connect 72 2 70 0;
-#X connect 72 3 71 0;
-#X connect 72 4 73 0;
-#X connect 72 5 74 0;
-#X connect 82 0 78 0;
-#X connect 82 1 79 0;
-#X connect 82 2 80 0;
-#X connect 82 3 81 0;
-#X connect 82 4 83 0;
-#X connect 82 5 84 0;
-#X connect 91 0 42 0;
-#X connect 92 0 9 0;
-#X connect 92 1 88 0;
-#X connect 92 2 51 0;
-#X connect 93 0 31 0;
-#X connect 93 0 29 0;
-#X connect 94 0 41 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/pix_opencv_dft-help.pd b/pix_opencv_dft-help.pd
index 7395dc3..5e71995 100644
--- a/pix_opencv_dft-help.pd
+++ b/pix_opencv_dft-help.pd
@@ -1,5 +1,17 @@
-#N canvas 524 186 1133 642 10;
-#X obj 16 22 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577
+#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;
@@ -31,128 +43,115 @@
#X connect 9 0 6 0;
#X connect 10 0 7 0;
#X connect 10 2 9 0;
-#X restore 21 66 pd gemwin;
-#X msg 21 45 create;
-#X text 22 27 Create window and render;
-#X obj 465 478 cnv 15 600 150 empty empty empty 20 12 0 14 -24198 -66577
+#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 486 577 pix_opencv_dft;
-#X text 17 136 written by yves degoyon ( ydegoyon@gmail.com );
-#X text 18 120 this can be used for pattern matching;
-#X text 18 106 pix_opencv_dft : discrete fourier transform;
-#X msg 548 539 bang;
-#X obj 625 515 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 624 489 loadbang;
-#X obj 625 539 metro 100;
-#X text 694 539 <-- Calculate Discrete Fourier Transform of the pattern
-;
-#X text 716 550 pdp_opencv_dft is too greedy to be calculayed for every
+#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 714 563 frame so it is just processed when it receives a bang
+#X text 698 303 frame so it is just processed when it receives a bang
;
-#X obj 605 42 gemhead;
-#X obj 486 695 pix_texture;
-#X obj 486 714 square 2;
-#X obj 334 691 pix_texture;
-#X obj 334 719 square 2;
-#X obj 486 369 separator;
-#X obj 617 69 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1
+#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 674 244 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
+#X obj 686 126 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
-1 -1;
-#X floatatom 656 209 5 0 10000 1 frame# - -;
-#X obj 617 98 openpanel;
-#X msg 617 118 open \$1;
-#X obj 605 227 pix_film;
-#X msg 623 161 auto \$1;
-#X obj 623 143 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
-1;
-#X msg 718 144 colorspace RGBA;
-#X msg 823 144 colorspace RGB;
-#X msg 927 144 colorspace Grey;
-#X obj 718 116 loadbang;
-#X obj 485 340 pix_separator;
-#X obj 334 372 separator;
-#X obj 334 343 pix_separator;
-#X obj 334 407 translateXYZ -2 0 0;
-#X obj 486 404 translateXYZ 2 0 0;
-#N canvas 0 22 450 300 vswitch 0;
-#X obj 144 263 outlet;
+#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 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 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 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 430 283 pd vswitch;
-#X obj 498 283 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 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 368 225 pix_video;
-#X obj 368 37 gemhead;
-#X msg 407 150 device 0;
-#X msg 416 181 driver 1;
-#X msg 393 96 dialog;
-#X msg 398 126 device /dev/dv1394-0;
-#X obj 428 308 pix_rgba;
-#X connect 1 0 2 0;
-#X connect 2 0 1 0;
-#X connect 5 0 17 0;
-#X connect 9 0 5 0;
-#X connect 10 0 12 0;
-#X connect 11 0 10 0;
-#X connect 12 0 5 0;
-#X connect 16 0 27 0;
-#X connect 17 0 18 0;
-#X connect 19 0 20 0;
-#X connect 21 0 38 0;
-#X connect 22 0 25 0;
+#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 24 0 27 1;
#X connect 25 0 26 0;
-#X connect 26 0 27 0;
-#X connect 27 0 39 1;
-#X connect 27 2 23 0;
-#X connect 28 0 27 0;
-#X connect 29 0 28 0;
-#X connect 30 0 27 0;
-#X connect 30 0 41 0;
-#X connect 31 0 27 0;
-#X connect 32 0 27 0;
-#X connect 33 0 30 0;
-#X connect 33 0 29 0;
-#X connect 34 0 21 0;
-#X connect 35 0 37 0;
-#X connect 36 0 35 0;
-#X connect 37 0 19 0;
-#X connect 38 0 5 0;
-#X connect 39 0 47 0;
-#X connect 40 0 39 2;
-#X connect 41 0 39 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 41 0;
-#X connect 44 0 41 0;
-#X connect 45 0 41 0;
-#X connect 46 0 41 0;
-#X connect 47 0 36 0;
-#X connect 47 0 34 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/pix_opencv_distrans-help.pd b/pix_opencv_distrans-help.pd
index ed5a4e4..2068f6f 100644
--- a/pix_opencv_distrans-help.pd
+++ b/pix_opencv_distrans-help.pd
@@ -1,26 +1,37 @@
-#N canvas 553 38 1121 986 10;
-#X obj 330 416 cnv 15 400 150 empty empty empty 20 12 0 14 -24198 -66577
+#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 354 524 pix_opencv_distrans;
-#X msg 424 431 voronoi \$1;
-#X obj 515 431 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
+#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 534 431 switch Voronoi diagram mode on/off;
-#X text 483 457 use 3x3 mask;
-#X text 493 476 use 5x5 mask;
-#X text 499 495 use precise distance transform;
-#X text 554 522 edge threshold;
-#X msg 446 495 mask 0;
-#X msg 436 476 mask 5;
-#X msg 426 456 mask 3;
-#X text -118 58 it's a morphology filter that can be used to preprocess
+#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 -117 83 written by lluis gomez i bigorda ( lluisgomez@hangar.org
+#X text 12 93 written by lluis gomez i bigorda ( lluisgomez@hangar.org
);
-#X text -118 44 pix_opencv_distrans : distance processing;
-#X floatatom 507 522 5 0 0 0 - - -;
-#X obj -116 -51 cnv 15 220 70 empty empty empty 20 12 0 14 -195568
--66577 0;
+#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;
@@ -51,113 +62,101 @@ video frames;
#X connect 9 0 6 0;
#X connect 10 0 7 0;
#X connect 10 2 9 0;
-#X restore -111 -7 pd gemwin;
-#X msg -111 -28 create;
-#X text -110 -46 Create window and render;
-#X obj 473 -31 gemhead;
-#X obj 354 622 pix_texture;
-#X obj 354 641 square 2;
-#X obj 202 618 pix_texture;
-#X obj 202 646 square 2;
-#X obj 354 296 separator;
-#X obj 485 -4 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1
+#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 542 171 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
+#X obj 756 77 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
-1 -1;
-#X floatatom 524 136 5 0 10000 1 frame# - -;
-#X obj 485 25 openpanel;
-#X msg 485 45 open \$1;
-#X obj 473 154 pix_film;
-#X msg 491 88 auto \$1;
-#X obj 491 70 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
-;
-#X msg 586 71 colorspace RGBA;
-#X msg 691 71 colorspace RGB;
-#X msg 795 71 colorspace Grey;
-#X obj 586 43 loadbang;
-#X obj 353 267 pix_separator;
-#X obj 202 299 separator;
-#X obj 202 270 pix_separator;
-#X obj 202 334 translateXYZ -2 0 0;
-#X obj 354 331 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 295 224 pd vswitch;
-#X obj 363 224 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0
+#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 obj 236 152 pix_video;
-#X obj 236 -36 gemhead;
-#X msg 275 77 device 0;
-#X msg 284 108 driver 1;
-#X msg 261 23 dialog;
-#X msg 266 53 device /dev/dv1394-0;
-#X obj 294 245 pix_rgba;
-#X connect 1 0 21 0;
-#X connect 2 0 1 0;
-#X connect 3 0 2 0;
-#X connect 9 0 1 0;
-#X connect 10 0 1 0;
-#X connect 11 0 1 0;
-#X connect 15 0 1 1;
-#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 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 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 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 23 0;
-#X connect 42 0 1 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;
+#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/pix_opencv_edge-help.pd b/pix_opencv_edge-help.pd
index b4c23f3..c523796 100644
--- a/pix_opencv_edge-help.pd
+++ b/pix_opencv_edge-help.pd
@@ -1,14 +1,23 @@
-#N canvas 564 22 1042 915 10;
-#X obj 347 391 cnv 15 300 67 empty empty empty 20 12 0 14 -24198 -66577
+#N canvas 353 555 914 465 10;
+#X obj 8 158 cnv 15 430 250 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X obj 364 407 pix_opencv_edge;
-#X floatatom 493 406 5 0 0 0 - - -;
-#X text 536 405 edge threshold;
-#X text -110 60 written by lluis gomez i bigorda ( lluisgomez@hangar.org
-);
-#X text -109 44 pix_opencv_edge : edge detection filter;
-#X obj -106 -41 cnv 15 220 70 empty empty empty 20 12 0 14 -195568
+#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 - - -;
+#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 22 454 304 gemwin 0;
#X obj 67 89 outlet;
#X obj 67 10 inlet;
@@ -39,108 +48,97 @@
#X connect 9 0 6 0;
#X connect 10 0 7 0;
#X connect 10 2 9 0;
-#X restore -101 3 pd gemwin;
-#X msg -101 -18 create;
-#X text -100 -36 Create window and render;
-#X obj 483 -21 gemhead;
-#X obj 364 632 pix_texture;
-#X obj 364 651 square 2;
-#X obj 212 628 pix_texture;
-#X obj 212 656 square 2;
-#X obj 364 306 separator;
-#X obj 495 6 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 -1
-;
-#X obj 552 181 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
+#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 534 146 5 0 10000 1 frame# - -;
-#X obj 495 35 openpanel;
-#X msg 495 55 open \$1;
-#X obj 483 164 pix_film;
-#X msg 501 98 auto \$1;
-#X obj 501 80 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+#X floatatom 671 139 5 0 10000 1 frame# - -;
+#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 0 1
;
-#X msg 596 81 colorspace RGBA;
-#X msg 701 81 colorspace RGB;
-#X msg 805 81 colorspace Grey;
-#X obj 596 53 loadbang;
-#X obj 363 277 pix_separator;
-#X obj 212 309 separator;
-#X obj 212 280 pix_separator;
-#X obj 212 344 translateXYZ -2 0 0;
-#X obj 364 341 translateXYZ 2 0 0;
-#N canvas 0 22 450 300 vswitch 0;
-#X obj 144 263 outlet;
+#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 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 305 234 pd vswitch;
-#X obj 373 234 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0
+#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 246 162 pix_video;
-#X obj 246 -26 gemhead;
-#X msg 285 87 device 0;
-#X msg 294 118 driver 1;
-#X msg 271 33 dialog;
-#X msg 276 63 device /dev/dv1394-0;
-#X obj 302 257 pix_rgba;
-#X connect 1 0 11 0;
-#X connect 2 0 1 1;
-#X connect 7 0 8 0;
-#X connect 8 0 7 0;
-#X connect 10 0 21 0;
-#X connect 11 0 12 0;
-#X connect 13 0 14 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 13 0;
-#X connect 32 0 1 0;
-#X connect 33 0 41 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 30 0;
-#X connect 41 0 28 0;
+#X obj 453 155 pix_video;
+#X obj 453 -33 gemhead;
+#X msg 492 80 device 0;
+#X msg 501 111 driver 1;
+#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 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 46 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 40 0;
+#X connect 46 0 35 0;
+#X connect 46 0 33 0;
diff --git a/pix_opencv_findchessboardcorners-help.pd b/pix_opencv_findchessboardcorners-help.pd
index 1128ea5..40bc6f1 100644
--- a/pix_opencv_findchessboardcorners-help.pd
+++ b/pix_opencv_findchessboardcorners-help.pd
@@ -1,9 +1,19 @@
-#N canvas 227 24 1228 719 10;
-#X obj 583 433 cnv 15 550 120 empty empty empty 20 12 0 14 -24198 -66577
+#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 715 -18 gemhead;
-#X obj 596 579 pix_texture;
-#X obj 33 40 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577
+#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;
@@ -35,30 +45,30 @@
#X connect 9 0 6 0;
#X connect 10 0 7 0;
#X connect 10 2 9 0;
-#X restore 43 84 pd gemwin;
-#X msg 43 66 destroy;
-#X obj 444 578 pix_texture;
-#X obj 596 371 separator;
-#X obj 727 9 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1 -1
-;
-#X obj 784 184 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
+#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 766 149 5 0 10000 1 frame# - -;
-#X obj 727 38 openpanel;
-#X msg 727 58 open \$1;
-#X obj 715 167 pix_film;
-#X msg 733 101 auto \$1;
-#X obj 733 83 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
-;
-#X text 41 46 Create window and render;
-#X msg 596 109 colorspace RGBA;
-#X msg 750 124 colorspace Grey;
-#X obj 596 34 loadbang;
-#X obj 595 342 pix_separator;
-#X obj 444 374 separator;
-#X obj 444 345 pix_separator;
-#X obj 444 409 translateXYZ -2 0 0;
-#X obj 596 406 translateXYZ 2 0 0;
+#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;
@@ -87,88 +97,89 @@
#X connect 11 0 8 0;
#X connect 11 1 9 0;
#X connect 11 1 6 0;
-#X restore 444 207 pd vswitch;
-#X obj 521 207 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 1
-1;
-#X obj 444 -23 gemhead;
-#X msg 478 60 device 0;
-#X msg 469 36 dialog;
-#X obj 444 165 pix_video;
-#X obj 444 599 square 2;
-#X obj 596 601 square 2;
-#X obj 596 526 pix_opencv_findchessboardcorners;
-#X text 25 137 pix_opencv_findchessboardcorners :: Search inner corners
+#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 22 173 It is useful to calibration severals cameras togehter
+#X text -55 61 It is useful to calibration severals cameras togehter
or camera(s) and video beamer(s)...;
-#X obj 444 314 pix_gray;
-#X msg 492 111 driver 0;
-#X obj 817 582 print;
-#X obj 514 280 spigot;
-#X obj 514 314 pix_rgba;
-#X obj 444 280 spigot 1;
-#X obj 598 237 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#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 615 237 switch gray/color;
-#X text 830 558 print out raw corners coordinates...;
-#X obj 650 472 pack 6 7;
-#X floatatom 650 452 5 0 0 0 - - -;
-#X floatatom 703 452 5 0 0 0 - - -;
-#X msg 488 86 device /dev/video0;
-#X msg 650 492 patternSize \$1 \$2;
-#X text 784 493 pattern size (number of inner corners in each direction)
+#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 598 257 == 0;
-#X obj 444 236 pix_resize 640 480;
-#X obj 521 185 loadbang;
-#X connect 1 0 13 0;
-#X connect 2 0 32 0;
-#X connect 4 0 5 0;
-#X connect 5 0 4 0;
-#X connect 6 0 31 0;
-#X connect 7 0 24 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 25 1;
-#X connect 13 2 9 0;
-#X connect 14 0 13 0;
-#X connect 15 0 14 0;
-#X connect 17 0 13 0;
-#X connect 17 0 30 0;
-#X connect 18 0 13 0;
-#X connect 19 0 17 0;
-#X connect 19 0 15 0;
-#X connect 20 0 7 0;
-#X connect 21 0 23 0;
-#X connect 22 0 21 0;
-#X connect 23 0 6 0;
-#X connect 24 0 33 0;
-#X connect 25 0 52 0;
-#X connect 26 0 25 2;
-#X connect 27 0 30 0;
-#X connect 28 0 30 0;
-#X connect 29 0 30 0;
-#X connect 30 0 25 0;
-#X connect 33 0 2 0;
-#X connect 33 1 38 0;
-#X connect 36 0 22 0;
-#X connect 36 0 20 0;
-#X connect 37 0 30 0;
-#X connect 39 0 40 0;
-#X connect 40 0 20 0;
-#X connect 40 0 22 0;
-#X connect 41 0 36 0;
-#X connect 42 0 39 1;
-#X connect 42 0 51 0;
-#X connect 45 0 49 0;
-#X connect 46 0 45 0;
-#X connect 47 0 45 1;
-#X connect 48 0 30 0;
-#X connect 49 0 33 0;
-#X connect 51 0 41 1;
-#X connect 52 0 41 0;
-#X connect 52 0 39 0;
-#X connect 53 0 26 0;
+#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/pix_opencv_floodfill-help.pd b/pix_opencv_floodfill-help.pd
index 01f967e..4655918 100644
--- a/pix_opencv_floodfill-help.pd
+++ b/pix_opencv_floodfill-help.pd
@@ -1,5 +1,15 @@
-#N canvas 534 327 1171 685 10;
-#X obj -96 -15 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577
+#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;
@@ -39,169 +49,161 @@
#X connect 10 1 9 0;
#X connect 10 2 11 0;
#X connect 11 0 6 0;
-#X restore -89 31 pd gemwin;
-#X msg -88 9 create;
-#X text -88 -12 Create window and render;
-#X obj 288 360 cnv 15 600 350 empty empty empty 20 12 0 14 -24198 -66577
+#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 795 192 gemmouse;
-#X obj 851 299 f;
-#X obj 821 298 f;
-#X obj 865 270 t b b;
-#X obj 821 326 pack f f;
-#X obj 841 220 route 1;
-#X msg 862 245 bang;
-#X obj 315 603 pix_opencv_floodfill;
-#X text -99 97 used in tracking algorithms as an object selector;
-#X text -99 124 and Yves Degoyon ( ydegoyon@gmail.com );
-#X text -100 74 pdp_opencv_floodfill : mark image components with a
+#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 -99 110 Written by Lluis Gomez i Bigorda ( lluisgomez@hangar.org
+#X text -170 187 Written by Lluis Gomez i Bigorda ( lluisgomez@hangar.org
);
-#X floatatom 406 555 5 0 0 0 - - -;
-#X floatatom 414 576 5 0 0 0 - - -;
-#X msg 350 386 mark \$1 \$2;
-#X msg 397 535 color \$1;
-#X obj 459 536 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#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 485 534 activate color mode ( default : on );
-#X msg 381 461 fillcolor 1 255 0 123;
-#X text 519 462 fillcolor of nth component ( 1 < n < 10 );
-#X msg 365 414 delete 1;
-#X msg 379 436 clear;
-#X text 425 414 delete a component ( 1 <= index <= 10 );
-#X text 428 436 delete all components;
-#X text 479 497 set connectivity ( default 4 );
-#X text 448 555 lower tolerance ( default 20 );
-#X text 454 575 upper tolerance ( default 20 );
-#X obj 432 631 route 0 1 2 3 4 5 6 7 8 9;
-#X floatatom 433 676 5 0 0 0 - - -;
-#X floatatom 469 677 5 0 0 0 - - -;
-#X floatatom 505 677 5 0 0 0 - - -;
-#X floatatom 541 677 5 0 0 0 - - -;
-#X obj 433 654 unpack f f f f;
-#X text 435 693 X;
-#X text 472 693 Y;
-#X text 504 694 Width;
-#X text 542 694 Height;
-#X text 591 632 detected components;
-#X msg 385 486 connectivity 4;
-#X msg 387 509 connectivity 8;
-#X obj 493 -11 gemhead;
-#X obj 315 745 pix_texture;
-#X obj 505 16 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -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 562 191 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
+#X obj 582 201 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;
-#N canvas 4 49 450 300 vswitch 0;
-#X obj 144 263 outlet;
+#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 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
+#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 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 315 764 rectangle 5.3 4;
-#X floatatom 743 233 5 0 0 0 - - -;
-#X floatatom 791 232 5 0 0 0 - - -;
-#X text 424 386 mark x y : mark a component;
-#X obj 315 318 pix_resize 320 240;
-#X obj 315 281 pix_rgba;
-#X connect 1 0 2 0;
-#X connect 2 0 1 0;
-#X connect 5 0 68 0;
-#X connect 5 0 7 1;
-#X connect 5 1 69 0;
-#X connect 5 1 6 1;
-#X connect 5 2 10 0;
-#X connect 6 0 9 1;
-#X connect 7 0 9 0;
+#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 8 1 6 0;
-#X connect 9 0 19 0;
-#X connect 10 0 11 0;
-#X connect 11 0 8 0;
-#X connect 12 0 46 0;
-#X connect 12 1 32 0;
-#X connect 17 0 12 1;
-#X connect 18 0 12 2;
-#X connect 19 0 12 0;
-#X connect 20 0 12 0;
-#X connect 21 0 20 0;
-#X connect 23 0 12 0;
-#X connect 25 0 12 0;
-#X connect 26 0 12 0;
-#X connect 32 0 37 0;
-#X connect 37 0 33 0;
-#X connect 37 1 34 0;
-#X connect 37 2 35 0;
-#X connect 37 3 36 0;
-#X connect 43 0 12 0;
-#X connect 44 0 12 0;
-#X connect 45 0 52 0;
-#X connect 46 0 67 0;
-#X connect 47 0 50 0;
-#X connect 48 0 49 0;
-#X connect 49 0 52 1;
+#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 52 0;
-#X connect 52 0 59 1;
-#X connect 52 2 48 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 53 0;
-#X connect 55 0 52 0;
-#X connect 55 0 61 0;
-#X connect 56 0 52 0;
-#X connect 57 0 52 0;
-#X connect 58 0 55 0;
-#X connect 58 0 54 0;
-#X connect 59 0 72 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 71 0 12 0;
-#X connect 72 0 71 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/pix_opencv_haarcascade-help.pd b/pix_opencv_haarcascade-help.pd
index 9108e92..43f62cc 100644
--- a/pix_opencv_haarcascade-help.pd
+++ b/pix_opencv_haarcascade-help.pd
@@ -1,67 +1,67 @@
-#N canvas 532 22 1115 987 10;
-#X obj 613 540 cnv 15 650 250 empty empty empty 20 12 0 14 -24198 -66577
+#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 floatatom 792 876 5 0 0 0 - - -;
-#X floatatom 827 876 5 0 0 0 - - -;
-#X floatatom 864 876 5 0 0 0 - - -;
-#X floatatom 935 876 5 0 0 0 - - -;
-#X floatatom 970 876 5 0 0 0 - - -;
-#X floatatom 1007 876 5 0 0 0 - - -;
-#X floatatom 1073 878 5 0 0 0 - - -;
-#X floatatom 1108 878 5 0 0 0 - - -;
-#X obj 616 765 pix_opencv_haarcascade;
-#X obj 702 544 openpanel;
-#X obj 779 822 route 0 1 2 3 4;
-#X text 779 894 Xcenter Ycenter Radius;
-#X text 924 893 Xcenter Ycenter Radius;
-#X obj 789 847 unpack 0 0 0;
-#X obj 932 847 unpack 0 0 0;
-#X obj 1070 849 unpack 0 0 0;
-#X floatatom 1148 877 5 0 0 0 - - -;
-#X text 1067 894 Xcenter Ycenter Radius;
-#X msg 642 545 load \$1;
-#X text 792 546 Load a trained cascade classifier from XML file;
-#X obj 772 544 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+#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 809 641 5 0 0 0 - - -;
-#X floatatom 763 612 5 0 0 0 - - -;
-#X msg 662 578 mode \$1;
-#X obj 723 578 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#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 672 611 min_size \$1;
-#X msg 686 638 min_neighbors \$1;
-#X text 847 630 Minimum number (minus 1) of neighbor rectangles that
+#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 715 671 scale_factor \$1;
-#X floatatom 833 671 5 0 0 0 - - -;
-#X text 877 670 The factor by which the search window is scaled between
+#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 879 822 For each object detected;
-#X floatatom 686 796 5 0 0 0 - - -;
-#X text 725 796 number of objects detected;
-#X text 804 613 Minimum size of object (default 30);
-#X msg 743 700 ftolerance \$1;
-#X floatatom 833 701 5 0 0 0 - - -;
-#X msg 748 724 clear;
-#X text 874 708 temporarily ( default 5 );
-#X text 874 696 number of frames where an object can disappear;
-#X text 793 725 clear markers history;
-#X text 745 575 Mode of operation. Currently the only flag that may
+#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 50 179 This object considers a contour to be analyzed any group
+#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 51 232 pix_opencv_contours_convexhull works detecting the bigest
+#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 51 143 pix_opencv_contours_convexhull :: Finds convexhull of
-the bigest contour of a binary image.;
-#X obj 735 64 gemhead;
-#X obj 616 862 pix_texture;
-#X obj 616 881 square 2;
-#X obj 53 60 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577
-0;
+#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;
@@ -92,134 +92,113 @@ the bigest contour of a binary image.;
#X connect 9 0 6 0;
#X connect 10 0 7 0;
#X connect 10 2 9 0;
-#X restore 63 104 pd gemwin;
-#X msg 63 86 create;
-#X obj 464 858 pix_texture;
-#X obj 464 886 square 2;
-#X obj 616 391 separator;
-#X obj 747 91 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1
+#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 804 266 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
+#X obj 702 28 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
-1 -1;
-#X floatatom 786 231 5 0 10000 1 frame# - -;
-#X obj 747 120 openpanel;
-#X msg 747 140 open \$1;
-#X obj 735 249 pix_film;
-#X msg 753 183 auto \$1;
-#X obj 753 165 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -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 61 66 Create window and render;
-#X msg 848 166 colorspace RGBA;
-#X msg 953 166 colorspace RGB;
-#X msg 1057 166 colorspace Grey;
-#X obj 848 138 loadbang;
-#X obj 615 362 pix_separator;
-#X obj 464 394 separator;
-#X obj 464 365 pix_separator;
-#X obj 464 429 translateXYZ -2 0 0;
-#X obj 616 426 translateXYZ 2 0 0;
-#N canvas 0 22 450 300 vswitch 0;
-#X obj 144 263 outlet;
+#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 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 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 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 554 308 pd vswitch;
-#X obj 622 308 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X obj 498 247 pix_video;
-#X obj 498 59 gemhead;
-#X msg 537 172 device 0;
-#X msg 546 203 driver 1;
-#X msg 523 118 dialog;
-#X msg 528 148 device /dev/dv1394-0;
-#X obj 616 459 pix_resize 320 240;
-#X obj 555 334 pix_rgba;
-#X connect 9 0 47 0;
-#X connect 9 1 33 0;
-#X connect 9 2 11 0;
-#X connect 10 0 19 0;
-#X connect 11 0 14 0;
-#X connect 11 1 15 0;
-#X connect 11 2 16 0;
-#X connect 14 0 1 0;
-#X connect 14 1 2 0;
-#X connect 14 2 3 0;
-#X connect 15 0 4 0;
-#X connect 15 1 5 0;
-#X connect 15 2 6 0;
-#X connect 16 0 7 0;
-#X connect 16 1 8 0;
-#X connect 16 2 17 0;
-#X connect 19 0 9 0;
-#X connect 21 0 10 0;
-#X connect 22 0 27 0;
-#X connect 23 0 26 0;
-#X connect 24 0 9 0;
-#X connect 25 0 24 0;
-#X connect 26 0 9 0;
-#X connect 27 0 9 0;
-#X connect 29 0 9 0;
-#X connect 30 0 29 0;
-#X connect 36 0 9 0;
-#X connect 37 0 36 0;
-#X connect 38 0 9 0;
-#X connect 46 0 60 0;
-#X connect 47 0 48 0;
-#X connect 50 0 51 0;
-#X connect 51 0 50 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 54 0 72 0;
-#X connect 55 0 58 0;
-#X connect 56 0 57 0;
-#X connect 57 0 60 1;
-#X connect 58 0 59 0;
-#X connect 59 0 60 0;
-#X connect 60 0 73 1;
-#X connect 60 2 56 0;
-#X connect 61 0 60 0;
-#X connect 62 0 61 0;
-#X connect 64 0 60 0;
-#X connect 64 0 75 0;
-#X connect 65 0 60 0;
-#X connect 66 0 60 0;
-#X connect 67 0 64 0;
-#X connect 67 0 62 0;
-#X connect 68 0 54 0;
-#X connect 69 0 71 0;
-#X connect 70 0 69 0;
-#X connect 71 0 52 0;
-#X connect 72 0 81 0;
-#X connect 73 0 82 0;
-#X connect 74 0 73 2;
-#X connect 75 0 73 0;
-#X connect 76 0 75 0;
-#X connect 77 0 75 0;
-#X connect 78 0 75 0;
-#X connect 79 0 75 0;
-#X connect 80 0 75 0;
-#X connect 81 0 9 0;
-#X connect 82 0 70 0;
-#X connect 82 0 68 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/pix_opencv_hist_compare-help.pd b/pix_opencv_hist_compare-help.pd
index bb31af5..3ad5c2a 100644
--- a/pix_opencv_hist_compare-help.pd
+++ b/pix_opencv_hist_compare-help.pd
@@ -1,28 +1,38 @@
-#N canvas 626 58 1186 952 10;
-#X obj 582 308 cnv 15 500 180 empty empty empty 20 12 0 14 -24198 -66577
+#N canvas 624 471 1101 564 10;
+#X obj 5 20 cnv 15 430 350 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X obj 671 313 hradio 15 1 0 5 empty empty empty 0 -8 0 10 -262144
--1 -1 1;
-#X text 754 312 save an histogram at position nth ( 0 <= n <= 80 )
+#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 675 444 5 0 0 0 - - -;
-#X obj 737 369 unpack f f f f f;
-#X text 830 404 nearest to 1 is the winner;
-#X text 711 445 closest histogram (winner);
-#X obj 737 397 vsl 15 37 0 1 0 0 empty empty empty 0 -9 0 10 -262144
--1 -1 2585 1;
-#X obj 760 397 vsl 15 37 0 1 0 0 empty empty empty 0 -9 0 10 -262144
--1 -1 3278 1;
-#X obj 783 397 vsl 15 37 0 1 0 0 empty empty empty 0 -9 0 10 -262144
+#X floatatom 682 279 5 0 0 0 - - -;
+#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 806 397 vsl 15 37 0 1 0 0 empty empty empty 0 -9 0 10 -262144
+#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 829 393 matching measure with stored histograms;
-#X obj 596 338 pix_opencv_hist_compare;
-#X obj 715 -105 gemhead;
-#X obj 596 536 pix_texture;
-#X obj 596 555 square 2;
-#X obj 33 -109 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577
+#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 22 454 304 gemwin 0;
#X obj 67 89 outlet;
@@ -54,118 +64,105 @@
#X connect 9 0 6 0;
#X connect 10 0 7 0;
#X connect 10 2 9 0;
-#X restore 43 -65 pd gemwin;
-#X msg 43 -83 create;
-#X obj 444 532 pix_texture;
-#X obj 444 560 square 2;
-#X obj 596 222 separator;
-#X obj 727 -78 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1
+#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 784 97 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
+#X obj 757 33 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
-1 -1;
-#X floatatom 766 62 5 0 10000 1 frame# - -;
-#X obj 727 -49 openpanel;
-#X msg 727 -29 open \$1;
-#X obj 715 80 pix_film;
-#X msg 733 14 auto \$1;
-#X obj 733 -4 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
-;
-#X text 41 -103 Create window and render;
-#X msg 828 -3 colorspace RGBA;
-#X msg 933 -3 colorspace RGB;
-#X msg 1037 -3 colorspace Grey;
-#X obj 828 -31 loadbang;
-#X obj 595 193 pix_separator;
-#X obj 444 225 separator;
-#X obj 444 196 pix_separator;
-#X obj 596 257 translateXYZ 2 0 0;
-#N canvas 0 22 450 300 vswitch 0;
-#X obj 144 263 outlet;
+#X floatatom 739 -2 5 0 10000 1 frame# - -;
+#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 0
+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 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 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 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 537 150 pd vswitch;
-#X obj 605 150 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X obj 478 -110 gemhead;
-#X msg 517 3 device 0;
-#X msg 526 34 driver 1;
-#X msg 503 -51 dialog;
-#X msg 508 -21 device /dev/dv1394-0;
-#X text 32 -20 record histograms of specific situations;
-#X text 34 -8 the object will recognize the situations if they occur
+#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 13 27 record histograms of specific situations;
+#X text 15 39 the object will recognize the situations if they occur
again;
-#X text 34 6 Written by Lluis Gomez i Bigorda ( lluisgomez@hangar.org
+#X text 15 53 Written by Lluis Gomez i Bigorda ( lluisgomez@hangar.org
);
-#X text 34 -33 pix_opencv_hist_compare : image recognition using histograms
+#X text 14 -114 pix_opencv_hist_compare : image recognition using histograms
;
-#X obj 532 170 pix_rgba;
-#X obj 478 78 pix_video;
-#X obj 444 260 translateXYZ -2 0 0;
-#X connect 1 0 12 1;
-#X connect 4 0 7 0;
-#X connect 4 1 8 0;
-#X connect 4 2 9 0;
-#X connect 4 3 10 0;
-#X connect 12 0 14 0;
-#X connect 12 1 3 0;
-#X connect 12 2 4 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 38 0;
-#X connect 22 0 25 0;
+#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 27 1;
+#X connect 24 0 23 0;
#X connect 25 0 26 0;
-#X connect 26 0 27 0;
-#X connect 27 0 39 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 51 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 52 0;
-#X connect 37 0 36 0;
-#X connect 38 0 12 0;
-#X connect 39 0 50 0;
-#X connect 40 0 39 2;
-#X connect 41 0 51 0;
-#X connect 42 0 51 0;
-#X connect 43 0 51 0;
-#X connect 44 0 51 0;
-#X connect 45 0 51 0;
-#X connect 50 0 37 0;
-#X connect 50 0 35 0;
-#X connect 51 0 39 0;
-#X connect 52 0 19 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/pix_opencv_hough_circles-help.pd b/pix_opencv_hough_circles-help.pd
index a8ec62b..9cbdd7f 100644
--- a/pix_opencv_hough_circles-help.pd
+++ b/pix_opencv_hough_circles-help.pd
@@ -1,46 +1,56 @@
-#N canvas 503 143 1154 663 10;
-#X obj 568 438 cnv 15 600 300 empty empty empty 20 12 0 14 -24198 -66577
+#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 596 640 pix_opencv_hough_circles;
-#X obj 839 606 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 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 754 604 nightmode \$1;
-#X text 858 607 set nightmode;
-#X floatatom 777 481 5 0 0 0 - - -;
-#X msg 688 478 threshold \$1;
-#X floatatom 822 558 5 0 0 0 - - -;
-#X floatatom 841 583 5 0 0 0 - - -;
-#X floatatom 763 452 5 0 0 0 - - -;
-#X msg 673 451 maxcircles \$1;
-#X text 803 451 maximum nuber of circles detected ( default : 10 )
+#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 799 509 5 0 0 0 - - -;
-#X msg 711 508 threshold2 \$1;
-#X text 838 521 see documentation of cvHoughCircles for the meaning
+#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 736 557 mindist \$1;
-#X text 859 556 minimum distance between circles ( default : 30 );
-#X msg 741 581 resolution \$1;
-#X text 884 582 detector resolution ( default 1 );
-#X text 816 477 threshold ( default 100 );
-#X text 838 504 threshold2 ( default 10 );
-#X floatatom 766 709 5 0 0 0 - - -;
-#X floatatom 802 710 5 0 0 0 - - -;
-#X obj 766 669 route 1 2 3 4 5 6 7 8 9 10;
-#X text 769 723 X1;
-#X text 805 723 Y1;
-#X floatatom 839 710 5 0 0 0 - - -;
-#X text 935 669 position of each circle;
-#X text 842 724 radius;
-#X obj 766 690 unpack f f f;
-#X text 30 147 written by Lluis Gomez i Bigorda ( lluisgomez@hangar.org
+#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 30 132 pix_opencv_hough_circles : Hough circles detection algorithm
+#X text 13 70 pix_opencv_hough_circles : Hough circles detection algorithm
;
-#X obj 715 44 gemhead;
-#X obj 595 767 pix_texture;
-#X obj 595 786 square 2;
-#X obj 33 40 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577
+#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;
@@ -72,123 +82,110 @@ of thresholds;
#X connect 9 0 6 0;
#X connect 10 0 7 0;
#X connect 10 2 9 0;
-#X restore 43 84 pd gemwin;
-#X msg 43 66 create;
-#X obj 444 681 pix_texture;
-#X obj 444 709 square 2;
-#X obj 596 371 separator;
-#X obj 727 71 bng 25 250 50 0 load empty empty 0 -6 0 8 -262144 -1
+#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 784 246 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
+#X obj 725 220 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
-1 -1;
-#X floatatom 766 211 5 0 10000 1 frame# - -;
-#X obj 727 100 openpanel;
-#X msg 727 120 open \$1;
-#X obj 715 229 pix_film;
-#X msg 733 163 auto \$1;
-#X obj 733 145 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -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 41 46 Create window and render;
-#X msg 828 146 colorspace RGBA;
-#X msg 933 146 colorspace RGB;
-#X msg 1037 146 colorspace Grey;
-#X obj 828 118 loadbang;
-#X obj 595 342 pix_separator;
-#X obj 444 374 separator;
-#X obj 444 345 pix_separator;
-#X obj 444 409 translateXYZ -2 0 0;
-#X obj 596 406 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 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 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 537 299 pd vswitch;
-#X obj 605 299 tgl 15 0 empty load empty 17 7 0 10 -262144 -1 -1 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 478 227 pix_video;
-#X obj 478 39 gemhead;
-#X msg 517 152 device 0;
-#X msg 526 183 driver 1;
-#X msg 503 98 dialog;
-#X msg 508 128 device /dev/dv1394-0;
-#X obj 596 430 pix_resize 320 240;
-#X obj 535 323 pix_rgba;
-#X connect 1 0 33 0;
-#X connect 1 1 23 0;
-#X connect 2 0 3 0;
-#X connect 3 0 1 0;
-#X connect 5 0 6 0;
-#X connect 6 0 1 0;
-#X connect 7 0 15 0;
-#X connect 8 0 17 0;
-#X connect 9 0 10 0;
-#X connect 10 0 1 0;
-#X connect 12 0 13 0;
-#X connect 13 0 1 0;
-#X connect 15 0 1 0;
-#X connect 17 0 1 0;
-#X connect 23 0 29 0;
-#X connect 29 0 21 0;
-#X connect 29 1 22 0;
-#X connect 29 2 26 0;
-#X connect 32 0 46 0;
-#X connect 33 0 34 0;
-#X connect 36 0 37 0;
-#X connect 37 0 36 0;
-#X connect 38 0 39 0;
-#X connect 40 0 58 0;
-#X connect 41 0 44 0;
+#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 46 1;
+#X connect 43 0 42 0;
#X connect 44 0 45 0;
-#X connect 45 0 46 0;
-#X connect 46 0 59 1;
-#X connect 46 2 42 0;
-#X connect 47 0 46 0;
-#X connect 48 0 47 0;
-#X connect 50 0 46 0;
-#X connect 50 0 61 0;
-#X connect 51 0 46 0;
-#X connect 52 0 46 0;
-#X connect 53 0 50 0;
-#X connect 53 0 48 0;
-#X connect 54 0 40 0;
-#X connect 55 0 57 0;
-#X connect 56 0 55 0;
-#X connect 57 0 38 0;
-#X connect 58 0 67 0;
-#X connect 59 0 68 0;
-#X connect 60 0 59 2;
-#X connect 61 0 59 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 61 0;
-#X connect 64 0 61 0;
-#X connect 65 0 61 0;
-#X connect 66 0 61 0;
-#X connect 67 0 1 0;
-#X connect 68 0 56 0;
-#X connect 68 0 54 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/pix_opencv_warpperspective-help.pd b/pix_opencv_warpperspective-help.pd
index 33f2452..339cbb9 100644
--- a/pix_opencv_warpperspective-help.pd
+++ b/pix_opencv_warpperspective-help.pd
@@ -1,148 +1,24 @@
-#N canvas 295 24 980 660 10;
+#N canvas 624 372 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 24 93 pix_film;
-#X obj 187 328 pix_texture;
-#X obj 187 308 pix_opencv_findchessboardcorners;
-#X obj 187 254 pack 6 7;
-#X floatatom 187 234 5 0 0 0 - - -;
-#X floatatom 240 234 5 0 0 0 - - -;
-#X msg 187 274 patternSize \$1 \$2;
-#N canvas 502 24 715 644 generates_coords 0;
-#X obj 49 31 inlet;
-#X obj 77 251 until;
-#X obj 77 358 f;
-#X msg 95 335 0;
-#X obj 90 118 unpack;
-#X obj 81 462 pack;
-#X obj 77 188 f;
-#X obj 177 251 until;
-#X obj 209 358 f;
-#X msg 227 335 0;
-#X obj 177 287 t b b;
-#X obj 177 188 f;
-#X obj 90 143 t b f;
-#X obj 81 501 list;
-#X obj 57 521 list;
-#X obj 81 482 list prepend;
-#X obj 58 591 outlet;
-#X text 185 97 generates source coordinates to find homography;
-#X obj 89 437 + 0;
-#X obj 221 437 + 0;
-#X floatatom 420 348 5 0 0 0 offset_y - -;
-#X obj 57 89 t b l b;
-#X obj 77 208 t f b;
-#X obj 177 208 t f b;
-#X floatatom 420 328 5 0 0 0 offset_x - -;
-#X floatatom 420 308 5 0 0 0 taille_du_cote_en_m - -;
-#X obj 105 358 + 0.25;
-#X obj 237 358 + 0.25;
-#X msg 90 62 6 7;
-#X obj 57 545 list prepend dstMatrix;
-#X obj 57 566 route list;
-#X obj 267 269 t b a;
-#X obj 411 185 loadbang;
-#X obj 352 399 t b a;
-#X obj 277 389 t b a;
-#X msg 409 216 11;
-#X msg 450 216 493;
-#X msg 492 216 137;
-#X connect 0 0 21 0;
-#X connect 1 0 2 0;
-#X connect 2 0 18 0;
-#X connect 2 0 26 0;
-#X connect 3 0 2 1;
-#X connect 4 0 12 0;
-#X connect 4 1 11 1;
-#X connect 5 0 15 0;
-#X connect 6 0 22 0;
-#X connect 7 0 10 0;
-#X connect 8 0 19 0;
-#X connect 8 0 27 0;
-#X connect 9 0 8 1;
-#X connect 10 0 6 0;
-#X connect 10 1 8 0;
-#X connect 11 0 23 0;
-#X connect 12 0 11 0;
-#X connect 12 1 6 1;
-#X connect 13 0 14 1;
-#X connect 13 0 15 1;
-#X connect 14 0 29 0;
-#X connect 15 0 13 0;
-#X connect 18 0 5 0;
-#X connect 19 0 5 1;
-#X connect 20 0 33 0;
-#X connect 21 0 14 0;
-#X connect 21 1 4 0;
-#X connect 21 2 15 1;
-#X connect 22 0 1 0;
-#X connect 22 1 3 0;
-#X connect 23 0 7 0;
-#X connect 23 1 9 0;
-#X connect 24 0 34 0;
-#X connect 25 0 31 0;
-#X connect 26 0 2 1;
-#X connect 27 0 8 1;
-#X connect 28 0 21 0;
-#X connect 29 0 30 0;
-#X connect 30 0 16 0;
-#X connect 31 0 28 0;
-#X connect 31 1 27 1;
-#X connect 31 1 26 1;
-#X connect 32 0 35 0;
-#X connect 32 0 36 0;
-#X connect 32 0 37 0;
-#X connect 33 0 28 0;
-#X connect 33 1 19 1;
-#X connect 34 0 28 0;
-#X connect 34 1 18 1;
-#X connect 35 0 25 0;
-#X connect 36 0 24 0;
-#X connect 37 0 20 0;
-#X restore 426 309 pd generates_coords;
-#X obj 408 350 list prepend srcMatrix;
-#X obj 187 348 translateXYZ 2 2 0;
-#X obj 187 368 rectangle 2 1.5;
-#X obj 408 377 route list;
#X obj 203 571 print;
-#X obj 24 512 separator;
-#X obj 50 49 loadbang;
-#X obj 104 262 spigot;
-#X obj 139 139 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X msg 50 69 open shoot-2.mov \, auto 1;
-#X obj 24 301 spigot 1;
-#X obj 112 240 == 0;
-#X obj 24 113 pix_grey;
#X obj 24 591 rectangle 4 3;
#X obj 23 -3 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
;
-#X text 485 9 pix_opencv_wapperspective finds the transformation matrix
-between srcMatrix and dstMatrix;
-#X text 485 38 it sends through its second outlet the 3x3 transformation
-matrix when a correct scrMatrix message is received;
-#X text 484 65 you should first initiliaze dstMatrix;
#X obj 24 539 pix_opencv_warpperspective;
-#X text 482 86 it also applied the tansformation matrix on incomming
-image stream;
-#X text 482 151 pix_opencv_findchessboardcorners finds chessboard corners
-in the incomming image stream and send out corners coordinates as a
-list trought its second outlet;
-#X text 484 200 it also prints found corners on the image stream;
-#X msg 409 423 mapMatrix 1 0 0 0 1 0 0 0 1;
-#X text 408 404 you can also set the map matrix directly;
-#X msg 409 443 mapMatrix 0.5 0 0 0 0.5 0 0 0 1;
-#X text 614 422 identity;
-#X text 635 444 scale by 0.5;
-#X msg 409 463 mapMatrix 0 1 0 1 0 0 0 0 2;
-#X text 608 465 rotation by 90deg and scale by 0.5;
-#X text 156 134 switch to find corners and mapMatrix and switch back
-to apply it;
-#X text 186 211 number of inner corners in each direction;
-#N canvas 0 0 936 545 wrap_perspective_GPU 0;
+#X msg 96 437 mapMatrix 1 0 0 0 1 0 0 0 1;
+#X text 95 418 you can also set the map matrix directly;
+#X msg 96 457 mapMatrix 0.5 0 0 0 0.5 0 0 0 1;
+#X text 301 436 identity;
+#X text 322 458 scale by 0.5;
+#X msg 96 477 mapMatrix 0 1 0 1 0 0 0 0 2;
+#X text 295 479 rotation by 90deg and scale by 0.5;
+#X obj 24 93 pix_video;
+#X obj 24 133 pix_flip;
+#N canvas 3 81 936 545 wrap_perspective_GPU 0;
#X obj 251 443 mesh_square 10 10;
#X obj 301 277 /;
#X obj 351 278 /;
@@ -172,6 +48,7 @@ order to boost performace;
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;
@@ -195,38 +72,41 @@ matrix.;
#X connect 20 0 19 0;
#X connect 21 0 20 0;
#X connect 21 1 12 0;
-#X restore 413 589 pd wrap_perspective_GPU;
-#X connect 0 0 5 0;
+#X connect 24 0 16 0;
+#X restore 161 604 pd wrap_perspective_GPU;
+#X obj 24 113 pix_grey;
+#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 connect 0 0 16 0;
#X connect 2 0 1 0;
#X connect 3 0 1 0;
-#X connect 4 0 26 0;
-#X connect 5 0 25 0;
-#X connect 5 2 22 0;
-#X connect 6 0 14 0;
-#X connect 7 0 6 0;
-#X connect 7 1 13 0;
-#X connect 8 0 11 0;
-#X connect 8 0 12 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 10 0 8 1;
-#X connect 11 0 7 0;
-#X connect 12 0 31 0;
-#X connect 13 0 16 0;
-#X connect 14 0 15 0;
-#X connect 16 0 31 0;
-#X connect 18 0 31 0;
-#X connect 19 0 22 0;
-#X connect 20 0 7 0;
-#X connect 21 0 20 1;
-#X connect 21 0 24 0;
-#X connect 22 0 5 0;
-#X connect 23 0 18 0;
-#X connect 24 0 23 1;
-#X connect 25 0 23 0;
-#X connect 25 0 20 0;
-#X connect 27 0 0 0;
-#X connect 31 0 4 0;
-#X connect 31 1 17 0;
-#X connect 35 0 31 0;
-#X connect 37 0 31 0;
-#X connect 40 0 31 0;
+#X connect 11 0 8 0;
+#X connect 14 0 8 0;
+#X connect 16 0 19 0;
+#X connect 17 0 8 0;
+#X connect 19 0 17 0;
+#X connect 20 0 8 0;
+#X connect 21 0 8 0;
+#X connect 25 0 8 0;