Wednesday, May 6, 2009

Filtro de la mediana offline

clear;
V=uint8(zeros(9,1));
A=imread('auto.jpg');
[m,n]= size(A);
B=uint8(zeros(m,n));
for i=2:m-1;
for j=2:n-1
V=[A(i-1, j-1),A(i-1, j),A(i-1, j+1),A(i, j-1),A(i, j),A(i, j+1),A(i+1, j-1),A(i+1, j),A(i+1, j+1)];
C=sum(V);
B(i,j)=uint8(C/9);
end
end;
A(2:m-1,2:n-1)=B(2:m-1,2:n-1);
imshow(A);

1 comment:

  1. El codigo de ejemplo sugerido realiza el filtro de la mediana offline, y consiste en el uso de una matriz adicional sobre la cual se colocan los valores obtenidos en la matriz original.
    Una observacion importante es no sumar directamente los valores circundantes del punto (posicion seleccionada)de la matriz pues, al realizar un truncamiento guarda el valor de 255 por herencia del tipo de dato y al dividirlo para nueve el valor no produce el efecto esperado

    ReplyDelete