aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntoine Villeret <avilleret@users.sourceforge.net>2012-12-26 19:55:17 +0000
committerAntoine Villeret <avilleret@users.sourceforge.net>2012-12-26 19:55:17 +0000
commit68420559815099c1f7f142a9ecddffa45cf2bab5 (patch)
tree3b183a710dd96a6a7aeeb416975216c2ccb6c7fc
parent15c02439915a7a8757e8520b6a610163a72d6a80 (diff)
update help patch...
svn path=/trunk/externals/pix_opencv/; revision=16760
-rw-r--r--pix_opencv_contours-help.pd662
1 files changed, 258 insertions, 404 deletions
diff --git a/pix_opencv_contours-help.pd b/pix_opencv_contours-help.pd
index c66911b..c6a27d1 100644
--- a/pix_opencv_contours-help.pd
+++ b/pix_opencv_contours-help.pd
@@ -1,210 +1,23 @@
-#N canvas 798 319 836 479 10;
-#X obj 472 38 cnv 15 220 250 empty empty empty 20 12 0 14 -228992 -66577
+#N canvas 759 213 794 706 10;
+#X obj 472 35 cnv 15 300 400 empty empty empty 20 12 0 14 -228992 -66577
0;
-#X obj 11 56 cnv 15 450 100 empty empty empty 20 12 0 14 -233017 -66577
+#X obj 11 56 cnv 15 450 200 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X obj 12 207 cnv 15 450 230 empty empty empty 20 12 0 14 -233017 -66577
+#X obj 11 307 cnv 15 450 380 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X text 14 210 Inlets:;
-#X obj 12 167 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577
+#X text 13 315 Inlets:;
+#X obj 11 267 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577
0;
-#X text 21 166 Arguments:;
-#X text 13 281 Outlets:;
+#X text 20 266 Arguments:;
+#X text 12 386 Outlets:;
#X text 478 20 Example:;
#X text 58 21 Class: pix_opencv;
#X text 11 60 Description: finds contours;
-#X text 67 176 none;
-#X text 31 234 Inlet 1: message: area [float];
-#X text 31 244 Inlet 1: message: epsilon [float];
-#X obj 541 151 pix_texture;
-#X obj 487 171 pix_gray;
-#X obj 487 141 pix_buf;
-#N canvas 866 290 919 782 drawcontours 0;
-#X obj 249 179 list split 2;
-#X obj 241 640 GEMglEnd;
-#X obj 371 637 GEMglVertex2d;
-#X obj 283 310 list append;
-#X obj 312 284 t b a;
-#X obj 312 263 list split 2;
-#X obj 412 542 unpack;
-#X obj 381 304 t b a;
-#X obj 500 361 color 1 0 0 1;
-#X obj 476 592 * -8;
-#X obj 476 612 + 4;
-#N canvas 716 313 619 726 color 0;
-#X obj 201 -38 inlet;
-#X obj 302 -38 inlet;
-#X obj 158 66 f;
-#X msg 302 10 0;
-#X obj 158 147 * 6;
-#X obj 254 104 t f f;
-#X obj 281 133 int;
-#X obj 254 150 -;
-#N canvas 3 85 579 581 h2rgb 0;
-#X obj 171 79 t f f;
-#X obj 171 332 spigot;
-#X obj 204 168 == 0;
-#X obj 204 123 int;
-#X msg 171 362 1 \$1 0;
-#X obj 221 332 spigot;
-#X obj 271 332 spigot;
-#X obj 321 332 spigot;
-#X obj 254 168 == 1;
-#X obj 304 168 == 2;
-#X obj 354 168 == 3;
-#X obj 371 332 spigot;
-#X obj 421 332 spigot;
-#X obj 404 168 == 4;
-#X obj 454 168 == 5;
-#X msg 221 362 \$1 1 0;
-#X obj 171 404 t a;
-#X obj 95 246 abs;
-#X obj 95 226 - 1;
-#X obj 68 282 -;
-#X msg 68 246 1;
-#X msg 271 362 0 1 \$1;
-#X msg 321 362 0 \$1 1;
-#X msg 371 362 \$1 0 1;
-#X msg 421 362 1 0 \$1;
-#X obj 114 162 int;
-#X obj 95 206 -;
-#X obj 114 142 / 2;
-#X obj 114 183 * 2;
-#X obj 68 118 t f f f;
-#X obj 171 48 inlet;
-#X obj 171 439 outlet;
-#X connect 0 0 29 0;
-#X connect 0 1 3 0;
-#X connect 1 0 4 0;
-#X connect 2 0 1 1;
-#X connect 3 0 2 0;
-#X connect 3 0 8 0;
-#X connect 3 0 9 0;
-#X connect 3 0 10 0;
-#X connect 3 0 13 0;
-#X connect 3 0 14 0;
-#X connect 4 0 16 0;
-#X connect 5 0 15 0;
-#X connect 6 0 21 0;
-#X connect 7 0 22 0;
-#X connect 8 0 5 1;
-#X connect 9 0 6 1;
-#X connect 10 0 7 1;
-#X connect 11 0 23 0;
-#X connect 12 0 24 0;
-#X connect 13 0 11 1;
-#X connect 14 0 12 1;
-#X connect 15 0 16 0;
-#X connect 16 0 31 0;
-#X connect 17 0 19 1;
-#X connect 18 0 17 0;
-#X connect 19 0 1 0;
-#X connect 19 0 5 0;
-#X connect 19 0 6 0;
-#X connect 19 0 7 0;
-#X connect 19 0 11 0;
-#X connect 19 0 12 0;
-#X connect 20 0 19 0;
-#X connect 21 0 16 0;
-#X connect 22 0 16 0;
-#X connect 23 0 16 0;
-#X connect 24 0 16 0;
-#X connect 25 0 28 0;
-#X connect 26 0 18 0;
-#X connect 27 0 25 0;
-#X connect 28 0 26 1;
-#X connect 29 0 20 0;
-#X connect 29 1 26 0;
-#X connect 29 2 27 0;
-#X connect 30 0 0 0;
-#X restore 158 176 pd h2rgb;
-#X obj 254 83 + 0.9;
-#X obj 182 240 outlet;
-#X connect 0 0 2 0;
-#X connect 1 0 3 0;
-#X connect 2 0 9 0;
-#X connect 2 0 4 0;
-#X connect 3 0 2 1;
-#X connect 4 0 8 0;
-#X connect 5 0 7 0;
-#X connect 5 1 6 0;
-#X connect 6 0 7 1;
-#X connect 7 0 2 1;
-#X connect 8 0 10 0;
-#X connect 9 0 5 0;
-#X restore 575 331 pd color;
-#X obj 249 117 t a b;
-#X obj 500 424 GEMglLineWidth 2;
-#X obj 500 394 scaleXYZ 1 1 1;
-#X obj 412 592 * 10.6666;
-#X obj 412 612 - 5.33333;
-#X floatatom 616 374 5 0 0 0 - - -;
-#X obj 620 257 inlet;
-#X obj 241 611 gemlist;
-#X obj 371 468 gemlist;
-#X obj 500 461 GEMglBegin GL_LINE_LOOP;
-#X obj 620 286 t b;
-#X obj 540 194 gemhead;
-#X obj 540 139 loadbang;
-#X msg 540 160 0;
-#X obj 204 208 unpack 0 0;
-#X floatatom 204 229 5 0 0 0 nb_of_segments - -;
-#X obj 249 62 inlet CONTOUR;
-#X obj 500 336 gemlist;
-#X obj 283 206 t b a b b;
-#X connect 0 0 26 0;
-#X connect 0 1 30 0;
-#X connect 3 0 5 0;
-#X connect 4 0 3 0;
-#X connect 4 1 7 0;
-#X connect 5 0 4 0;
-#X connect 5 1 3 1;
-#X connect 6 0 15 0;
-#X connect 6 1 9 0;
-#X connect 7 0 20 0;
-#X connect 7 1 6 0;
-#X connect 8 0 14 0;
-#X connect 9 0 10 0;
-#X connect 10 0 2 2;
-#X connect 11 0 8 1;
-#X connect 12 0 0 0;
-#X connect 12 1 11 0;
-#X connect 13 0 21 0;
-#X connect 14 0 13 0;
-#X connect 15 0 16 0;
-#X connect 16 0 2 1;
-#X connect 17 0 14 2;
-#X connect 18 0 22 0;
-#X connect 19 0 1 0;
-#X connect 20 0 2 0;
-#X connect 22 0 11 1;
-#X connect 23 0 29 1;
-#X connect 23 0 20 1;
-#X connect 23 0 19 1;
-#X connect 24 0 25 0;
-#X connect 25 0 23 0;
-#X connect 26 0 27 0;
-#X connect 28 0 12 0;
-#X connect 29 0 8 0;
-#X connect 30 0 19 0;
-#X connect 30 1 5 0;
-#X connect 30 2 29 0;
-#X connect 30 3 23 0;
-#X restore 575 315 pd drawcontours;
-#X obj 487 76 t b a a;
-#X obj 487 57 gemhead 1;
-#X msg 542 214 epsilon \$1;
-#X floatatom 542 197 5 0 0 0 - - -;
-#X obj 625 121 loadbang;
-#X obj 541 171 rectangle 5.333 4;
-#X obj 514 116 t a a;
-#X obj 514 96 pix_image dessin.tif;
-#X msg 617 214 area \$1;
-#X floatatom 617 197 5 0 0 0 - - -;
-#X msg 659 142 10;
-#X obj 354 215 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577
+#X text 66 276 none;
+#X text 30 349 Inlet 1: message: epsilon [float];
+#X obj 353 315 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577
0;
-#N canvas 1 86 450 300 gemwin 0;
+#N canvas 1 104 450 300 gemwin 0;
#X obj 132 156 gemwin;
#X obj 67 89 outlet;
#X obj 67 10 inlet;
@@ -222,12 +35,61 @@
#X connect 5 0 1 0;
#X connect 6 0 0 0;
#X connect 7 0 0 0;
-#X restore 359 254 pd gemwin;
-#X msg 359 235 destroy;
-#X text 355 214 Create window:;
-#X text 31 224 Inlet 1: binarized image;
+#X restore 358 354 pd gemwin;
+#X msg 358 335 destroy;
+#X text 354 314 Create window:;
+#X text 30 329 Inlet 1: binarized image;
+#X text 354 314 Create window:;
+#X text 30 329 Inlet 1: binarized image;
+#X text 20 448 info;
+#X text 30 519 <number of segments> <2> <x \, y corner coordinate pairs>
+;
+#X text 25 397 Outlet 1: gemlist output;
+#X text 25 417 Outlet 3: info output;
+#X text 37 5 Synopsis: [pix_opencv_contours];
+#X text 21 508 contour (for each of them);
+#X text 37 75 [pix_opencv_contours] finds contours in incomming image
+\, simplifies it according to the epsilon value and outputs contours
+with area greater than a threshold.;
+#X text 30 339 Inlet 1: message: area threshold [float];
+#X text 25 407 Outlet 2: contour \, convexhull and convexity defect
+output;
+#X text 37 126 contrary to [pix_opencv_contour_convexhull] \, [pix_opencv_contours]
+outputs all contours found not only the biggest.;
+#X text 37 175 it can also output rotated bounding rectangle \, convexhull
+and cenvexity defects;
+#X text 37 215 you can choose the hierarchy level of output contour
+;
+#X text 37 235 so this external replaces all old pix_opencv_contours_*
+;
+#X text 29 458 <contour area> <rotrect corners coordinates (8 floats)>
+<rotrect center position (2 floats)> <rotrect size (2 floats)> <angle
+in degrees> <number of points> 0 0 0 0 0;
+#X text 30 549 <number of segments> <2> <x \, y corner coordinate pairs>
+;
+#X text 21 536 convexhull (for each contour);
+#X text 20 567 convexixitydefects (for each contour);
+#X text 30 579 <number of segments> <7> <start point (2 floats)> <end
+point (2 floats)> <depth point (2 floats)> depth;
+#X text 26 649 by antoine villeret - 2012;
+#X text 16 669 bug \, feedback \, comment... on the pd-list;
+#X obj 476 193 cnv 15 280 80 empty empty empty 20 12 0 14 -4034 -66577
+0;
+#X obj 541 151 pix_texture;
+#X obj 487 171 pix_gray;
+#X obj 487 141 pix_buf;
+#X obj 487 76 t b a a;
+#X obj 487 57 gemhead 1;
+#X msg 542 214 epsilon \$1;
+#X floatatom 542 197 5 0 0 0 - - -;
+#X obj 625 121 loadbang;
+#X obj 541 171 rectangle 5.333 4;
+#X obj 514 116 t a a;
+#X msg 617 214 area \$1;
+#X floatatom 617 197 5 0 0 0 - - -;
+#X msg 659 142 10;
#X msg 625 141 2;
-#N canvas 1191 201 474 845 draw_rotrect 0;
+#N canvas 1177 234 474 845 draw_rotrect 0;
#X obj 71 506 GEMglVertex2d;
#X obj 71 586 GEMglVertex2d;
#X obj 71 666 GEMglVertex2d;
@@ -238,116 +100,11 @@
#X obj 71 420 GEMglBegin GL_LINE_LOOP;
#X obj 177 198 list split 8;
#X msg 363 324 0 0 0 0 0 0 0 0;
-#X obj 71 300 color 1 0 0 1;
-#N canvas 710 331 619 726 color 0;
-#X obj 201 -38 inlet;
-#X obj 158 66 f;
-#X msg 302 10 0;
-#X obj 158 147 * 6;
-#X obj 254 104 t f f;
-#X obj 281 133 int;
-#X obj 254 150 -;
-#N canvas 1 91 579 581 h2rgb 0;
-#X obj 171 79 t f f;
-#X obj 171 332 spigot;
-#X obj 204 168 == 0;
-#X obj 204 123 int;
-#X msg 171 362 1 \$1 0;
-#X obj 221 332 spigot;
-#X obj 271 332 spigot;
-#X obj 321 332 spigot;
-#X obj 254 168 == 1;
-#X obj 304 168 == 2;
-#X obj 354 168 == 3;
-#X obj 371 332 spigot;
-#X obj 421 332 spigot;
-#X obj 404 168 == 4;
-#X obj 454 168 == 5;
-#X msg 221 362 \$1 1 0;
-#X obj 171 404 t a;
-#X obj 95 246 abs;
-#X obj 95 226 - 1;
-#X obj 68 282 -;
-#X msg 68 246 1;
-#X msg 271 362 0 1 \$1;
-#X msg 321 362 0 \$1 1;
-#X msg 371 362 \$1 0 1;
-#X msg 421 362 1 0 \$1;
-#X obj 114 162 int;
-#X obj 95 206 -;
-#X obj 114 142 / 2;
-#X obj 114 183 * 2;
-#X obj 68 118 t f f f;
-#X obj 171 48 inlet;
-#X obj 171 439 outlet;
-#X connect 0 0 29 0;
-#X connect 0 1 3 0;
-#X connect 1 0 4 0;
-#X connect 2 0 1 1;
-#X connect 3 0 2 0;
-#X connect 3 0 8 0;
-#X connect 3 0 9 0;
-#X connect 3 0 10 0;
-#X connect 3 0 13 0;
-#X connect 3 0 14 0;
-#X connect 4 0 16 0;
-#X connect 5 0 15 0;
-#X connect 6 0 21 0;
-#X connect 7 0 22 0;
-#X connect 8 0 5 1;
-#X connect 9 0 6 1;
-#X connect 10 0 7 1;
-#X connect 11 0 23 0;
-#X connect 12 0 24 0;
-#X connect 13 0 11 1;
-#X connect 14 0 12 1;
-#X connect 15 0 16 0;
-#X connect 16 0 31 0;
-#X connect 17 0 19 1;
-#X connect 18 0 17 0;
-#X connect 19 0 1 0;
-#X connect 19 0 5 0;
-#X connect 19 0 6 0;
-#X connect 19 0 7 0;
-#X connect 19 0 11 0;
-#X connect 19 0 12 0;
-#X connect 20 0 19 0;
-#X connect 21 0 16 0;
-#X connect 22 0 16 0;
-#X connect 23 0 16 0;
-#X connect 24 0 16 0;
-#X connect 25 0 28 0;
-#X connect 26 0 18 0;
-#X connect 27 0 25 0;
-#X connect 28 0 26 1;
-#X connect 29 0 20 0;
-#X connect 29 1 26 0;
-#X connect 29 2 27 0;
-#X connect 30 0 0 0;
-#X restore 158 176 pd h2rgb;
-#X obj 254 83 + 0.9;
-#X obj 182 240 outlet;
-#X obj 302 -38 inlet RESET;
-#X connect 0 0 1 0;
-#X connect 1 0 8 0;
-#X connect 1 0 3 0;
-#X connect 2 0 1 1;
-#X connect 3 0 7 0;
-#X connect 4 0 6 0;
-#X connect 4 1 5 0;
-#X connect 5 0 6 1;
-#X connect 6 0 1 1;
-#X connect 7 0 9 0;
-#X connect 8 0 4 0;
-#X connect 10 0 2 0;
-#X restore 262 248 pd color;
-#X obj 71 -10 inlet INFO;
+#X obj 32 -8 inlet INFO;
#X obj 71 256 gemhead;
#X obj 15 147 loadbang;
#X msg 15 168 0;
#X obj 71 52 t b a b;
-#X floatatom 378 220 5 0 0 0 - - -;
-#X obj 378 199 list length;
#X obj 211 504 list split 2;
#X obj 177 448 list split 2;
#X obj 137 472 unpack;
@@ -359,111 +116,208 @@
#X obj 90 84 list split 2;
#X obj 95 154 list append;
#X obj 292 81 t b;
-#X obj 262 198 t b;
-#X obj 124 128 t b b a b;
-#X obj 71 18 route 0;
+#X obj 32 32 route 0;
#X floatatom 342 463 5 0 0 0 - - -;
#X obj 342 442 list length;
#X obj 71 400 GEMglLineWidth 1;
#X obj 71 327 translateXYZ -5.3333 4 0;
#X obj 71 361 scaleXYZ 10.6666 -8 0;
#X obj 124 107 list split 20;
+#X obj 71 302 color 1 1 0 1;
+#X obj 124 128 t b b a;
+#X obj 32 13 route info;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
-#X connect 5 0 10 0;
+#X connect 5 0 33 0;
#X connect 6 1 8 0;
#X connect 7 0 0 0;
-#X connect 8 0 20 0;
-#X connect 9 0 20 0;
-#X connect 10 0 36 0;
-#X connect 11 0 10 1;
-#X connect 12 0 32 0;
-#X connect 13 0 5 0;
-#X connect 14 0 15 0;
-#X connect 15 0 13 0;
-#X connect 16 1 27 0;
-#X connect 16 1 18 0;
-#X connect 16 2 29 0;
-#X connect 18 0 17 0;
-#X connect 19 0 22 0;
-#X connect 19 1 23 0;
-#X connect 20 0 21 0;
-#X connect 20 1 19 0;
-#X connect 21 0 0 1;
-#X connect 21 1 0 2;
-#X connect 22 0 1 1;
-#X connect 22 1 1 2;
-#X connect 23 0 24 0;
-#X connect 23 1 25 0;
-#X connect 24 0 2 1;
-#X connect 24 1 2 2;
-#X connect 25 0 26 0;
-#X connect 26 0 3 1;
-#X connect 26 1 3 2;
-#X connect 27 1 38 0;
-#X connect 28 0 38 0;
-#X connect 29 0 9 0;
-#X connect 29 0 11 1;
-#X connect 30 0 11 0;
-#X connect 31 0 28 0;
-#X connect 31 1 13 0;
-#X connect 31 2 6 0;
-#X connect 31 2 34 0;
-#X connect 31 3 30 0;
-#X connect 32 1 16 0;
-#X connect 34 0 33 0;
-#X connect 35 0 7 0;
-#X connect 36 0 37 0;
-#X connect 37 0 35 0;
-#X connect 38 0 31 0;
-#X connect 38 1 28 1;
-#X restore 673 315 pd draw_rotrect;
-#X text 355 214 Create window:;
-#X text 31 224 Inlet 1: binarized image;
-#X text 21 343 info;
-#X text 31 403 <number of segments> <2> <x \, y corner coordinate pairs>
-;
-#X obj 575 265 route contour;
-#X obj 672 265 route info;
+#X connect 8 0 16 0;
+#X connect 9 0 16 0;
+#X connect 10 0 35 0;
+#X connect 11 0 5 0;
+#X connect 12 0 13 0;
+#X connect 13 0 11 0;
+#X connect 14 1 23 0;
+#X connect 14 2 25 0;
+#X connect 15 0 18 0;
+#X connect 15 1 19 0;
+#X connect 16 0 17 0;
+#X connect 16 1 15 0;
+#X connect 17 0 0 1;
+#X connect 17 1 0 2;
+#X connect 18 0 1 1;
+#X connect 18 1 1 2;
+#X connect 19 0 20 0;
+#X connect 19 1 21 0;
+#X connect 20 0 2 1;
+#X connect 20 1 2 2;
+#X connect 21 0 22 0;
+#X connect 22 0 3 1;
+#X connect 22 1 3 2;
+#X connect 23 1 32 0;
+#X connect 24 0 32 0;
+#X connect 25 0 9 0;
+#X connect 26 1 14 0;
+#X connect 28 0 27 0;
+#X connect 29 0 7 0;
+#X connect 30 0 31 0;
+#X connect 31 0 29 0;
+#X connect 32 0 34 0;
+#X connect 32 1 24 1;
+#X connect 33 0 30 0;
+#X connect 34 0 24 0;
+#X connect 34 1 11 0;
+#X connect 34 2 6 0;
+#X connect 34 2 28 0;
+#X connect 35 0 26 0;
+#X restore 658 323 pd draw_rotrect;
#X obj 487 240 pix_opencv_contours;
-#X text 26 302 Outlet 2: contour output;
-#X text 26 292 Outlet 1: gemlist output;
-#X text 26 312 Outlet 3: info output;
-#X text 37 5 Synopsis: [pix_opencv_contours];
-#X text 37 75 [pix_opencv_contours] finds contours in incomming image
-\, simplifies it according to the epsilon value and outputs contours
-with area greater than area value on second outlet;
-#X text 22 392 contour (for each of them);
-#X text 527 386 see also : [pix_opencv_contour_convexhull];
-#X text 37 114 contrary to [pix_opencv_contour_convexhull] \, [pix_opencv_contours]
-outputs all contours found not only the biggest and it find also concave
-contours.;
-#X text 31 353 <contour area> <rotrect corners coordinates (8 floats)>
-<rotrect center position (2 floats)> <rotrect size (2 floats)> <angle>
-<number of points> 0 0 0 0 0;
-#X connect 13 0 22 0;
-#X connect 14 0 41 0;
-#X connect 15 0 14 0;
-#X connect 17 0 15 0;
-#X connect 17 1 24 0;
-#X connect 17 2 16 1;
+#X obj 479 320 pix_opencv_drawcontours;
+#X obj 514 96 pix_image dessin.tif;
+#N canvas 969 295 674 695 drawdefects 0;
+#X obj 191 301 gemhead;
+#X obj 134 217 loadbang;
+#X msg 134 238 0;
+#X obj 210 116 list split 2;
+#X obj 215 186 list append;
+#X obj 191 375 scaleXYZ 10.6666 -8 0;
+#X obj 244 160 t b b a;
+#X obj 210 76 inlet DEFECTS;
+#X obj 210 96 route convexitydefects;
+#X obj 244 139 list split 7;
+#X obj 191 335 color 1 0 0 1;
+#X obj 191 355 translateXYZ -5.3333 4 0;
+#N canvas 897 569 739 379 ortho_point 0;
+#X obj 192 7 inlet;
+#X obj 192 57 t a a;
+#X obj 204 238 *;
+#X obj 174 238 *;
+#X obj 114 124 unpack 0 0 0 0;
+#X obj 114 279 +;
+#X obj 154 279 +;
+#X obj 114 340 outlet;
+#X obj 174 320 outlet;
+#X obj 153 198 -;
+#X msg 153 178 1 \$1;
+#X obj 144 238 *;
+#X obj 114 238 *;
+#X obj 219 84 list split 6;
+#X text 519 123 dot product;
+#X floatatom 244 163 5 0 0 0 - - -;
+#X obj 300 29 t b;
+#X msg 343 68 0 1 1 1 0.5 0.5;
+#X obj 219 124 expr abs(($f3-$f1)*($f6-$f2)+($f4-$f2)*($f5-$f1));
+#X obj 302 158 expr $f1*sqrt(10.666*8);
+#X connect 0 0 1 0;
+#X connect 1 0 4 0;
+#X connect 1 1 13 0;
+#X connect 2 0 6 1;
+#X connect 3 0 5 1;
+#X connect 4 0 12 0;
+#X connect 4 1 11 0;
+#X connect 4 2 3 0;
+#X connect 4 3 2 0;
+#X connect 5 0 7 0;
+#X connect 6 0 8 0;
+#X connect 9 0 11 1;
+#X connect 9 0 12 1;
+#X connect 10 0 9 0;
+#X connect 11 0 6 0;
+#X connect 12 0 5 0;
+#X connect 13 0 18 0;
+#X connect 16 0 17 0;
+#X connect 17 0 1 0;
+#X connect 18 0 15 0;
+#X connect 18 0 19 0;
+#X connect 19 0 2 1;
+#X connect 19 0 3 1;
+#X connect 19 0 10 0;
+#X restore 328 515 pd ortho_point;
+#X obj 191 475 translateXYZ 10.6666 -8 0;
+#X msg 240 451 \$5;
+#X msg 289 451 \$6;
+#X obj 191 556 circle 0.01;
+#X msg 204 530 draw line;
+#X obj 204 506 loadbang;
+#X obj 354 369 t a;
+#X connect 0 0 10 0;
+#X connect 1 0 2 0;
+#X connect 2 0 0 0;
+#X connect 3 1 9 0;
+#X connect 4 0 9 0;
+#X connect 5 0 13 0;
+#X connect 6 0 4 0;
+#X connect 6 1 0 0;
+#X connect 6 2 19 0;
+#X connect 7 0 8 0;
+#X connect 8 0 3 0;
+#X connect 9 0 6 0;
+#X connect 9 1 4 1;
+#X connect 10 0 11 0;
+#X connect 11 0 5 0;
+#X connect 13 0 16 0;
+#X connect 14 0 13 1;
+#X connect 15 0 13 2;
+#X connect 17 0 16 0;
#X connect 18 0 17 0;
-#X connect 19 0 41 0;
-#X connect 20 0 19 0;
-#X connect 21 0 33 0;
-#X connect 21 0 27 0;
-#X connect 23 0 15 0;
-#X connect 23 1 13 0;
-#X connect 24 0 23 0;
-#X connect 25 0 41 0;
-#X connect 26 0 25 0;
-#X connect 27 0 26 0;
-#X connect 29 0 30 0;
-#X connect 30 0 29 0;
-#X connect 33 0 20 0;
-#X connect 39 0 16 0;
-#X connect 40 0 34 0;
-#X connect 41 1 39 0;
-#X connect 41 2 40 0;
+#X connect 19 0 15 0;
+#X connect 19 0 14 0;
+#X restore 542 294 pd drawdefects;
+#N canvas 797 706 562 219 options 0;
+#X obj 57 97 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 1 1
+;
+#X msg 57 117 contours \$1;
+#X obj 57 165 outlet;
+#X obj 147 97 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 1
+1;
+#X obj 247 97 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 1
+1;
+#X msg 147 117 convexhulls \$1;
+#X msg 247 117 convexitydefects \$1;
+#X text 25 7 set hierarchy level (which contour to send out);
+#X obj 24 33 nbx 5 14 -1 1e+37 0 1 empty empty empty 0 -8 0 10 -262144
+-1 -1 -1 256;
+#X msg 24 50 hierarchy_level \$1;
+#X text 71 75 send out different kind of infos (all on by default)
+:;
+#X text 25 17 -1 for all contours (default);
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 3 0 5 0;
+#X connect 4 0 6 0;
+#X connect 5 0 2 0;
+#X connect 6 0 2 0;
+#X connect 8 0 9 0;
+#X connect 9 0 2 0;
+#X restore 674 213 pd options;
+#X text 489 347 color legend :;
+#X text 522 364 yellow = bounding box;
+#X text 528 374 green = contour;
+#X text 534 385 blue = convexhull;
+#X text 534 397 pink = convexhull edge with defects;
+#X text 540 409 red = farthest point from convexhull;
+#X connect 13 0 14 0;
+#X connect 14 0 13 0;
+#X connect 40 0 48 0;
+#X connect 41 0 55 0;
+#X connect 42 0 41 0;
+#X connect 43 0 42 0;
+#X connect 43 1 57 0;
+#X connect 44 0 43 0;
+#X connect 45 0 55 0;
+#X connect 46 0 45 0;
+#X connect 47 0 53 0;
+#X connect 47 0 52 0;
+#X connect 49 0 42 0;
+#X connect 49 1 40 0;
+#X connect 50 0 55 0;
+#X connect 51 0 50 0;
+#X connect 52 0 51 0;
+#X connect 53 0 46 0;
+#X connect 55 1 56 0;
+#X connect 55 1 58 0;
+#X connect 55 2 54 0;
+#X connect 57 0 49 0;
+#X connect 59 0 55 0;