How to find the local mean of an image?

9 visualizaciones (últimos 30 días)
SHILPI GUPTA
SHILPI GUPTA el 9 de Abr. de 2019
Comentada: Rik el 10 de Jun. de 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 comentarios
shelan naveed
shelan naveed el 10 de Jun. de 2022
CAN YOU EXPLAIN IT WITH AN EXAMPLE PLEASE
Rik
Rik el 10 de Jun. de 2022
@shelan naveed what exactly do you want an explanation of?

Iniciar sesión para comentar.

Respuesta aceptada

Rik
Rik el 9 de Abr. de 2019
Editada: Rik el 9 de Abr. de 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')

Más respuestas (0)

Categorías

Más información sobre MATLAB en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by