aboutsummaryrefslogtreecommitdiff
path: root/patches
diff options
context:
space:
mode:
Diffstat (limited to 'patches')
-rw-r--r--patches/cutandpaste.pd114
-rw-r--r--patches/morphology/help-closing.pd98
-rw-r--r--patches/morphology/help-opening.pd98
-rw-r--r--patches/morphology/help-skeletization.pd113
-rw-r--r--patches/morphology/help-thickening.pd100
-rw-r--r--patches/morphology/help-thinning.pd95
6 files changed, 618 insertions, 0 deletions
diff --git a/patches/cutandpaste.pd b/patches/cutandpaste.pd
new file mode 100644
index 0000000..bbb0283
--- /dev/null
+++ b/patches/cutandpaste.pd
@@ -0,0 +1,114 @@
+#N canvas 237 21 712 664 10;
+#X obj 164 55 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
+-1;
+#X msg 71 103 loop \$1;
+#X obj 71 81 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 1 1
+;
+#X msg 55 55 open \$1;
+#X obj 55 31 openpanel;
+#X obj 55 9 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 -1
+;
+#X floatatom 216 56 5 0 0 0 - - -;
+#X msg 125 53 stop;
+#X obj 157 92 metro 70;
+#X obj 152 124 pdp_yqt;
+#X obj 263 113 pdp_v4l;
+#X obj 263 87 metro 70;
+#X obj 303 56 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
+-1;
+#X msg 264 55 stop;
+#X msg 326 87 open /dev/video;
+#X obj 582 496 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X obj 582 548 pdp_control;
+#X msg 582 521 thread \$1;
+#X floatatom 582 609 5 0 0 0 - - -;
+#X obj 582 580 route pdp_drop;
+#X obj 176 274 pdp_cropper;
+#X floatatom 336 230 5 0 0 0 - - -;
+#X floatatom 381 229 5 0 0 0 - - -;
+#X floatatom 295 251 5 0 0 0 - - -;
+#X floatatom 294 272 5 0 0 0 - - -;
+#X obj 257 501 pack f f;
+#X floatatom 258 462 5 0 0 0 - - -;
+#X floatatom 308 462 5 0 0 0 - - -;
+#X obj 298 481 t b f;
+#X msg 257 525 offset 2 \$1 \$2;
+#X msg 308 439 100;
+#X obj 152 169 pdp_scale 320 240;
+#X msg 338 249 20;
+#X msg 381 208 180;
+#X obj 41 605 pdp_xv;
+#X msg 492 213 bang;
+#X text 532 213 Crop!;
+#X msg 258 440 34;
+#X msg 336 209 100;
+#X msg 337 271 100;
+#X obj 353 448 loadbang;
+#X obj 176 360 pdp_canvas 320 240 2;
+#X obj 371 323 pdp_background;
+#X msg 489 322 0;
+#X obj 525 322 loadbang;
+#X obj 176 395 pdp_rotate;
+#X floatatom 257 384 5 0 0 0 - - -;
+#X obj 41 545 pdp_ocanvas 320 240 2;
+#X msg 258 548 alpha 1 0.3;
+#X msg 258 569 alpha 2 0.7;
+#X connect 0 0 8 0;
+#X connect 1 0 9 0;
+#X connect 2 0 1 0;
+#X connect 3 0 9 0;
+#X connect 4 0 3 0;
+#X connect 5 0 4 0;
+#X connect 6 0 8 1;
+#X connect 7 0 8 0;
+#X connect 8 0 9 0;
+#X connect 8 0 42 0;
+#X connect 9 0 31 0;
+#X connect 10 0 31 0;
+#X connect 11 0 10 0;
+#X connect 12 0 11 0;
+#X connect 13 0 11 0;
+#X connect 14 0 10 0;
+#X connect 15 0 17 0;
+#X connect 16 0 19 0;
+#X connect 17 0 16 0;
+#X connect 19 0 18 0;
+#X connect 20 0 41 2;
+#X connect 21 0 20 1;
+#X connect 22 0 20 2;
+#X connect 23 0 20 3;
+#X connect 24 0 20 4;
+#X connect 25 0 29 0;
+#X connect 26 0 25 0;
+#X connect 27 0 28 0;
+#X connect 28 0 25 0;
+#X connect 28 1 25 1;
+#X connect 29 0 41 0;
+#X connect 30 0 27 0;
+#X connect 31 0 20 0;
+#X connect 31 0 47 1;
+#X connect 32 0 23 0;
+#X connect 33 0 22 0;
+#X connect 35 0 33 0;
+#X connect 35 0 38 0;
+#X connect 35 0 32 0;
+#X connect 35 0 39 0;
+#X connect 37 0 26 0;
+#X connect 38 0 21 0;
+#X connect 39 0 24 0;
+#X connect 40 0 37 0;
+#X connect 40 0 30 0;
+#X connect 40 0 48 0;
+#X connect 40 0 49 0;
+#X connect 41 0 45 0;
+#X connect 42 0 41 1;
+#X connect 43 0 42 3;
+#X connect 43 0 42 2;
+#X connect 43 0 42 1;
+#X connect 44 0 43 0;
+#X connect 45 0 47 2;
+#X connect 46 0 45 1;
+#X connect 47 0 34 0;
+#X connect 48 0 47 0;
+#X connect 49 0 47 0;
diff --git a/patches/morphology/help-closing.pd b/patches/morphology/help-closing.pd
new file mode 100644
index 0000000..de4f8a8
--- /dev/null
+++ b/patches/morphology/help-closing.pd
@@ -0,0 +1,98 @@
+#N canvas 381 0 781 666 10;
+#X obj 341 20 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
+-1;
+#X msg 196 92 loop \$1;
+#X obj 197 70 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 0 1
+;
+#X msg 453 93 open \$1;
+#X obj 452 69 openpanel;
+#X obj 437 52 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
+-1;
+#X floatatom 389 55 5 0 0 0 - - -;
+#X msg 298 21 stop;
+#X obj 396 24 hsl 300 15 0 1000 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 6900 1;
+#X obj 330 91 metro 70;
+#X obj 325 123 pdp_yqt;
+#X obj 25 193 pdp_v4l;
+#X obj 34 162 metro 70;
+#X obj 79 128 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
+-1;
+#X msg 36 129 stop;
+#X msg 121 160 open /dev/video;
+#X text 301 612 written by Yves Degoyon ( ydegoyon@free.fr );
+#X msg 31 236 pick;
+#X floatatom 248 262 5 0 0 0 - - -;
+#X obj 594 197 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X obj 594 249 pdp_control;
+#X msg 594 222 thread \$1;
+#X floatatom 594 310 5 0 0 0 - - -;
+#X obj 594 281 route pdp_drop;
+#X msg 72 237 setcur \$1 \$2;
+#X floatatom 174 328 5 0 0 0 - - -;
+#X floatatom 224 329 5 0 0 0 - - -;
+#X floatatom 271 328 5 0 0 0 - - -;
+#X text 294 261 Tolerance ( default = 55 );
+#X obj 138 289 pdp_binary ----;
+#X obj 41 369 route press drag release;
+#X msg 42 311 cursor 1;
+#X floatatom 250 370 5 0 0 0 - - -;
+#X text 296 369 Number of passes ( default = 1 );
+#X obj 41 342 pdp_glx;
+#X floatatom 271 396 5 0 0 0 - - -;
+#X floatatom 292 420 5 0 0 0 - - -;
+#X text 317 395 Kernel width ( default = 3 );
+#X text 337 417 Kernel height ( default = 3 );
+#X floatatom 265 450 5 0 0 0 - - -;
+#X text 311 449 Number of passes ( default = 1 );
+#X text 302 594 morphology : opening;
+#X obj 148 550 pdp_glx;
+#X obj 61 508 pdp_xor;
+#X obj 61 547 pdp_glx;
+#X obj 148 437 pdp_dilate ----;
+#X obj 148 509 pdp_erode ----;
+#X connect 0 0 9 0;
+#X connect 1 0 10 0;
+#X connect 2 0 1 0;
+#X connect 3 0 10 0;
+#X connect 4 0 3 0;
+#X connect 5 0 4 0;
+#X connect 6 0 9 1;
+#X connect 7 0 9 0;
+#X connect 8 0 6 0;
+#X connect 9 0 10 0;
+#X connect 10 0 29 0;
+#X connect 11 0 29 0;
+#X connect 12 0 11 0;
+#X connect 13 0 12 0;
+#X connect 14 0 12 0;
+#X connect 15 0 11 0;
+#X connect 17 0 29 0;
+#X connect 18 0 29 6;
+#X connect 19 0 21 0;
+#X connect 20 0 23 0;
+#X connect 21 0 20 0;
+#X connect 23 0 22 0;
+#X connect 24 0 17 0;
+#X connect 24 0 29 0;
+#X connect 29 0 34 0;
+#X connect 29 0 31 0;
+#X connect 29 0 43 0;
+#X connect 29 0 45 0;
+#X connect 29 1 25 0;
+#X connect 29 2 26 0;
+#X connect 29 3 27 0;
+#X connect 30 0 24 0;
+#X connect 31 0 34 0;
+#X connect 32 0 45 1;
+#X connect 34 0 30 0;
+#X connect 35 0 45 2;
+#X connect 35 0 46 2;
+#X connect 36 0 45 3;
+#X connect 36 0 46 3;
+#X connect 39 0 46 1;
+#X connect 43 0 44 0;
+#X connect 45 0 46 0;
+#X connect 46 0 42 0;
+#X connect 46 0 43 1;
diff --git a/patches/morphology/help-opening.pd b/patches/morphology/help-opening.pd
new file mode 100644
index 0000000..660a59e
--- /dev/null
+++ b/patches/morphology/help-opening.pd
@@ -0,0 +1,98 @@
+#N canvas 381 0 781 666 10;
+#X obj 341 20 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
+-1;
+#X msg 196 92 loop \$1;
+#X obj 197 70 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 1 1
+;
+#X msg 453 93 open \$1;
+#X obj 452 69 openpanel;
+#X obj 437 52 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
+-1;
+#X floatatom 389 55 5 0 0 0 - - -;
+#X msg 298 21 stop;
+#X obj 396 24 hsl 300 15 0 1000 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 0 1;
+#X obj 330 91 metro 70;
+#X obj 325 123 pdp_yqt;
+#X obj 25 193 pdp_v4l;
+#X obj 34 162 metro 70;
+#X obj 79 128 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
+-1;
+#X msg 36 129 stop;
+#X msg 121 160 open /dev/video;
+#X text 301 612 written by Yves Degoyon ( ydegoyon@free.fr );
+#X msg 31 236 pick;
+#X floatatom 248 262 5 0 0 0 - - -;
+#X obj 594 197 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X obj 594 249 pdp_control;
+#X msg 594 222 thread \$1;
+#X floatatom 594 310 5 0 0 0 - - -;
+#X obj 594 281 route pdp_drop;
+#X msg 72 237 setcur \$1 \$2;
+#X floatatom 174 328 5 0 0 0 - - -;
+#X floatatom 224 329 5 0 0 0 - - -;
+#X floatatom 271 328 5 0 0 0 - - -;
+#X text 294 261 Tolerance ( default = 55 );
+#X obj 138 289 pdp_binary ----;
+#X obj 41 369 route press drag release;
+#X msg 42 311 cursor 1;
+#X floatatom 250 370 5 0 0 0 - - -;
+#X text 296 369 Number of passes ( default = 1 );
+#X obj 41 342 pdp_glx;
+#X floatatom 271 396 5 0 0 0 - - -;
+#X floatatom 292 420 5 0 0 0 - - -;
+#X text 317 395 Kernel width ( default = 3 );
+#X text 337 417 Kernel height ( default = 3 );
+#X obj 148 437 pdp_erode ----;
+#X floatatom 265 450 5 0 0 0 - - -;
+#X text 311 449 Number of passes ( default = 1 );
+#X text 302 594 morphology : opening;
+#X obj 148 509 pdp_dilate ----;
+#X obj 148 550 pdp_glx;
+#X obj 61 508 pdp_xor;
+#X obj 61 547 pdp_glx;
+#X connect 0 0 9 0;
+#X connect 1 0 10 0;
+#X connect 2 0 1 0;
+#X connect 3 0 10 0;
+#X connect 4 0 3 0;
+#X connect 5 0 4 0;
+#X connect 6 0 9 1;
+#X connect 7 0 9 0;
+#X connect 8 0 6 0;
+#X connect 9 0 10 0;
+#X connect 10 0 29 0;
+#X connect 11 0 29 0;
+#X connect 12 0 11 0;
+#X connect 13 0 12 0;
+#X connect 14 0 12 0;
+#X connect 15 0 11 0;
+#X connect 17 0 29 0;
+#X connect 18 0 29 6;
+#X connect 19 0 21 0;
+#X connect 20 0 23 0;
+#X connect 21 0 20 0;
+#X connect 23 0 22 0;
+#X connect 24 0 17 0;
+#X connect 24 0 29 0;
+#X connect 29 0 34 0;
+#X connect 29 0 31 0;
+#X connect 29 0 39 0;
+#X connect 29 0 45 0;
+#X connect 29 1 25 0;
+#X connect 29 2 26 0;
+#X connect 29 3 27 0;
+#X connect 30 0 24 0;
+#X connect 31 0 34 0;
+#X connect 32 0 39 1;
+#X connect 34 0 30 0;
+#X connect 35 0 39 2;
+#X connect 35 0 43 2;
+#X connect 36 0 39 3;
+#X connect 36 0 43 3;
+#X connect 39 0 43 0;
+#X connect 40 0 43 1;
+#X connect 43 0 44 0;
+#X connect 43 0 45 1;
+#X connect 45 0 46 0;
diff --git a/patches/morphology/help-skeletization.pd b/patches/morphology/help-skeletization.pd
new file mode 100644
index 0000000..342f6cb
--- /dev/null
+++ b/patches/morphology/help-skeletization.pd
@@ -0,0 +1,113 @@
+#N canvas 368 0 781 666 10;
+#X obj 341 20 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
+-1;
+#X msg 196 92 loop \$1;
+#X obj 197 70 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 1 1
+;
+#X msg 453 93 open \$1;
+#X obj 452 69 openpanel;
+#X obj 437 52 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
+-1;
+#X floatatom 389 55 5 0 0 0 - - -;
+#X msg 298 21 stop;
+#X obj 396 24 hsl 300 15 0 1000 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 0 1;
+#X obj 330 91 metro 70;
+#X obj 325 123 pdp_yqt;
+#X obj 25 193 pdp_v4l;
+#X obj 34 162 metro 70;
+#X obj 79 128 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
+-1;
+#X msg 36 129 stop;
+#X msg 121 160 open /dev/video;
+#X obj 594 197 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X obj 594 249 pdp_control;
+#X msg 594 222 thread \$1;
+#X floatatom 594 310 5 0 0 0 - - -;
+#X obj 594 281 route pdp_drop;
+#X obj 114 339 pdp_distance ----;
+#X obj 287 289 pdp_glx;
+#X text 297 552 morphology : skeletization;
+#X text 297 570 written by Yves Degoyon ( ydegoyon@free.fr );
+#X floatatom 270 471 5 0 0 0 - - -;
+#X floatatom 150 510 5 0 0 0 - - -;
+#X floatatom 200 511 5 0 0 0 - - -;
+#X floatatom 247 510 5 0 0 0 - - -;
+#X text 270 443 Tolerance ( default = 55 );
+#X obj 114 471 pdp_binary ----;
+#X floatatom 110 445 5 0 0 0 - - -;
+#X text 157 443 Luma component;
+#X obj 138 413 pdp_glx;
+#X obj 347 470 loadbang;
+#X obj 114 289 pdp_binary ----;
+#X floatatom 228 257 5 0 0 0 - - -;
+#X text 275 256 Tolerance ( default = 55 );
+#X obj 114 543 pdp_glx;
+#X obj 114 384 pdp_gain;
+#X floatatom 176 363 5 0 0 0 - - -;
+#X msg 229 362 2;
+#X obj 264 362 loadbang;
+#X obj 11 445 loadbang;
+#X msg 76 444 200;
+#X msg 313 471 55;
+#X msg 116 240 pick;
+#X msg 115 262 setcur \$1 \$2;
+#X floatatom 148 317 5 0 0 0 - - -;
+#X floatatom 189 317 5 0 0 0 - - -;
+#X floatatom 236 317 5 0 0 0 - - -;
+#X obj 287 315 route press drag release;
+#X msg 227 232 cursor 1;
+#X obj 344 161 pdp_glx;
+#X connect 0 0 9 0;
+#X connect 1 0 10 0;
+#X connect 2 0 1 0;
+#X connect 3 0 10 0;
+#X connect 4 0 3 0;
+#X connect 5 0 4 0;
+#X connect 6 0 9 1;
+#X connect 7 0 9 0;
+#X connect 8 0 6 0;
+#X connect 9 0 10 0;
+#X connect 10 0 35 0;
+#X connect 10 0 52 0;
+#X connect 10 0 53 0;
+#X connect 11 0 35 0;
+#X connect 12 0 11 0;
+#X connect 13 0 12 0;
+#X connect 14 0 12 0;
+#X connect 15 0 11 0;
+#X connect 16 0 18 0;
+#X connect 17 0 20 0;
+#X connect 18 0 17 0;
+#X connect 20 0 19 0;
+#X connect 21 0 39 0;
+#X connect 22 0 51 0;
+#X connect 25 0 30 6;
+#X connect 30 0 38 0;
+#X connect 30 1 26 0;
+#X connect 30 2 27 0;
+#X connect 30 3 28 0;
+#X connect 31 0 30 1;
+#X connect 34 0 45 0;
+#X connect 35 0 22 0;
+#X connect 35 0 21 0;
+#X connect 35 1 48 0;
+#X connect 35 2 49 0;
+#X connect 35 3 50 0;
+#X connect 36 0 35 6;
+#X connect 39 0 33 0;
+#X connect 39 0 30 0;
+#X connect 40 0 39 1;
+#X connect 41 0 40 0;
+#X connect 42 0 41 0;
+#X connect 43 0 44 0;
+#X connect 44 0 31 0;
+#X connect 45 0 25 0;
+#X connect 46 0 35 0;
+#X connect 47 0 46 0;
+#X connect 47 0 35 0;
+#X connect 51 0 47 0;
+#X connect 52 0 22 0;
+#X connect 52 0 53 0;
+#X connect 53 0 51 0;
diff --git a/patches/morphology/help-thickening.pd b/patches/morphology/help-thickening.pd
new file mode 100644
index 0000000..4bb41ca
--- /dev/null
+++ b/patches/morphology/help-thickening.pd
@@ -0,0 +1,100 @@
+#N canvas 381 0 781 666 10;
+#X obj 341 20 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
+-1;
+#X msg 196 92 loop \$1;
+#X obj 197 70 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 1 1
+;
+#X msg 453 93 open \$1;
+#X obj 452 69 openpanel;
+#X obj 437 52 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
+-1;
+#X floatatom 389 55 5 0 0 0 - - -;
+#X msg 298 21 stop;
+#X obj 396 24 hsl 300 15 0 1000 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 0 1;
+#X obj 330 91 metro 70;
+#X obj 325 123 pdp_yqt;
+#X obj 25 193 pdp_v4l;
+#X obj 34 162 metro 70;
+#X obj 79 128 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
+-1;
+#X msg 36 129 stop;
+#X msg 121 160 open /dev/video;
+#X text 306 611 written by Yves Degoyon ( ydegoyon@free.fr );
+#X msg 31 236 pick;
+#X floatatom 248 262 5 0 0 0 - - -;
+#X obj 594 197 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X obj 594 249 pdp_control;
+#X msg 594 222 thread \$1;
+#X floatatom 594 310 5 0 0 0 - - -;
+#X obj 594 281 route pdp_drop;
+#X msg 72 237 setcur \$1 \$2;
+#X floatatom 174 328 5 0 0 0 - - -;
+#X floatatom 224 329 5 0 0 0 - - -;
+#X floatatom 271 328 5 0 0 0 - - -;
+#X text 294 261 Tolerance ( default = 55 );
+#X obj 41 369 route press drag release;
+#X msg 42 311 cursor 1;
+#X text 296 369 Number of passes ( default = 1 );
+#X floatatom 271 396 5 0 0 0 - - -;
+#X floatatom 292 420 5 0 0 0 - - -;
+#X text 317 395 Kernel width ( default = 3 );
+#X text 338 418 Kernel height ( default = 3 );
+#X obj 143 501 pdp_hitandmiss ----;
+#X obj 41 342 pdp_glx;
+#X obj 63 576 pdp_glx;
+#X obj 138 289 pdp_binary ----;
+#X text 307 594 morphology : thinning;
+#X floatatom 247 368 5 0 0 0 - - -;
+#X msg 329 494 kernel -1 1 -1 0 1 1 0 0 -1;
+#X msg 327 471 kernel 1 1 -1 1 0 -1 1 -1 0;
+#X obj 327 444 loadbang;
+#X obj 64 550 pdp_or;
+#X obj 152 560 pdp_xor;
+#X obj 152 589 pdp_glx;
+#X connect 0 0 9 0;
+#X connect 1 0 10 0;
+#X connect 2 0 1 0;
+#X connect 3 0 10 0;
+#X connect 4 0 3 0;
+#X connect 5 0 4 0;
+#X connect 6 0 9 1;
+#X connect 7 0 9 0;
+#X connect 8 0 6 0;
+#X connect 9 0 10 0;
+#X connect 10 0 39 0;
+#X connect 11 0 39 0;
+#X connect 12 0 11 0;
+#X connect 13 0 12 0;
+#X connect 14 0 12 0;
+#X connect 15 0 11 0;
+#X connect 17 0 39 0;
+#X connect 18 0 39 6;
+#X connect 19 0 21 0;
+#X connect 20 0 23 0;
+#X connect 21 0 20 0;
+#X connect 23 0 22 0;
+#X connect 24 0 17 0;
+#X connect 24 0 39 0;
+#X connect 29 0 24 0;
+#X connect 30 0 37 0;
+#X connect 32 0 36 2;
+#X connect 33 0 36 3;
+#X connect 36 0 45 1;
+#X connect 37 0 29 0;
+#X connect 39 0 30 0;
+#X connect 39 0 36 0;
+#X connect 39 0 37 0;
+#X connect 39 0 45 0;
+#X connect 39 0 46 1;
+#X connect 39 1 25 0;
+#X connect 39 2 26 0;
+#X connect 39 3 27 0;
+#X connect 41 0 36 1;
+#X connect 42 0 36 0;
+#X connect 43 0 36 0;
+#X connect 44 0 43 0;
+#X connect 45 0 38 0;
+#X connect 45 0 46 0;
+#X connect 46 0 47 0;
diff --git a/patches/morphology/help-thinning.pd b/patches/morphology/help-thinning.pd
new file mode 100644
index 0000000..5b49da0
--- /dev/null
+++ b/patches/morphology/help-thinning.pd
@@ -0,0 +1,95 @@
+#N canvas 381 0 781 666 10;
+#X obj 341 20 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
+-1;
+#X msg 196 92 loop \$1;
+#X obj 197 70 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 1 1
+;
+#X msg 453 93 open \$1;
+#X obj 452 69 openpanel;
+#X obj 437 52 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
+-1;
+#X floatatom 389 55 5 0 0 0 - - -;
+#X msg 298 21 stop;
+#X obj 396 24 hsl 300 15 0 1000 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 0 1;
+#X obj 330 91 metro 70;
+#X obj 325 123 pdp_yqt;
+#X obj 25 193 pdp_v4l;
+#X obj 34 162 metro 70;
+#X obj 79 128 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
+-1;
+#X msg 36 129 stop;
+#X msg 121 160 open /dev/video;
+#X text 306 611 written by Yves Degoyon ( ydegoyon@free.fr );
+#X msg 31 236 pick;
+#X floatatom 248 262 5 0 0 0 - - -;
+#X obj 594 197 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X obj 594 249 pdp_control;
+#X msg 594 222 thread \$1;
+#X floatatom 594 310 5 0 0 0 - - -;
+#X obj 594 281 route pdp_drop;
+#X msg 72 237 setcur \$1 \$2;
+#X floatatom 174 328 5 0 0 0 - - -;
+#X floatatom 224 329 5 0 0 0 - - -;
+#X floatatom 271 328 5 0 0 0 - - -;
+#X text 294 261 Tolerance ( default = 55 );
+#X obj 41 369 route press drag release;
+#X msg 42 311 cursor 1;
+#X text 296 369 Number of passes ( default = 1 );
+#X floatatom 271 396 5 0 0 0 - - -;
+#X floatatom 292 420 5 0 0 0 - - -;
+#X text 317 395 Kernel width ( default = 3 );
+#X text 338 418 Kernel height ( default = 3 );
+#X obj 143 501 pdp_hitandmiss ----;
+#X obj 41 342 pdp_glx;
+#X obj 63 576 pdp_glx;
+#X obj 138 289 pdp_binary ----;
+#X text 307 594 morphology : thinning;
+#X floatatom 247 368 5 0 0 0 - - -;
+#X msg 329 494 kernel -1 1 -1 0 1 1 0 0 -1;
+#X obj 64 551 pdp_xor;
+#X msg 327 471 kernel -1 -1 -1 -1 1 -1 1 1 1;
+#X obj 326 444 loadbang;
+#X connect 0 0 9 0;
+#X connect 1 0 10 0;
+#X connect 2 0 1 0;
+#X connect 3 0 10 0;
+#X connect 4 0 3 0;
+#X connect 5 0 4 0;
+#X connect 6 0 9 1;
+#X connect 7 0 9 0;
+#X connect 8 0 6 0;
+#X connect 9 0 10 0;
+#X connect 10 0 39 0;
+#X connect 11 0 39 0;
+#X connect 12 0 11 0;
+#X connect 13 0 12 0;
+#X connect 14 0 12 0;
+#X connect 15 0 11 0;
+#X connect 17 0 39 0;
+#X connect 18 0 39 6;
+#X connect 19 0 21 0;
+#X connect 20 0 23 0;
+#X connect 21 0 20 0;
+#X connect 23 0 22 0;
+#X connect 24 0 17 0;
+#X connect 24 0 39 0;
+#X connect 29 0 24 0;
+#X connect 30 0 37 0;
+#X connect 32 0 36 2;
+#X connect 33 0 36 3;
+#X connect 36 0 43 1;
+#X connect 37 0 29 0;
+#X connect 39 0 30 0;
+#X connect 39 0 36 0;
+#X connect 39 0 37 0;
+#X connect 39 0 43 0;
+#X connect 39 1 25 0;
+#X connect 39 2 26 0;
+#X connect 39 3 27 0;
+#X connect 41 0 36 1;
+#X connect 42 0 36 0;
+#X connect 43 0 38 0;
+#X connect 44 0 36 0;
+#X connect 45 0 44 0;