180 likes | 502 Views
TRANSFORMADA DE FOURIER EN EL PROCESAMIENTO DE IMAGENES. ING. HENRY MORENO MOSQUERA. Transformadas Continuas. Transformado de Fourier F(u) = ò f(x)e [-j2 p ux] dx Transformada inversa f(x) = ò F(u)e [j2 p ux] du. Transformadas de 2 variables.
E N D
TRANSFORMADA DE FOURIER EN EL PROCESAMIENTO DE IMAGENES ING. HENRY MORENO MOSQUERA
Transformadas Continuas • Transformado de Fourier F(u) = ò f(x)e[-j2pux]dx • Transformada inversa f(x) = ò F(u)e[j2pux]du
Transformadas de 2 variables • Para el caso de una imagen se requiere aplicar la transformación en 2-D • Transformado de Fourier F(u) = òò f(x,y)e[-j2p(ux+vy)]dxdy • Transformada inversa f(x) = òò F(u,v)e[j2p(ux+vy)]dudv
Transformadas discreta • Para el caso de una imagen digital se aplica la transformada discreta de Fourier (DFT) • Transformado de Fourier F(u) = (1/MN)SS f(x,y)e[-j2p(ux/M+vy/N)] • Transformada inversa f(x) = SS F(u,v)e[j2p(ux/M+vy/N)] • Existe una forma eficiente de implementar la DFT llamada transformada rápida de Fourier (FFT)
Filtrado • Se aplica la Transformada de Fourier • Se aplica el filtro • Se aplica la transformada inversa
Tipos de Filtros • Pasa bajos • Pasa banda • Pasa altos • Filtros ideales • Filtros butterworth
DFT A UN VECTOR • Un vector x(N) representa el muestreo de una señal unidimensional (Puede ser voz) en un intervalo de tiempo t. • Ts = Periodo de Muestreo = 1/Fs • N = Tamaño vector = t/Ts • Ejm: Fs =8000 Hz, Ts = 125 microseg • T = 50 ms, N = 50 ms/125 microseg = 400
DFT A UN VECTOR (Cont.) • Al aplicarle DFT al vector x(N) generamos otro vector X(N), el cual representa otro espacio diferente. Tradicionalmente dicha transformación pasa señales de tiempo a señales en frecuencia. (Uso en Telecomunicaciones y en Electrónica en General). • Ejemplo 1. Abrir Archivo 1.vi (Labview)
FILTRADO MODIFICANDO EL VECTOR X(N) • Como el vector X(N) nos representa la señal en el dominio de Tiempo, y se quiere hacer un Filtro Rechaza Banda, simplemente se fija en 0 las posiciones en las cuales quedó ubicada la frecuencia o frecuencias que se quieren rechazar en el vector, y posteriormente se aplica la Transformada Inversa de Fourier, para generar la señal en el tiempo ya filtrada. • Ejemplo 2. Archivo 2.vi (Labview)
Transformada de Fourier de Imagenes • Posibilidad de conocer e identificar propiedades de la imagen. • Capacidad de procesar la imagen en el dominio espectral para el desarrollo de filtros. Mucha matematica computacional es uno de los inconvenientes, ya que para hallar FFT bidimensional a una imagen de 256 x 256 pixel, se requiere aplicar FFT unidimen- sionales a a las filas y luego a las columnas, para lo cual se requiere 512 FFT de 256 puntos complejos cada una. Se requiere obligatoriamente FFT implementada en Ensamblador.
Diseno de Filtros usando FFT • Se toma la imagen original y se aplica FFT Bidimensional. • Dependiendo del tipo de Filtro que se seleccione se debe atenuar la zona correspondiente. Si el LPF, atenuamos las altas frecuencias. Si es HPF se atenuan la bajas frecuencias • Se tiene la opcion de variar el umbral de atenuacion, es decir la frecuencia de corte del filtro. • Se puede variar el nivel de atenuacion. • Se devuelve el proceso a traves de IFFT hasta llegar a la imagen final procesada. • Ejemplo 3: FFT.vi y FFT_2.vi
Compresion de Imagenes usando JPEG • Aplicacion de la DCT(Transformada Discreta Coseno) a una submatriz de 8 x 8. • Se cuantifica la matriz usando el estandar de cuantificacion. • Se ordenan los coeficientes en una nueva matriz en forma de zigzag de menor a mayor frecuencia. • Se almacenan los datos eu una matriz final de salida. Dicha matriz obviamente no se puede visualizar, pero aplicamos el proceso inverso para decodificar hasta llegar a la matriz original. • El tamano de la matriz comprimida se visualiza en el monitor. • El nivel de compresion flcutua entre 15 y 20 veces, dependiendo de la imagen.
Algoritmo de Realce de Imagenes Se implemento el Algoritmo retinex. El filtro Gaussiano es: Se aplica FFT y IFFT a dicha funcion para lograr eficiencia y evitar la convolucion Alfa y beta son factores de escala y desplazamiento para la funcion.
Rendimiento del anterior ejemplo • En Matlab, dicho algoritmo tarda cerca de 2 minutos por imagen. • En un DSP, con reloj de 166 MHz procesa tres imágenes por segundo • Si llevamos a un reloj de 1000 Mhz multiplicamos por 6 la cantidad de frames por segundo.