**Alex's notes**

# Convolution

If we Consider an image as an array of numbers, a convolution is the process of transforming an image by applying a kernel to every pixel in the image. The kernel is a small matrix of numbers, like:

To apply the kernel to a pixel of an image, you align the kernel over the image so that the center of the kernel is directly on top of the pixel in question. Then you perform a weighted sum over the image, using the kernel values as weights.

TODO: add example

Common image processing operations such as blur or sharpen can be expressed as convolutions, as can the rules of cellular automata like the Game of Life. Convolutions are applied in my Feedback Crystals using various kernels to achieve a variety of macro patterns.