File Exchange

image thumbnail

Average Filter

version (3.44 KB) by Jan Motl
Average filter performs image smoothing with integral image method.


Updated 01 Jun 2018

View License

The advantage of this implementation in comparison to IMFILTER from Image Processing Toolbox is that the processing time is independent of window size. In practice, it means that this implementation of the mean filter is faster than IMFILTER once windows size goes beyond 7 pixels.

Cite As

Jan Motl (2020). Average Filter (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (7)

Lns K

this algorithm has it a good result in a subpixel detection , I would comapre some techniques of thresholding and their impacts in a subpixel accuracy ( centroid calculation)

Jan Motl

I fixed the error in the test file. The function should be called like:
averagefilter(image, [m n])
and not like:
averagefilter(image, m, n)

Thank you for the report!

Partho Pritom

there is an error which reports "Index exceeds matrix dimensions"

Kate Snyder


Jan Motl

Hi Jan,
thank you for your feedback. The biggest gain from the vectorised version is in calculation of the integral image - cumsum accelerated the whole function by 5%. And that is good.


Although I like FOR loops, here a vectorized approach would be much more efficient, e.g.:
output = (t(1+m:rows+m, 1+n:columns+n) + t(1:rows, 1:columns) -
t(1+m:rows+m, 1:columns) - t(1:rows, 1+n:columns+n)) / winNum;

The documentation is very good: H1 line, exhaustive descritpion of inputs and outputs, "See also" line. I only miss a date and the author.
The inputs are check reliably.


Fixed the test file. (Thanks to Kate!)

Fix typos

Allowed reuse of the integral image.

Added support for even sized kernels.

Vectorised version.

Improved the help text. (Thanks Jan!)

Fixed copyright owner.

Added padding parameters.

MATLAB Release Compatibility
Created with R13
Compatible with any release
Platform Compatibility
Windows macOS Linux