Búscalo aquí:

Filtro de Realce Paso Alto para Imágenes en Matlab [código]



Así como se ha evaluado algunos métodos de filtros de suavizamiento, ahora veremos un filtro de realce que tiene por objetivo intensificar detalles finos de una imagen, acentuando las orillas (bordes). La máscara de convolución de los filtros de realce se caracterizan por tener coeficientes positivos cerca a su centro y negativos en la periferia. En este post presentamos el código fuente en Matlab del filtro de realce de Paso Alto que se encarga de eliminar los componentes de bajas frecuencias y mantener las de altas frecuencias.

El código fuente en Matlab de la función del filtro de realce es:

  1. function S = FiltroRealce(imagen,tam)
  2. im=imread(imagen);
  3. imD = double(im);
  4. alto=PasoAlto(imD,tam);
  5. [f,c]=size(alto)
  6. for i=1:f
  7. for j=1:c
  8. G(i,j)=imD(i,j)+alto(i,j);
  9. end
  10. end
  11. S=G;
  12. subplot(1,2,1);
  13. imshow(imagen);
  14. title('Imagen Original');
  15. subplot(1,2,2);
  16. imshow(uint8(G));
  17. title('Filtro de Realce');

-->
El código en Matlab de la función PasoAlto() es:

  1. function S = PasoAlto(imD,tam)
  2. radio = fix((tam-1)/2);
  3. matriz = RefMatriz(imD,radio);
  4. [f,c] = size(matriz);
  5. peso=8;
  6. W=[-1 -1 -1;-1 8 -1;-1 -1 -1]*(1/8);
  7. for i=(1+radio):(f-radio)
  8. for j=(1+radio):(c-radio)
  9. fil=1;
  10. for a=(i-radio):(i+radio)
  11. col=1;
  12. for b=(j-radio):(j+radio)
  13. aux(fil,col)=matriz(a,b);
  14. col=col+1;
  15. end
  16. fil=fil+1;
  17. end
  18. suma=0;
  19. for a=1:tam
  20. for b=1:tam
  21. suma=suma+aux(a,b)*W(a,b);
  22. end
  23. end
  24. G(i-radio,j-radio)=fix(suma);
  25. end
  26. end
  27. S=G;

El código fuente de la función RefMatriz() lo encuentran en el post de reflejar los píxeles de una imagen. El resultado de aplicar el filtro de realce de Paso Alto se puede observar en la siguiente imagen:




Espero les sea de utilidad.

Quieres leer más post como éste???...suscribete aquí!!!

1 comentario:

  1. Hola, buen día, muchísimas gracias por su blog, me ha sido de gran ayuda, y le quería comentar.
    Cuando realizo este filtro me sale el siguiente error:

    ??? Subscript indices must either be real positive integers or logicals.

    Error in ==> PasoAlto at 45
    G(i-radio,j-radio)=fix(suma);

    Error in ==> FiltroRealce at 6
    alto = PasoAlto(imagen,tam);

    Sabe a que se puede deber?

    ResponderEliminar

Bienvenido a jcGeorge's Blog!!!

Por favor deja tu comentario, consulta o sugerencia, procura mantener habilitado tu perfil de Blogger o deja un enlace a tu blog o web.

Gracias por leer este blog!!!

Related Posts Plugin for WordPress, Blogger...