1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
#N canvas 678 0 632 642 10;
#X obj 43 87 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1
;
#X msg 255 135 1 1 1 1 1 1 1 1 1;
#X obj 255 113 loadbang;
#X obj 255 157 #redim (3 3);
#X obj 43 158 #in;
#X obj 43 241 #out window;
#X obj 103 723 #contrast;
#X obj 169 723 #posterize;
#X obj 241 723 #solarize;
#X obj 307 723 #layer;
#X obj 43 183 #convolve \, op ^ \, fold + \, seed 0;
#X text 14 28 [#convolve] is used to perform various transformations
on images such as blurring \, sharpening \, finding edges \, embossing
\, cellular automata and many others.;
#X text 232 316 This is the convolution grid and it gets stored in
the other object. If rows2 and/or columns 2 are odd numbers \, then
the centre of convolution is the middle of the convolution grid. If
they are even numbers \, then the chosen centre will be slightly more
to the left and/or to the top \, because the actual middle is between
celle of the grid.;
#X obj 3 723 doc_also;
#X obj 14 691 doc_oo 0;
#X obj 14 443 doc_ii 0;
#X obj 14 629 doc_ii 1;
#X text 155 216 here ^ is the parallel operator \, fold is indicated
by + and 0 is its base (seed).;
#X obj 14 316 doc_cc 0;
#X text 232 691 Resulting image.;
#X text 232 443 Splits the incoming grid into dim(rest...) parts \,
for each of those parts at (y \, x). A rectangle of such parts \, centered
around (y \, x) is combined with the convolution grid like a [#] of
operation op_para. Then each such result is folded like [#fold] of
operation op_fold and specified base. The results are assembled into
a grid that is sent to the outlet. Near the borders of the grid \,
coordinates wrap around. this means the whole grid has to be received
before production of the next grid starts.;
#X text 232 629 same as arg 0;
#X msg 43 135 open scissors.jpg \, bang;
#X obj 0 0 doc_h;
#X obj 0 743 doc_f;
#X obj 3 286 doc_c 0..1;
#X obj 3 413 doc_i 2;
#X obj 3 661 doc_o 1;
#X obj 97 443 doc_m i0 grid;
#X obj 97 629 doc_m i1 grid;
#X obj 97 691 doc_m o0 grid;
#X obj 97 589 doc_m i0 op numop;
#X obj 97 569 doc_m i0 fold numop;
#X obj 97 609 doc_m i0 seed grid;
#X obj 97 316 doc_m c0 grid;
#X connect 0 0 22 0;
#X connect 1 0 3 0;
#X connect 2 0 1 0;
#X connect 3 0 10 1;
#X connect 4 0 10 0;
#X connect 10 0 5 0;
#X connect 13 1 6 0;
#X connect 13 1 7 0;
#X connect 13 1 8 0;
#X connect 13 1 9 0;
#X connect 22 0 4 0;
#X connect 28 1 20 0;
#X connect 29 1 21 0;
#X connect 30 1 19 0;
#X connect 34 1 12 0;
|