How to find the local mean of an image?

24 vues (au cours des 30 derniers jours)
SHILPI GUPTA
SHILPI GUPTA le 9 Avr 2019
Commenté : Rik le 10 Juin 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 commentaires
shelan naveed
shelan naveed le 10 Juin 2022
CAN YOU EXPLAIN IT WITH AN EXAMPLE PLEASE
Rik
Rik le 10 Juin 2022
@shelan naveed what exactly do you want an explanation of?

Connectez-vous pour commenter.

Réponse acceptée

Rik
Rik le 9 Avr 2019
Modifié(e) : Rik le 9 Avr 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')
  1 commentaire
SHILPI GUPTA
SHILPI GUPTA le 9 Avr 2019
Thanks. It helped!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Geometric Transformation and Image Registration dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by