procesamiento de imágenes digitales - filtros en frecuencia
DESCRIPTION
Análisis del procesamiento digital de imágenes en el dominio de la frecuencia, con diferentes filtros. Procedimiento realizado con matlab.TRANSCRIPT
1. OBJETIVOS
Realizar cambios a la imagen con el fin de obtener
una imagen mejorada. Estos cambios serán realizados
en el dominio frecuencial aplicando la transformada
de Fourier en dos dimensiones.
Utilizar comandos propios de MATLAB y desarrollar
funciones en MATLAB para realizar el mejoramiento
de la imagen en el dominio frecuencial.
Crear una interfaz gráfica con diferentes operaciones
para el mejoramiento de la imagen en el dominio
frecuencial.
2. INTRODUCCIÓN
En este laboratorio se buscó realizar diferentes métodos para
el mejoramiento de la imagen desarrollando diferentes
algoritmos como también dando uso a diferentes filtros de
MATLAB en el dominio frecuencial, que permiten mejorar
ciertas características de la imagen; también la
implementación de una GUI para crear un interfaz de fácil
acceso donde se puedan visualizar los resultados de estos
procesos.
3. PROCEDIMIENTO
Para la realización del filtrado en frecuencia se emplearan los
mismos pasos en cada uno de los diferentes filtros pasa-bajo,
pasa-alto, pasa-banda, rechaza banda, pasa-notch y rechaza-
notch, por esta razón se explicara con detalle a continuación,
ya que en los siguientes numerales, se hará énfasis es en la
creación del filtro.
Como parte inicial se hace la conversión de la imagen a punto
flotante a través de la función tofloat(), luego para evitar el
error envolvente se debe obtener los parámetros para rellenar
la imagen con ceros, para esto se hace uso de la función
paddedsize(size()); luego se debe realizar la transformada
rápida de Fourier de la imagen con el relleno.
Ya con esto se debe crear el filtro deseado, con el cual se
realiza la convolución con la imagen, como se encuentra en
frecuencia únicamente se realiza la multiplicación entre el
filtro y la imagen transformada.
Para finalizar y obtener la imagen en el dominio espacial, se
realiza la transformada rápida inversa de Fourier empleando la
siguiente función de Matlab ifft2() y se recorta la imagen
quitando el relleno que se le había colocado.
3.1. ESPECTRO (MAGNITUD DE FFT) DE UNA
IMAGEN, PREGUNTANDO EL TAMAÑO DE
LA VECINDAD
Como primera parte se debe seleccionar la vecindad de la
imagen a la cual se le quiere hallar su espectro, para esto
empleamos las siguientes funciones de Matlab:
La cual al recrear un rectángulo con click sostenido, nos
arrojaba un vector con cuatro valores siendo los dos primeros
las coordenadas de la esquina superior izquierda del
rectángulo seleccionado y los dos siguientes la altura y la
anchura respectivamente.
Ya conociendo la ubicación de los pixeles de la imagen a la
cual se le desea hallar el espectro se procede a recortarla y
dejarla unicamente de la parte seleccionada; para esto se
empleo la linea de codigo a continuación:
Para hallar el espectro de magnitud se aplica primero la
transformada rápida de Fourier a la imagen recortada,
empleando la función de Matlab fft2(), luego se procede a
desplazar el origen de la transformación al centro del
rectángulo de frecuencia con el único objetivo de poderla
visualizar de una manera adecuada y más sencilla para un
análisis empleando la siguiente función de Matlab: fftshift().
Para finalizar y lograr visualizar mejor, se le aplica un
mejoramiento por transformación logarítmica. A continuación
se muestran los comandos empleados:
3.2. FILTRO PASA-BAJO
Como se explicó anteriormente como se hacía el filtrado en
frecuencia en los siguientes numerales haremos énfasis a la
creación de cada filtro y como se grafica de las distintas
maneras.
Para el filtro pasa-bajo empleamos la función de Matlab
lpfilter(type, M, N, D0, n), la cual nos permite obtener el filtro
listo para ser aplicado en la multiplicación con la transformada
rápida de Fourier; donde type es el tipo de filtro que se
quiere aplicar, si es ideal, butterworth o gaussiano, M y N el
Javier F. Bautista, Daniel F. Montero, MsC. Claudia L. Rueda
PROCESAMIENTO DIGITAL DE IMÁGENES LABORATORIO 3
tamaño de la imagen ya rellena de ceros, D0 la frecuencia de
corte y n el orden del filtro.
3.2.1. IDEAL
Para el filtro pasa-bajo ideal el orden del filtro es
independiente, y en el espacio de tipo es llenado por ‘ideal’, M
y N es llenado por PQ(1) y PQ(2) los cuales son los
parámetros de la dimensión de la imagen ya rellena de ceros,
mientras que D0 es introducida por el usuario el cual
especifica la frecuencia de corte; la función empleada fue la
siguiente:
3.2.2. BUTTERWORTH
Para el filtro pasa-bajo butterworth el orden del filtro es
importante, por esta razón en n se introduce el orden deseado
por el usuario, en el espacio de tipo es llenado por ‘btw’, M y
N es llenado por PQ(1) y PQ(2), D0 es la frecuencia de corte
introducida por el usuario; la función empleada fue la
siguiente:
3.2.3. GAUSSIANO
Para el filtro pasa-bajo gaussiano el orden del filtro es
independiente, el espacio de tipo es llenado por ‘gaussian’, M
y N es llenado por PQ(1) y PQ(2), D0 es la frecuencia de
corte introducida por el usuario; la función empleada fue la
siguiente:
3.3. FILTRO PASA-ALTO
Para el filtro pasa-alto empleamos la función de Matlab
hpfilter(type, M, N, D0, n); donde type es el tipo de filtro que
se quiere aplicar, si es ideal, butterworth o gaussiano, M y N el
tamaño de la imagen ya rellena de ceros, D0 la frecuencia de
corte y n el orden del filtro.
3.3.1. IDEAL
Mantiene los mismos conceptos explicados anteriormente en
el numeral anterior del filtro pasa-bajo. El filtro se creó de la
siguiente manera:
3.3.2. BUTTERWORTH
El filtro pasa-alto butterworth se creó de la siguiente manera:
3.3.3. GAUSSIANO
El filtro pasa-alto gaussiano se creó de la siguiente manera:
3.4. FILTRO PASA-BANDA
Para realizar los filtros pasa-banda y rechaza-banda se empleó
la función bandfilter(type, band, M, N, D0, n), pero a la cual
se le debió realizar una pequeña modificación en su código ya
que el parámetro band no se tomaba y daba el filtro por
defecto el cual era el rechaza-banda, para esto se le adicionó el
siguiente código en la función:
3.4.1. IDEAL
Para realizar el filtro pasa-banda ideal empleamos la siguiente
función:
Donde el parámetro band es remplazado por ‘pass’, PQ(1) y
PQ(2) los parámetros de la imagen rellena, D0 la frecuencia
de corte que introduce el usuario y w la variable del ancho de
banda igualmente dada por el usuario.
3.4.2. BUTTERWORTH
Para realizar el filtro pasa-banda butterworth empleamos la
siguiente función:
3.4.3. GAUSSIANO
Para realizar el filtro pasa-banda gaussiano empleamos la
siguiente función:
3.5. FILTRO RECHAZA-BANDA
Los filtros rechaza banda se realizan con la misma función
explicada en el numeral anterior con la diferencia que en el
espacio de type es llenado con ‘reject’.
3.5.1. IDEAL
Para realizar el filtro rechaza-banda ideal empleamos la
siguiente función:
3.5.2. BUTTERWORTH
Para realizar el filtro rechaza-banda butterworth empleamos la
siguiente función:
3.5.3. GAUSSIANO
Para realizar el filtro rechaza-banda gaussiano empleamos la
siguiente función:
3.6. FILTRO PASA-NOTCH
Para los filtros notch la creación del filtro se mantuvo de la
misma manera, con la diferencia que se empleó la función
cnotch(type, notch, M, N, C, D0, n) ; pero el proceso de
filtrado si tuvo pequeñas variaciones en los pasos, quedando
finalmente como se muestra a continuación:
Donde C es donde estará centrado nuestro filtro notch.
3.6.1. IDEAL
Para realizar el filtro pasa-notch ideal empleamos la siguiente
función:
3.6.2. BUTTERWORTH
Para realizar el filtro pasa-notch butterworth empleamos la
siguiente función:
3.6.3. GAUSSIANO
Para realizar el filtro pasa-notch gaussiano empleamos la
siguiente función:
3.7. FILTRO RECHAZA-NOTCH
Para el filtro rechaza-notch la única diferencia con el pasa-
notch es que en el parámetro type se coloca ´reject´, pero
mantiene la misma estructura del numeral anterior, para la
creación del filtro como para realizar el filtrado.
3.7.1. IDEAL
Para realizar el filtro rechaza-notch ideal empleamos la
siguiente función:
3.7.2. BUTTERWORTH
Para realizar el filtro rechaza-notch butterworth empleamos la
siguiente función:
3.7.3. GAUSSIANO
Para realizar el filtro rechaza-notch gaussiano empleamos la
siguiente función:
4. RESULTADOS Y ANÁLISIS DE RESULTADOS
4.1. ESPECTRO (MAGNITUD DE FFT) DE UNA
IMAGEN, PREGUNTANDO EL TAMAÑO DE
LA VECINDAD
Decidimos tomar la imagen que se muestra en la figura 1,
junto la vecindad señalada con el rectángulo para realizarle el
espectro de magnitud.
Figura 1. Imagen original con recuadro seleccionado
Ya tomando el área seleccionada se recorta la imagen
dándonos la imagen que se muestra en la figura 2.
Figura 2. Imagen seleccionada por el recuadro
Decidimos tomar esta imagen y específicamente la parte de
los techos ya que en ella se visualizan muchas líneas rectas
con diferentes ángulos en los cuales se presenta una alta tasa
de cambio de la intensidad.
Al hallar el espectro en magnitud que nos arroja la imagen se
presenta en la figura 3.
Figura 3. Espectro de magnitud de la parte de la imagen
seleccionada por el usuario.
En él se observan las líneas habladas anteriormente con la
diferencia que fueron rotadas 90°
4.2. FILTRO PASA-BAJO
4.2.1. IDEAL
Figura 4. Filtro pasa bajo ideal.
Es esta grafica se visualiza el filtro pasa bajos en 3D en puede
observar que todo lo que esta sobre el plano es la frecuencia
que pasa por este filtro y esta posicionado en el centro del
plano donde están las bajas frecuencias
Figura 5. Imagen resultante filtrada con filtro pasa bajo ideal.
Al pasar la imagen por el filtro pasa bajos se ve como se
suaviza se hace borrosa esto debido a que se quito la alta
frecuencia lo cambios en los niveles de grises en la imagen se
vuelven mas suaves, también se logra ver las ondulaciones que
provocadas por el sinc que hacen que las imágenes no se vean
tan bien.
4.2.2. BUTTERWORTH
Figura 6. Filtro pasa bajo butterworth.
Grafica del pasa bajo en 3D se ve el cambio de la pendiente
por lo tanto dejara pasar un poco mas de altas frecuencias que
debido a que su radio se hará un poco mas grande.
Figura 7. Imagen resultante filtrada con filtro pasa bajo
butterworth.
La imagen procesada con el filtro butterworth no presenta el
problema de las ondulaciones aunque en este filtro si podría
verse un poco las ondulaciones el orden del filtro es bajo por
lo tengo no presentara los mismos problemas del filtro ideal.
4.2.3. GAUSSIANO
Figura 8. Filtro pasa bajo gaussiano.
Grafica filtro gaussiano 3D como se puede observar el filtro
gaussiano es el que mas radio tiene además de esto no
presenta ninguna clase de problemas de ondulaciones debido a
que no tiene orden.
Figura 9. Imagen resultante filtrada con filtro pasa bajo
gaussiano.
Por lo ya mencionado el filtro gaussiano puede ser
visualmente el mejor debido a que gracias a su radio mayor
que el de los demás la imagen queda menos borrosa y no
presenta problemas con las ondulaciones.
4.3. FILTRO PASA-ALTO
4.3.1. IDEAL
Figura 10. Filtro pasa alto ideal.
Grafica filtro pasa altos 3D se puede observar como este filtro
pasa altos se crea a partir de un pasa bajos lo que hace es
rechazar todo lo que esta debajo del plano en este caso las
bajas frecuencias como se ve el valor promedio que esta en el
centro de la imagen es eliminado.
Figura 11. Imagen resultante filtrada con filtro pasa alto ideal.
Como ya fue mencionado anteriormente la imagen presenta
problemas de ondulaciones al ser ideal, su color oscuro se
debe a que su valor promedio fue quitado lo que provoca que
el valor promedio sea 0 y toda la imagen sea más oscura.
4.3.2. BUTTERWORTH
Figura 12. Filtro pasa alto butterworth.
Grafica filtro butterworth 3D al igual que la anterior se ve
como el radio se hace un poco más grande.
Figura 13. Imagen resultante filtrada con filtro pasa alto
butterworth.
Imagen procesada con un orden 5 la imagen presenta un poco
de distorsión los lugares de la imagen que tiene blanco.
4.3.3. GAUSSIANO
Figura 14. Filtro pasa alto gaussiano.
En este filtro gaussiano 3D radio del filtro se presenta más
ancho que en los demás.
Figura 15. Imagen resultante filtrada con filtro pasa alto
gaussiano.
Imagen se distorsiona menos en los lugares que con blancos
en la imagen haciendo que estas partes con blanco se vean con
más contraste
4.4. FILTRO PASA-BANDA
4.4.1. IDEAL
Figura 16. Filtro pasa banda ideal.
Grafica filtro ideal pasa-banda gaussiano 3D se puede
observar como la baja y alta frecuencia se van y pierde como
en el filtro pasa altos la información del punto 0,0 valor
promedio de la imagen y también contraste de la imagen.
Figura 17. Imagen resultante filtrada con filtro pasa banda
ideal.
El efecto de quitar las altas frecuencias hace que los bordes se
vean mas difuminados que en filtros anteriores, al no perder la
información del valor promedio la imagen tiende su nuevo
valor promedio a 0.
4.4.2. BUTTERWORTH
Figura 18. Filtro pasa banda butterworth.
Figura 19. Imagen resultante filtrada con filtro pasa banda
butteroworth.
Resultado de proceso de filtrado con filtro butterworth.
4.4.3. GAUSSIANO
Figura 20. Filtro pasa banda gaussiano.
Figura 21. Imagen resultante filtrada con filtro pasa banda
gaussiano.
Resultado imagen procesada filtro rechaza-banda gaussiano
estéticamente la mejor aunque comparada con imágenes
anteriores sus bordes son difuminados.
4.5. FILTRO RECHAZA-BANDA
4.5.1. IDEAL
Figura 22. Filtro rechaza banda ideal.
Filtro rechaza banda 3D al rechazar la banda mantiene las
bajas frecuencias y también el valor promedio de la imagen
también las frecuencias puede mejorar los bordes de la imagen
aunque también se puede tener el problema de que las altas
frecuencias sean producto de ruido.
Figura 23. Imagen resultante filtrada con filtro rechaza banda
ideal.
Se puede ver que el valor promedio se mantiene en la imagen
también aunque presenta algunos bordes bien definidos el
ruido afecta demasiado la imagen este problema sumado con
las ondulaciones hace que se vea estéticamente mal.
4.5.2. BUTTERWORTH
Figura 24. Filtro rechaza banda butterowrth
.
Figura 25. Imagen resultante filtrada con filtro rechaza banda
butterworth.
4.5.3. GAUSSIANO
Figura 26. Filtro rechaza banda gaussiano.
Figura 27. Imagen resultante filtrada con filtro rechaza banda
gaussiano.
4.6. FILTRO RECHAZA-NOTCH
Para el análisis de los filtros notch se escogió esta imagen que
presenta el patrón de moiré y en él se podrá trabajar y apreciar
de una manera más adecuada los filtros. Todos los filtros
notch se aplicarán con una frecuencia de corte 10.
Y el espectro de frecuencia se aprecia a continuación.
En él se hace la selección de las dos posiciones donde se desea
aplicar el centro del filtro notch, para con estas posiciones
mostrar a continuación los resultados.
4.6.1. IDEAL
A continuación se presenta el filtro creado el cual se aplicará a
la imagen.
A continuación se puede apreciar otra vista del filtro creado,
visto desde la parte superior.
Este es el resultado obtenido al aplicarle el filtro creado a la
imagen logrando filtrar el patrón moiré de una manera
adecuada.
4.6.2. BUTTERWORTH
Igualmente se creó el filtro butterworth rechaza-notch con
orden 2, en la mismas posiciones escogidas anteriormente en
las cuales se presenta el ruido.
Este es el resultado obtenido al aplicarle el filtro.
4.6.3. GAUSSIANO
Estos son los filtros creados para eliminar el ruido, se aplicó la
misma técnica explicada anteriormente con la frecuencia de
corte de 10.
En esta imagen se aprecia el resultado de la imagen al ser
filtrada, a consideración de nosotros fue con el que se obtuvo
un mejor resultado manteniendo constante la frecuencia de
corte.
4.7. FILTRO PASA-NOTCH
En el pasa-notch mantuvimos la imagen imagen trabajada en
el numeral anterior con la diferencia que con este filtro
deseamos pasar el ruido para lograrlo observar.
4.7.1. IDEAL
Los resultados de los filtros creados se aprecian a
continuación:
Con este filtro deseamos ver el ruido con el que contaba la
imagen dejando pasar las frecuencias en las que se encuentra
el ruido. Se puede apreciar el patrón de moiré con el que
contaba la imagen; aunque alcanza a tomar algunos valores de
frecuencia que corresponden a la imagen.
4.7.2. BUTTERWORTH
Los resultados de los filtros creados se aprecian a
continuación:
Como este filtro deja pasar un poco más de frecuencias se
alcanza apreciar parte de la silueta del carro ya que esas parte
de la imagen se encontraba cerca a la frecuencia en la que se
encontraba el ruido, pero principalmente se aprecia el patrón
moiré.
4.7.3. GAUSSIANO
Los resultados de los filtros creados se aprecian a
continuación:
Como se nombró anteriormente al ampliar un poco el rango de
las frecuencias en las que el filtro dejaba pasar se logra
apreciar un poco más parte de la imagen original.
4.8. ANÁLISIS DE ESPECTROS
4.8.1. FIGURA 1
En este espectro se centra la mayor parte en las bajas
frecuencias ya que su tasa de cambio de intensidad en las
diferentes partes de la imagen es pequeña, únicamente
presenta una tasa de cambio grande en la parte entre las rocas
con la arena y el cielo. Las líneas que se aprecian casi
verticales en el espectro, con una inclinación un poco mayor a
90° son las de las rocas con la arena ya que estas en la imagen
son casi horizontales, un poco inclinadas y al analizar su
espectro estas rotan 90°. Las otras líneas que se aprecian en el
espectro de magnitud son unas horizontales, por lo tanto en la
imagen original deben ser líneas con tasa de cambios de
intensidad grandes en forma vertical entre las que están
algunos orillos de las rocas y los niños que corren sobre la
arena.
4.8.2. FIGURA 2
En este espectro de magnitud se pueden apreciar mayor
cantidad de detalles como la presencia en las altas frecuencias
y en todos los ángulos los diferentes óvalos de la imagen, casi
líneas en los que se presentaba las tasas de cambio de
intensidad grande ya que hace el cambio es casi entre el
blanco y el negro.
4.8.3. FIGURA 3
Analizando la imagen se puede observar que en ella se
presenta gran cantidad de puntos con tasa de cambio de
intensidad grande por lo tanto en el espectro de magnitud
tendrá valores en la alta frecuencia y una parte de baja
frecuencia en la que está el valor promedio de la intensidad y
la parte del fondo del espacio en la que los cambios de
intensidad son pequeños.
4.9. MEJORAMIENTO DE LA IMAGEN
El mejoramiento de la imagen se basa en el promedio de los
resultado de varios filtros aplicados a la imagen suministrada;
inicialmente se aplica un filtro de mediana 3x3 obteniendo la
figura 1, posteriormente se hace un mejoramiento por
histograma ecualizado, obteniendo la figura 2. De esta manera
se obtiene una imagen mejorada en el dominio espacial.
Figura 1- Filtrado de mediana, espacial
Figura 2- Mejoramiento por ecualización del histograma
Posteriormente, se aplica un filtro pasa alto de orden 2 con
radio de 90, para obtener la componente de alta frecuencia de
la imagen, esto hace que se obtenga el ruido de alta frecuencia
de la imagen, en la figura 3 se puede observar el resultado de
la imagen y el filtro aplicado
Figura 3- a) Filtro pasa alto Buttherworth, radio 90 y orden 2
b) imagen resultado del filtro
A la imagen original se le resta la imagen de alta frecuencia,
esta se observa en la figura 4, esta nos da la otra componente
del promedio final
Figura 4- Resta de la imagen de alta frecuencia a la imagen a
mejorar
Por otro lado se le aplica la imagen a mejorar un filtro pasa
bajo de radio 70 orden 2, que da como resultado la imagen de
la figura 5
Figura 5- a) Filtro pasa bajo Gaussiano, radio 70 y orden 2 b)
imagen resultado del filtro
Posteriormente hacemos el promedio de las 3 componentes y
da como resultado la imagen de la figura 6. Se calcula el error
cuadrático medio y da como resultado 0.0064
Figura 6- Imagen final
4.10. LAS TRES ESTRELLAS DE MAYOR BRILLO
Se lee la imagen y se le aplica un filtro pasa bajo butterworth
de radio 60 y orden 3, con esto se difuminan las estrellas más
pequeñas. En la siguiente figura se observa la figura original
y en la figura 2 el resultado de la aplicación del filtro pasa
bajo
Figura 1 - Imagen Original
Figura 2 - Filtro Pasa Bajo Butterworth Radio 60 Orden 3
Se analiza en esta imagen las estrellas que tiene mayor
luminosidad y se busca el valor que dichas estrellas presenta
en niveles de grises, se pasa entonces un umbral con el valor
más cercano al valor de la tercera estrella más brillante, se
toma un valor de umbral de 219 y se aplica a la imagen, y se
convierte la imagen a Blanco y negro para tener mayor certeza
de las estrellas. Se pasa entonces por el proceso de
numeración en la Imagen en Blanco y negro y la real para que
se compruebe visualmente el resultado.
Figura 3 - Identificación de las estrellas en la imagen.
5. CONCLUSIONES
En el procedimiento para el mejoramiento
de la imagen de la tortuga se logró
comprobar que si uno realiza técnicas en
cascada muy difícilmente logrará obtener el
resultado esperado, mientras cuando se
aplican las técnicas por separado y se logra
diferentes resultados de imagen para luego
promediarlas se logra un mejor resultado
hablando en términos del error cuadrático
medio, ya que visualmente es posible que no
se vea tan adecuada.
Cuando se está identificando la estrella más
brillante es posible que otras estrellas más
pequeñas que estén junto a las posiblemente
más brillantes se le sumen y causen un error,
se tubo precaución en el proceso en especial
al aplicar el filtro pasa-bajo tomado un radio
considerablemente grande, ya que es en el
que más factiblemente puede llegar a
suceder el error.
El análisis en el espectro nos permite
conocer más o menos el comportamiento en
lo que se refiere a tasas de cambio de
intensidad de la imagen, ver el ruido y en
que parte se encuentra para filtrarlo.