MATLAB Answers

Implement the following formula

60 views (last 30 days)
Sarah Maas
Sarah Maas on 17 Apr 2021 at 11:18
Commented: Image Analyst on 17 Apr 2021 at 16:34
How can I implement the following formula? Please write the code for it. Thanks.
y[n,m]= 1/3( x[n,m1] + x[n,m] + x[n,m+1] )

Accepted Answer

Image Analyst
Image Analyst on 17 Apr 2021 at 15:32
kernel = [1,1,1]/3;
y = conv(x, kernel, 'same'); % Convolution does that. All rows, one row at a time.
or
y(n, :) = movmean(x(n, :), 3); % For the nth row only.
  2 Comments
Image Analyst
Image Analyst on 17 Apr 2021 at 16:34
Do you want to blur all the rows with a 1-by-3 array? If so you can use conv2 or imfilter
kernel = [1,1,1]/3;
y = conv(grayImage, kernel, 'same'); % Convolution does that. All rows, one row at a time.
y = imfilter(grayImage, kernel)
Or do you want to blur just the nth row and leave the other rows unchanged?

Sign in to comment.

More Answers (1)

Alan Stevens
Alan Stevens on 17 Apr 2021 at 14:20
Change the square brackets, [ ], to curved brackets, ( ). Put a multiply sign, *, after the 3.
  2 Comments
Image Analyst
Image Analyst on 17 Apr 2021 at 15:27
OK, if you don't know how to do a for loop, then you have not even taken the most basic training on MATLAB. So follow this link and learn how to do simple things like for loops, if statements, assignments, referencing elements in an array, etc.:

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!