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.
Jan Motl (2020). Average Filter (https://www.mathworks.com/matlabcentral/fileexchange/40174-average-filter), MATLAB Central File Exchange. Retrieved .
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)
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!
there is an error which reports "Index exceeds matrix dimensions"
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!)
Allowed reuse of the integral image.
Added support for even sized kernels.
Improved the help text. (Thanks Jan!)
Fixed copyright owner.
Added padding parameters.