
To JPH: this was the reason for me to add the ZExpression INSIDE the bitmap creation ^^.
For what concerns the way convolution works, now I do understand why you got confused!
Convolution is directly depending on the array size. Since you are forced to use 2d arrays, I will call them matrices from now on. If you use a 3x3 square matrix, the convolution is made on all the nine points (eight adiacents plus the central one). If you create a let's say 5x13 matrix, the convolution is executed on all the pixels that are contained in a 5x13 rectangule centered on the central point. In the example I was posting, I used a 5x1 matrix twice (once horizontally then once vertically by using the "SwapDimension" property) because I wanted to apply a "separable convolution" (this page could help: ( http://blogs.mathworks.com/steve/2006/1 ... nvolution/ )
But you are free to set whatever dimension you would like to!