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);
Wednesday, May 6, 2009
Subscribe to:
Post Comments (Atom)
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.
ReplyDeleteUna 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