# Image Convolution

Image Convolution
Field: Other
Image Created By: [[Author:| ]]

Image Convolution

Image Convolution is the process of applying a filter to images

# Basic Description

Images can be convolved by applying a function to each pixel of the image. Usually, this function is precalculated inside a small two dimensional array called a kernel.

# A More Mathematical Explanation

Most generally, the convolution of two functions f and g is defined as the following:

'"UNIQ--mat [...]

Most generally, the convolution of two functions f and g is defined as the following:

$(f * g)(x,y) = \sum_{v=-\infty}^{\infty} \sum_{u=-\infty}^{\infty} f(x,y) g(x - u, y - v)$

In this formula $f(x,y)$ is a function that represents the image, and $g(x,y)$ is the kernel. In practical situations, the kernel is only defined over a finite set of points, so we can modify our definition as follows:

$(f * g)(x,y) = \sum_{v=y-h}^{y+h} \sum_{u=x-w}^{x+w} f(x,y) g(x - u, y - v)$

Where $2w + 1$ is the width of the kernel and $2h + 1$ is the height of the kernel. In this example g is only defined over the points $[-w, w] \times [-h, h]$. To convolve an image, this formula is evaluated at every point in the image. In the following pseudocode to convolve an image, f(x, y) is the original image, g(x, y) is the kernel, and h(x, y) is the new image.

for y from 0 to imageHeight
for x from 0 to imageWidth
sum := 0;
for v from y - h to y + h
for u from x - w to x + w
sum := sum + f( x, y ) * g( x - u, y - v );
h( x, y ) := sum;
`

The most common type of kernel is a gaussian which acts as a lowpass filter, suppressing high frequency data in the signal. The most common example of the gaussian for a 3x3 kernel is the following:

$\frac{1}{16} \left[ {\begin{array}{ccc} 1 & 2 & 1 \\ 2 & 4 & 2 \\ 1 & 2 & 1 \\ \end{array} } \right]$

# Teaching Materials

There are currently no teaching materials for this page. Add teaching materials.