Background subtraction
When working with surveillance cameras, it's easy to see that most of the frame keeps still, while the moving objects, the ones we are interested in, are the areas that vary most over time. Background subtraction is defined as the approach used to detect moving objects from static cameras, also known as foreground detection, since we're mostly interested in the foreground objects.
In order to perform some valuable background subtraction, it is important to account for varying luminance conditions, taking care always to update our background model. Although some techniques extend the idea of background subtraction beyond its literal meaning, such as the mixture of Gaussian approach, they are still named like this.
In order to compare all the solutions in the following sections, we will come up with a useful interface, which is called VideoProcessor. This interface is made of a simple method called process. The whole interface is given in the following piece of code:
public...