M-point averaging filter
3 views (last 30 days)
Show older comments
I need to implement a one-dimensional M-point averaging filter for a matrix consisting of values (pixels of an image) between 0 and 1, such that each pixel value is replaced by the equal-weighted average of its (M − 1)/2 neighbors to its left, (M − 1)/2 neighbors to its right, and the pixel value itself.
For instance, for M = 3, it would be like:
y[n,m]= 1/3 (x[n,m−1] + x[n,m] + x[n,m+1])
Please help me out with this. Thank you.
2 Comments
Austin Thai
on 17 Apr 2021
Edited: Austin Thai
on 17 Apr 2021
Have you checked out the movmean function? You should be able to do
y[n,:]=movmean(x(n,:),3)
Image Analyst
on 17 Apr 2021
Accepted Answer
the cyclist
on 17 Apr 2021
Edited: the cyclist
on 17 Apr 2021
% Define some data
A = reshape(1:15,3,5);
% Take the moving average of 3 elements, across the rows.
movmean(A,3,2)
0 Comments
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!