How to find the local mean of an image?

9 Ansichten (letzte 30 Tage)
SHILPI GUPTA
SHILPI GUPTA am 9 Apr. 2019
Kommentiert: Rik am 10 Jun. 2022
img = imread('b.png');
img = rgb2gray(img);
[m,n] = size(img);
img1 = padarray(img,[1,1],'both');
m=m+2;
n=n+2;
img2 = zeros(m,n);
for i=2:m-1
for j=2:n-1
img2(i,j) = uint64(img1(i+1,j)+img1(i+1,j-1)+img1(i+1,j+1)+img1(i,j-1)+img1(i,j+1)+img1(i-1,j-1)+img1(i-1,j)+img1(i-1,j+1)+img1(i,j))/9;
end
end
disp(img2);
I'm using this code, still its not giving mw the right answer.
  4 Kommentare
shelan naveed
shelan naveed am 10 Jun. 2022
CAN YOU EXPLAIN IT WITH AN EXAMPLE PLEASE
Rik
Rik am 10 Jun. 2022
@shelan naveed what exactly do you want an explanation of?

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Rik
Rik am 9 Apr. 2019
Bearbeitet: Rik am 9 Apr. 2019
The fastest way to get a local average is to do a convolution with a flat structuring element:
%load example image
A=imread(['https://www.google.com/images/branding/googlelogo/',...
'1x/googlelogo_color_272x92dp.png']);
A=rgb2gray(A);
%define flat 3x3 structuring element
SE=ones(3,3);SE=SE/sum(SE(:));
B=conv2(A,SE,'same');
B=uint8(B);%cast back to uint8, this will round values
figure(1)
subplot(1,2,1)
imshow(A)
title('original')
subplot(1,2,2)
imshow(B)
title('local mean')

Weitere Antworten (0)

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by