Wednesday, May 6, 2009

Filtro de la Mediana online (Math Lab)

V=uint8(zeros(9,1));
I1=imread('im1.jpg');
[m,n]=size(I1);
for i=2:m-1;
for j=2:n-1
V=uint8(I1(i-1,j-1)+I1(i-1,j)+I1(i-1,j+1)+I1(i,j-1)+I1(i,j)+I1(i,j+1)+I1(i+1,j-1)+I1(i+1,j)+I1(i+1,j+1));
I1(i,j)=V/9;
end
end
imshow(I1);

3 comments:

  1. Código corregido

    V=zeros(9,1);
    clear all;
    clc
    I1=imread('im1.jpg');

    [m,n]=size(I1)
    for i=2:m-1
    for j=2:n-1
    V=[I1(i-1,j-1),I1(i-1,j),I1(i-1,j+1),I1(i,j-1),I1(i,j),I1(i,j+1),I1(i+1,j-1),I1(i+1,j),I1(i+1,j+1)];
    a = sum(V);
    I1(i,j)=uint8(a/9);
    end
    end
    imshow(I1);

    ReplyDelete
  2. Que pasa, al sumar Matlab herd el tipo de dado al resultado de la suma lo trunca a 256 y divide 256 y no el val.or que debe dividir

    ReplyDelete
  3. Como lo solucionamos, pasamos primero los datos a una matriz, luego sumamos la matris y luiego dividimos y evitamos que el matlab herede el dato dividimos y de ahi le casteamos a unit8

    ReplyDelete