M-point averaging filter

3 ビュー (過去 30 日間)
Sarah Maas
Sarah Maas 2021 年 4 月 17 日
コメント済み: Image Analyst 2021 年 4 月 17 日
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,m1] + x[n,m] + x[n,m+1])
Please help me out with this. Thank you.
  2 件のコメント
Austin Thai
Austin Thai 2021 年 4 月 17 日
編集済み: Austin Thai 2021 年 4 月 17 日
Have you checked out the movmean function? You should be able to do
y[n,:]=movmean(x(n,:),3)
Image Analyst
Image Analyst 2021 年 4 月 17 日

サインインしてコメントする。

採用された回答

the cyclist
the cyclist 2021 年 4 月 17 日
編集済み: the cyclist 2021 年 4 月 17 日
You should be able to use the movmean function. For example:
% Define some data
A = reshape(1:15,3,5);
% Take the moving average of 3 elements, across the rows.
movmean(A,3,2)
ans = 3×5
2.5000 4.0000 7.0000 10.0000 11.5000 3.5000 5.0000 8.0000 11.0000 12.5000 4.5000 6.0000 9.0000 12.0000 13.5000

その他の回答 (0 件)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by