Evaluation of few methods to apply Gaussian Blur on an Image.
The project is written in MATLAB and the evaluation is by Run Time and Approximation Error.
The runtime is estimation of the overall complexity of the method and not optimization by coding.
Namely, this project is after the most efficient method for applying Gaussian Blur not teh fastest MATLAB implementation.
The complxiety of the claasic method depneds on the Image Size and the Guassian Kernel STD.
Some of the approximations complexity is independent of the Gaussian Kernel Standard Deviation (STD).
- The input image is within the range [0, 1], namely working on Floating Point.
- The Gaussian Blur is actually a one parameter function - the STD.
- Boundaries are either replication or symmetry.
This section describes the current implemented methods.
The result is a convolution with a Gaussian Blur Kernel which is truncated.
According to the Central Limit Threoem a Gaussian Kernel can be approximated by convoloving Box Kernel over and over.
Box Blur by a Box Kernel can efficinetly implemnted using Integral Images (Summed Area Table).
Implementation using Integral Images makes this method complexity independent of the Gaussian Kernel STD.
The Gaussin Blur filter, based on the Gaussian Kernel has a specicif Frequency Response.
By an IIR Filter aaproximation of the Frequency Response a very efficinet implementation can achieved.
The approximation is done by a Polynomial and teh filtration is done in the Spatial Domain.
The filter is defined by a function which sets the filter coefficients as a function of the Gaussian Kernel STD.
If the filter (As implemented here) order is independent of the STD parameter, the complexity is constant.
Download all the MATLAB files.
Run GaussianBlurApproximationAnalysis
and see the results on MATLAB main screen.
Play with te parameters as you wish.
- Implement the following methods:
- StackBlur.
- Efficient and Accurate Gaussian Image Filtering Using Running Sums.
- Recursively Implementating the Gaussian and Its Derivatives.
- Create MEX implementations.
- Make the second method of the IIR Filter work.
- Create a system to compare the methos over a range of STD and image size.
- Include all the required references (Most are shown in the files).