Filtros en Matlab

download Filtros en Matlab

of 13

Transcript of Filtros en Matlab

  • 7/21/2019 Filtros en Matlab

    1/13

  • 7/21/2019 Filtros en Matlab

    2/13

    FILTROS EN MATLAB:La visin artificial es un ciencia que desarrolla las bases tericas yalgortmicas para obtener informacin sobre el mundo real a partir deuna o varias imgenes, se encarga de aplicar un adecuadoprocesamiento a cada imagen y produciendo una versin modificada de

    esta imagen. El procesamiento digital de una imagen por algoritmos defiltrado extrae las caractersticas ms importantes de cada imagen, atravs de algoritmos que permiten eliminar las seales indeseadas, quepor causa del mtodo de adquisicin, o de las condiciones bajo lascuales fue captada. Este tipo de tcnica recibe el nombre de filtrado deimgenes

    DEFINICION:Es el conjunto de tcnicas englobadas dentro del procesamiento deimgenes cuyo objetivo fundamental es obtener, a partir de una imagenorigen, otra final cuyo resultado sea ms adecuado para una aplicacinespecfica mejorando ciertas caractersticas de la misma que posibiliteefectuar operaciones del procesado sobre ella.Los principales objetivos que se persiguen con la aplicacin de filtrosson:Suavizar la imagen: reducir la cantidad de variaciones de intensidadentre pxeles vecinos.Eliminar ruido: eliminar aquellos pxeles cuyo nivel de intensidad es muydiferente al de sus vecinos y cuyo origen puede estar tanto en el procesode adquisicin de la imagen como en el de transmisin.Realzar bordes: destacar los bordes que se localizan en una imagen.Detectar bordes: detectar los pxeles donde se produce un cambiobrusco en la funcin intensidad.Por tanto, se consideran los filtros como operaciones que se aplican alos pxeles de una imagen digital para optimizarla, enfatizar ciertainformacin o conseguir un efecto especial en ella.El proceso de filtrado puede llevarse a cabo sobre los dominios defrecuencia y/o espacio.

    TIPOSFiltrado en el dominio de la frecuenciaLos filtros de frecuencia procesan una imagen trabajando sobre eldominio de la frecuencia en la Transformada de Fourier de la imagen.Para ello, sta se modifica siguiendo el Teorema de la Convolucincorrespondiente

    Ejemplo de filtrado en el dominio de la frecuenciaSe aplica la Transformada deFourier,se multiplicaposteriormente por la funcin delfiltro que ha sido escogido,paraconcluir re-transformndola aldominio espacial empleando la Transformada Inversa de Fourier.Teorema de la Convolucin

    (frecuencia):

    http://commons.wikimedia.org/wiki/File:Filtrado_dominio_frecuencia.jpghttp://commons.wikimedia.org/wiki/File:Filtrado_dominio_frecuencia.jpg
  • 7/21/2019 Filtros en Matlab

    3/13

    F(u,v): transformada de Fourier de la imagen original.H(u,v): filtro atenuador de frecuencias.Como la multiplicacin en el espacio de Fourier es idntica a laconvolucin en el dominio espacial, todos los filtros podran, en teora,ser implementados como un filtro espacial.

    Etapas del procesamiento de imgenes en el dominio de la frecuencia. TIPOS

    Existen bsicamente tres tipos distintos de filtros que pueden aplicarse:

    Filtros en el dominio de la frecuencia yespacio.Filtro paso bajo:atena lasfrecuencias altas y mantiene sinvariaciones las bajas. El resultado en eldominio espacial es equivalente al deun filtro de suavizado, donde las altasfrecuencias que son filtradas secorresponden con los cambios fuertesde intensidad. Consigue reducir el ruido suavizando las transiciones

    existentes.Filtro paso alto: atena las frecuencias bajas manteniendo invariableslas frecuencias altas. Puesto que las altas frecuencias corresponden enlas imgenes a cambios bruscos de densidad, este tipo de filtros esusado, porque entre otras ventajas, ofrece mejoras en la deteccin debordes en el dominio espacial, ya que estos contienen gran cantidad dedichas frecuencias. Refuerza los contrastes que se encuentran en laimagen.Filtro pas banda:atena frecuencias muy altas o muy bajasmanteniendo una banda de rango medio.

    VENTAJASMtodo simple y sencillo de implementar.Fcil asociacin del concepto de frecuencia con ciertas caractersticasde la imagen; cambios de tonalidad suaves implican frecuencias bajas ycambios bruscos frecuencias altas.Proporciona flexibilidad en el diseo de soluciones de filtrado.Rapidez en el filtrado al utilizar el Teorema de la Convolucin.

    DESVENTAJASSe necesitan conocimientos en varios campos para desarrollar unaaplicacin para el procesamiento de imgenes

    http://commons.wikimedia.org/wiki/File:Etapas_filtrado_dominio_frecuencia.jpghttp://commons.wikimedia.org/wiki/File:Tipos_de_filtros.jpghttp://commons.wikimedia.org/wiki/File:Etapas_filtrado_dominio_frecuencia.jpghttp://commons.wikimedia.org/wiki/File:Tipos_de_filtros.jpg
  • 7/21/2019 Filtros en Matlab

    4/13

    El ruido no puede ser eliminado completamente.

    Filtrado en el dominio del espacio

    Las operaciones de filtrado se llevan a cabo directamente sobre los pxeles dela imagen. En este proceso se relaciona, para todos y cada uno de los puntosde la imagen, un conjunto de pxeles prximos al pxel objetivo con la finalidadde obtener una informacin til, dependiente del tipo de filtro aplicado, quepermita actuar sobre el pxel concreto en que se est llevando a cabo elproceso de filtrado para, de este modo, obtener mejoras sobre la imagen y/odatos que podran ser utilizados en futuras acciones o procesos de trabajosobre ella.

    Los filtros en el dominio del espacio pueden clasificarse en:

    Filtros lineales(filtros basados en kernels o mscaras de convolucin).Filtros no lineales.

    El concepto de kernel se entiende como una matriz de coeficientes donde elentorno del punto (x,y) que se considera en la imagen para obtener g(x,y) estdeterminado por el tamao y forma del kernel seleccionado. Aunque la forma ytamao de esta matriz es variable y queda a eleccin de cadausuario, es comn el uso de kernels cuadrados nxn.Dependiendo de la implementacin, en los lmites de laimagen se aplica un tratamiento especial (se asume un marco

    exterior de ceros o se repiten los valores del borde) o no seaplica ninguno. Es por ello, que el tipo de filtrado quedaestablecido por el contenido de dicho kernel utilizado.

    Para realizarun filtrado en eldominio del espaciose realiza una

    convolucin (barrido)del kernel sobre laimagen. Para ello se

    sigue el Teorema deConvolucin en el espacio: g(x,y) = h(x,y) * f(x,y)

    Cada pxel de la nueva imagen se obtiene mediante el sumatorio de lamultiplicacin del kernel por los pxeles contiguos:g(x,y) = f(i,j) w(i,j)

    Generalmente se divide sobre cierto valor constante para normalizar que sueleobtenerse de la suma de los valores del kernel empleado.

    Tipos

    Aplicacin de un kernel

    http://commons.wikimedia.org/wiki/File:Filtrado_aplicacion_kernel.jpghttp://commons.wikimedia.org/wiki/File:Filtrado_espacial_kernel.jpghttp://commons.wikimedia.org/wiki/File:Filtrado_aplicacion_kernel.jpghttp://commons.wikimedia.org/wiki/File:Filtrado_espacial_kernel.jpghttp://commons.wikimedia.org/wiki/File:Filtrado_aplicacion_kernel.jpghttp://commons.wikimedia.org/wiki/File:Filtrado_espacial_kernel.jpg
  • 7/21/2019 Filtros en Matlab

    5/13

    Ejemplo de filtrado promedio con filtro 5x5Filtro paso bajo (suavizamiento): utilizados para eliminar ruido o detallespequeos de poco inters puesto que slo afecta a zonas con muchoscambios. La frecuencia de corte se determina por el tamao del kernel y suscoeficientes. Se emplean diversos kernels:

    Promedio: promedio de pxeles vecinos (kernel de unos).

    Paso bajo en frecuencia.

    Media: reemplaza cada pxel por el valor medio de sus contiguos.

    Mediana: sustituye por el valor de la mediana de los pxeles vecinos(normalmente se comporta mejor que el de promedio).

    Gaussiano: aproximacin a la distribucin gaussiana.

    Filtro paso alto (atenuamiento): intensifica los detalles, bordes y cambios dealta frecuencia, mientras que atena las zonas de tonalidad uniforme. Estopermite una mejor identificacin posterior de los objetos que se encuentren enla imagen, puesto que el brillo se hace mayor en las zonas con frecuenciasms altas, al mismo tiempo que se oscurecen las zonas de frecuencias bajas.

    Es comn la aparicin de ruido tras elproceso.Realce de bordes por desplazamiento y diferencia: sustrae de la imagenoriginal una copia desplazada de la misma. As, es posible localizar y hacerresaltar los bordes existentes y que se quieran obtener segn el modelo dekernel aplicado:

    Horizontal.

    Vertical.

    Horizontal/Vertical (diagonal)

    Realce de bordes mediante Laplace: este tipo de filtros realza los bordes entodas direcciones (los resultados que se obtienen pueden considerarse comouna suma de los obtenidos tras aplicar todos los modelos del tipo anterior). En

    esta ocasin se trabaja con la segunda derivada, que permite obtener unosmejores resultados, a pesar del aumento del ruido que se produce en laimagen.

    Resalte de bordes con gradiente direccional: empleado para destacar y resaltarcon mayor precisin los bordes que se localizan en una direccin determinada.Trabaja con los cambios de intensidad existentes entre pxeles contiguos.

    http://commons.wikimedia.org/wiki/File:Filtrado_promedio.jpg
  • 7/21/2019 Filtros en Matlab

    6/13

    Deteccin de bordes y filtros de contorno (Prewitt y Sobel): al igual que losanteriores, se centra en las diferencias de intensidad que se dan pixel a pixel.Son utilizados para obtener los contornos de objetos y de este modo clasificarlas formas existentes dentro de una imagen. Este tipo de filtros requieren unmenor coste computacional.

    Imagen original, y resultantetras filtros Laplaciano ySobel

    Log=fspecial('log')

    I4=imfilter(I,Log);

    subplot(3,3,5)

    imshow(I4)

    title('log')

    Motion=fspecial('motion',50,45) % movimientoDimMotion=size(Motion)

    I5=imfilter(I,Motion);

    subplot(3,3,6)

    imshow(I5)

    title('motion')

    Prewitt=fspecial('prewitt')

    I6=imfilter(I,Prewitt);

    subplot(3,3,7)

    imshow(I6)

    title('prewitt')

    Sobel=fspecial('sobel')

    I7=imfilter(I,Sobel);

    http://commons.wikimedia.org/wiki/File:Filtro_bordes_original_laplace_sobel.jpg
  • 7/21/2019 Filtros en Matlab

    7/13

    subplot(3,3,8)

    imshow(I7)

    title('sobel')

    Unsharp=fspecial('unsharp')

    I8=imfilter(I,Unsharp);

    subplot(3,3,9)

    imshow(I8)

    tile('unsharp')

    Filtro Mediana

    Se realiza para atenuar el ruido de una imagen.

    Usualmente se aplica a imgenes en escala de grises.

    Cdigo:

    Imagen2=medfilt2(Imagen)

    Ejemplo:

    >> Im_RGB=imread('fruta.jpg');

    >> Im_gray=rgb2gray(Im_RGB);

    >> Im_gray=imnoise(Im_gray, 'salt & pepper');

    >> imshow(Im_gray)

    >> Im_filt=medfilt2(Im_gray);

    >> figure, imshow(Im_filt)

    Resultado de la aplicacin del filtro.

  • 7/21/2019 Filtros en Matlab

    8/13

    Imagen original Imagen sin ruido

    Filtro Borrado Gaussiano (Blur)

    1 2 1

    2 nWeight 2

    1 2 1

    Cuando procesamos una imagen a color obtendremos una nueva imagendonde hemos realizado un borrado Gaussiano modificado la imagen originalusando un peso de 8 en la matriz de convolucin.

    Imagen real Imagen con filtro

  • 7/21/2019 Filtros en Matlab

    9/13

    Filtro Emboss (realzado)

    Este filtro se obtiene al aplicar un kernel de 3 x3 como el siguiente:

    2 0 0

    0 -1 00 0 -1

    Para procesar una imagen a color, obtendremos una nueva imagen dondehemos realizado un realzado modificado la imagen original.

    Imagen real Imagen con filtro

    Filtro Sharpen (nitidez)

    Este filtro se obtiene al aplicar un kernel de 3 x3 como el siguiente:

    0 - 1 0

    -1 nWeight -1

    0 -1 0

    Dividiendo entre un factor nWeight -4

    Para procesar una imagen a color, obtendremos una nueva imagen dondehemos realizado una modificacin a la imagen original por nitidez.

    Imagen real Imagen con filtro

  • 7/21/2019 Filtros en Matlab

    10/13

    Filtro Smooth (suavizado)

    Este filtro se obtiene al aplicar un kernel de 3 x3 como el siguiente:

    1 1 11 nWeight 1

    1 1 1

    Dividiendo entre un factor nWeight + 8

    Para procesar una imagen a color, obtendremos una nueva imagen dondehemos realizado una modificacin a la imagen original por suavizado.

    Imagen real Imagen con filtro

    Filtro Mean Renoval

    Este filtro se obtiene al aplicar un kernel de 3 x3 como el siguiente:

    -1 -1 -1

    -1 nWeight -1

    -1 -1 -1Dividiendo entre un factor nWeight8

    Para procesar una imagen a color, obtendremos una nueva imagen dondehemos realizado una modificacin a la imagen original por MeanRemoval.

  • 7/21/2019 Filtros en Matlab

    11/13

    Imagen real Imagen con filtro

    Filtro Edge Detection Quick

    Este filtro se obtiene al aplicar un kernel de 3 x3 como el siguiente:

    -1 -1 -10 0 0

    1 1 1

    Para procesar una imagen a color, obtendremos una nueva imagen dondehemos realizado una modificacin a la imagen original por deteccin de orillas.

    Imagen real Imagen con filtro

    Filtro Laplaciano

    La aplicacin fundamental del filtro Laplaciano es aumentar la nitidez(destacando los detalles) de la imagen, al afinar las lneas de transicindeniveles de gris.Laplaciano =

    [ 0 1 0; 1 -4 1; 0 1 0];

    Imagen 5. visualizacin imagen a color RGB con filtro Laplaciano

  • 7/21/2019 Filtros en Matlab

    12/13

    Filtros Prewitt

    Se usa para la deteccin de bordes. ste consta de 8 matrices que se aplicanpixel a pixel a la imagen. Luego se suman las imgenes para obtener los

    bordes bien marcados. El filtro de Prewitt marca muy bien los bordes ya quesus matrices atacan estos desde ocho lados diferentes. En general cada matriztoma el nombre de un punto cardinal: Norte, Sur, Este, Oeste, Noroeste,Noreste, Suroeste, Sureste. Imagen original Deteccin de bordes con prewitt

    Prewitt = [ 1 1 1; 0 0 0; -1 -1 -1];

    Filtros Sobel

    Muy usado para la deteccin de bordes, este utiliza, a su vez, dosmascaras ofiltros. Una para detectar los bordes verticales y otra para loshorizontales. As,

    para obtener losbordes completosse realiza la

    sumade lasimgenes que nosresultaron con losbordes verticalesyhorizontales.

    Sobel =[ 1 2 1; 0 0 0; -1 -2 -1];

  • 7/21/2019 Filtros en Matlab

    13/13

    CONCLUSIONES

    A travs del desarrollo de esta prctica se pudo analizar y diferenciar los tiposde filtros los cuales a travs de la aplicacin de algoritmos permiten eliminar lasseales indeseadas segn sus caractersticas, y el manejo que hacen sobre laimagen con el fin de mejorar su calidad ya que en muchos casos la imagen

    original presenta algunas impurezas producidas por una gama de factoresentre las que se incluyen el ambiente, el estado del sistema de adquisicin, elestado del canal de transmisin, los cuales generan distorsin y ruido.