Some common convolutions for image processing: blurring

In a previous post, we defined a special case of a convolution commonly seen in image processing applications, and gave some code to apply these filters to images.

Now that we’ve seen what a linear filter is, we will look at some examples of commonly used kernels in image processing for things like blurring, and edge detection. For each, we will briefly discuss the rationale behind picking those particular kernels.

A combination of these different convolutions allows one to do a surprisingly large amount of things, including in computer vision applications.

While some of these operations can be achieved using far more sophisticated approaches, applying a simple convolution often achieves pretty good results.

This post focuses on blurring in particular.

Continue reading “Some common convolutions for image processing: blurring”

An introduction to convolutions for image processing

Many techniques in image processing involve transformations that  make use of neighbouring information.  One simple class of transformations just takes a linear combination of some fixed neighbours. This class of transformation can be used to perform operations like blurring, sharpening, and edge detection. A surprisingly large amount of image manipulation can be done effectively using a combination of these transformations. They are sometimes referred to as linear filters.

This post aims to lay out some of the theory behind linear filters used in image processing. The aim is not to be as general or abstract as possible with the ideas, rather, to specialise towards implementation instead. Some Python code will be presented to illustrate how one can apply these filters.

Continue reading “An introduction to convolutions for image processing”