#N canvas 923 183 662 404 10; #X obj 31 79 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 -1; #X text 14 15 @convolve blurs \, sharpens \, finds edges \, emboss & more ...; #X obj 19 100 @in; #X obj 19 133 @convolve ^ + 0; #X msg 212 76 1 1 1 1 1 1 1 1 1; #X obj 19 309 @out; #X msg 50 256 open x11 here; #X text 216 187 splits the incoming grid into dim(rest...) parts \, for each of those parts at (xy \, x). a rectangle of such parts \, centered around (y \, x) is combined with the convolusion grid like a [@] of operation op_para. then each such reszult 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. this is the convolution grid and it gets stored in the object. rows2 and columes2 must be odd numbers.; #X text 145 130 here ^ is the paralell operator \, fold is indicated by + and 0 is its base.; #X obj 212 96 @redim ( 3 3 ); #X msg 19 57 open jpeg file planet.jpg; #X msg 67 279 close; #X text 569 17 gridflow; #X text 18 363 see also:; #X obj 234 367 @solarize; #X obj 303 367 @layer; #X obj 158 367 @posterize; #X obj 89 367 @contrast; #X obj 212 57 loadbang; #X obj 273 57 s lb; #X obj 50 237 r lb; #X connect 0 0 2 0; #X connect 2 0 3 0; #X connect 3 0 5 0; #X connect 4 0 9 0; #X connect 6 0 5 0; #X connect 9 0 3 1; #X connect 10 0 2 0; #X connect 10 0 0 0; #X connect 11 0 5 0; #X connect 18 0 19 0; #X connect 18 0 4 0; #X connect 20 0 6 0;