Implement the following formula
2 views (last 30 days)
Show older comments
Sarah Maas
on 17 Apr 2021
Commented: Image Analyst
on 17 Apr 2021
How can I implement the following formula? Please write the code for it. Thanks.
y[n,m]= 1/3( x[n,m−1] + x[n,m] + x[n,m+1] )
0 Comments
Accepted Answer
Image Analyst
on 17 Apr 2021
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
on 17 Apr 2021
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?
More Answers (1)
Alan Stevens
on 17 Apr 2021
Change the square brackets, [ ], to curved brackets, ( ). Put a multiply sign, *, after the 3.
2 Comments
Image Analyst
on 17 Apr 2021
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.:
See Also
Categories
Find more on Image Data Workflows in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!