Вы находитесь на странице: 1из 59

El manejo de las imgenes digitales se ha convertido

en las ultimas dcadas en un tema de inters en


diferentes areas de las ciencias naturales , las
ciencias medicas y las aplicaciones tecnolgicas. Es ciencias medicas y las aplicaciones tecnolgicas. Es
por ello que se necesita el uso de algoritmos
especializados en el procesamiento de imgenes,
como los que tiene el programa Qt-Octave.
El programa Qt-octave adems de ser de uso libre
posee un conjunto de herramientas y funciones ya
integradas la cual permite realizar anlisis y
transformaciones de en el dominio de la frecuencia transformaciones de en el dominio de la frecuencia
(trasformada de Fourier) usando la transformada
rpida de Fourier fft el cual es un algoritmo
rpido que nos permite de forma eficiente hacer el
clculo de la transformada discreta de Fourier.
Una imagen puede ser representada de forma analtica como:
Z=f (x,y) (2.1)
z = luminancia z = luminancia
x = coordenada horizontal
y = coordenada vertical
A travs de la aplicacin de transformacin de Fourier a la imagen, se obtiene
la representacin de sta en el dominio frecuencial. Cuando se usa el concepto
de dominio frecuencial en el procesado de imgenes, se hace referencia a la
variacin de los pxeles de la imagen en funcin de las coordenadas espaciales.
Estas variaciones dan como resultado una relacin univoca entre la imagen
original y su transformada.
a) DFT unidimensional
Se supone una funcin continua f(x) , que se discretiza para obtener la sucesin
siguiente:
La secuencia consta de N muestras separadas , pudindose escribir
pues que donde .
{ }
0 0 0 0
( ), ( ), ( 2 ),.... ( [ 1] ) f x f x x f x x f x N x +A + A + A
x A
pues que donde .
Usando esta ltima expresin se define la transformada de Fourier discreta y la
transformada inversa de Fourier discreta unidimensional como:
x A
0
( ) ( ) f x f x x x = + A 0,1, 2.... 1 x N =
2
1
0
1
( ) ( )
N
j ux
N
x
F u f x e
N
t


=
=

2
1
0
( ) ( )
N
j ux
N
u
f x F u e
t


=
=

b) DFT bidimensional
La funcin discreta f(x,y) representa muestras de la funcin
donde e .
0 0
( , ) f x x x y y y + A + A 0,1, 2,... 1 x M = 0,1, 2,... 1 y N =
(2.6)
(2.7)
1 1
2 ( )
0 0
1
( , ) ( , )
u x v y
M N
j
M N
x y
F u v f x y e
N
t


+
= =
=

0,1, 2,... 1
0,1, 2,.... 1
u M
v N
=

1 1
2 ( )
0 0
1
( , ) ( , )
u x v y
M N
j
M N
u v
f x y F u v e
M
t


+
= =
=

0,1, 2,... 1
0,1, 2,.... 1
x M
y N
=

La transformada de Fourier es una de las herramientas ms


potentes y usadas en problemas de procesamiento de imgenes.
Debido a la naturaleza discreta de las imgenes, este documento se Debido a la naturaleza discreta de las imgenes, este documento se
centrar en el estudio de la trasformada discreta de Fourier o ms
comnmente conocida como DFT.
Al igual que las seales unidimensionales, las imgenes tambin
pueden representarse a travs de su transformada de Fourier, sin
ms que hacer una extensin de la trasformada unidimensional al
caso bidimensional ya que una imagen puede considerarse como una
funcin de dos variables.
El resultado de la transformacin es una imagen compleja, con lo que no se puede
representar directamente. Para su representacin, hay varias opciones: en primer lugar
representar parte real e imaginaria por separado, y en segundo lugar representando
modulo y fase tambin por separado. Esta segunda forma de representacin es la ms
habitual.
En general las imgenes tienen la mayor parte de la energa (mdulo) en las
componentes frecuenciales bajas, y teniendo en cuenta que el origen de coordenadas se componentes frecuenciales bajas, y teniendo en cuenta que el origen de coordenadas se
sita en la esquina superior izquierda de la imagen, la imagen trasformada tendr la
mayor parte de la informacin en la esquina citada.
Para facilitar la interpretacin visual del mdulo de la transformada, se hace una
traslacin del origen de las frecuencias hasta el centro geomtrico de la imagen.
(2.10)
Al hacer esto, aparecen las bajas frecuencias en el centro de la imagen, facilitando su
visualizacin.
( ', ') ,
2 2
N N
Gu v F u v
| |
=
|
\ .
La variacin de la energa cuando hay un desplazamiento desde las bajas a las
altas frecuencias y viceversa, es muy diferenciada. Esto provoca que el
resultado de la representacin del mdulo sea prcticamente un punto en el
centro de la imagen.
Para corregir este efecto, y poder visualizar mejor el mdulo, se aplica la
operacin logaritmo: operacin logaritmo:
(2.11)
donde c es una constante de escala.
( ', ') log[1 ( ', ') ] D u v c G u v = +
) a
Figura 1. (a)Imagen Original, (b) Mdulo de su transformada, (c)
Representacin Logartmica
) c
) b
Propiedades de la transformada discreta
de Fourier bidimensional
2.3.1 Separabilidad:
con (2.12)
1 1
2 2
0 0
1
( , ) ( , )
u x v y
N N
j j
N N
x y
F u v e f x y e
N
t t
| | | |


| |
\ . \ .
= =
=

0,1, 2,... 1
0,1, 2,.... 1
u M
v N
=

con (2.13)
1 1
2 2
0 0
1
( , ) ( , )
u x v y
M N
j j
N N
u v
f x y e F u v e
N
t t
| | | |

| |
\ . \ .
= =
=

0,1, 2,... 1
0,1, 2,.... 1
x M
y N
=

Propiedades de la transformada discreta de


Fourier bidimensional
2.3.2 Traslacin:
(2.14)
(2.15)
( ) ( )
0 0
2
0 0
, ,
u x v y
j
N
f x y e F u u v v
t
+

( )
0 0
2
0 0
, ( , )
u x v y
j
N
f x x y y F u v e
t
+


Para el caso particular de (desplazamiento del origen de
frecuencias al centro geomtrico de la imagen) tenemos que:
(2.16)
(2.17)
Esta propiedad de traslacin, no modifica el mdulo de la transformada.
0 0
2
( )
( 1)
u x v y
j
j x y x y
N
e e
t
t
+
+ +
= =
( ) ( ) , 1 ,
2 2
x y N N
f x y F u v
+ | |

|
\ .
0 0
2
N
u v = =
Propiedades de la transformada discreta
de Fourier bidimensional
2.3.3 Periodicidad y simetra conjugada:
Cuando f(x,y) es real, la transformada cumple la propiedad de simetra
conjugada
(2.19)
( , ) ( , ) F u v F u v =
(2.19)
Si se divide la imagen transformada en 4 cuadrantes (suponiendo que
el origen de frecuencias est en el centro de la imagen transformada),
y la imagen de entrada es real (generalmente lo ser), el tercer
cuadrante ser igual al primer cuadrante rotado 180, y el cuarto
cuadrante ser igual al segundo rotado 180. Analticamente:
Propiedades de la transformada discreta
de Fourier bidimensional
Propiedades de la transformada discreta
de Fourier bidimensional
2.3.8 Convolucin y Correlacin:
Estas operaciones son de gran importancia cuando se hace tratamiento digital de
imgenes en el dominio de la frecuencia.
La convolucin bidimensional se puede expresar por:
con
( ) ( ) ( ) ( )
1 1
, , , ,
M N
f x y g x y f m n g x m y n
= =
- =

0,1, 2,... 1
0,1, 2,.... 1
x M
y N
=

con
Si se pasa esta expresin al domino de Fourier el producto de convolucin pasa a
ser un producto algebraico, simplificando as su clculo.
( ) ( ) ( ) ( )
0 0
, , , ,
m n
f x y g x y f m n g x m y n
= =

0,1, 2,.... 1 y N

( ) ( ) ( ) ( )
, , , , f x y g x y F u v G u v -
( ) ( ) ( ) ( )
, , , , f x y g x y F u v G u v -
Propiedades de la transformada discreta
de Fourier bidimensional
La correlacin bidimensional discreta se puede expresar por:
(2.34)
donde es el conjugado complejo.
( ) ( ) ( ) ( )
1 1
0 0
, , , ,
M N
m n
f x y g x y f m n g x m y n
= =
-
= =
= + +

0,1, 2,... 1
0,1, 2,.... 1
x M
y N
=

-
donde es el conjugado complejo.
Si se pasa esta expresin al domino de Fourier el producto de correlacin pasa
a ser un producto algebraico, simplificando as su clculo.
(2.35)
(2.36)
Una de las principales aplicaciones de la correlacin es la comparacin entre
imgenes, es decir, determinar el grado de parecido entre un conjunto de
imgenes conocidas y una imagen desconocida.
( ) ( ) ( ) ( )
, , , , f x y g x y F u v G u v
-

( ) ( ) ( ) ( ) , , , , f x y g x y F u v G u v
-

2.5. Transformada rpida de Fourier (FFT)
Al hablar de la DFT, ya habamos comentado que sta puede calcularse
de forma eficiente mediante el uso de algoritmos rpidos como lo es
la fast Fourier transform FFT.
Sin un algoritmo eficiente que calcule la DFT, no sera posible usar la
transformada de Fourier en el tratamiento de la imagen. La aplicacin transformada de Fourier en el tratamiento de la imagen. La aplicacin
directa de la expresin de la DFT resultara tedioso. Cada punto en la
imagen transformada (suponemos que es cuadrada) necesita N
multiplicaciones complejas y N-1 sumas complejas (sin contar el
clculo de las funciones base - senos y cosenos -).
En total, necesitamos multiplicaciones complejas y N(N-1)
sumas complejas.
4
N
2.5. Transformada rpida de Fourier (FFT)
2.5.1. Algoritmo de la FFT unidimensional y su desarrollo
Para desarrollar la FFT, se parte de la expresin de la DFT unidimensional:
donde (2.37)
El nmero de muestras N debe ser potencia de dos, es decir tiene que tener la
forma: donde n es un entero positivo.
1
0
1
( ) ( )
N
ux
N
x
F u f x W
N

=
=

2
j
N
N
W e
t

=
2
n
N =
forma: donde n es un entero positivo.
Por tanto N se puede expresar como N=2M donde Mes entero y positivo.
Sustituyendo esto en la expresin de la DFT unidimensional queda:
(2.38)
Esta expresin puede desglosarse en pares e impares, segn la posicin par o impar que
ocupen las muestras en el array (arreglo) de entrada. Segn esto se tiene que:
(2.39)
2 1
2
0
1
( ) ( )
2
M
ux
M
x
F u f x W
M

=
=

1 1
(2 ) (2 1)
2 2
0 0
1 1
( ) (2 ) (2 1)
2 2
M M
u x u x
M M
x x
F u f x W f x W
M M

+
= =
= + +

Transformada rpida de Fourier (FFT)
Y esta ltima expresin se puede poner como:
(2.40)
donde
2
1
( ) [ ( ) ( ) ]
2
u
par impar M
F u F u F u W = +
( )
1
0
1
(2 )
M
ux
par M
x
F u f x W
M


(2.41)
y usando las propiedades de periodicidad de las exponenciales, que estn incluidas
en la expresin de la FFT, se tiene que y que
, por tanto:
(2.42)
( )
1
0
1
(2 1)
M
ux
impar M
x
F u f x W
M

= +


u M u
M M
W W
+
=
2 2
u M u
M M
W W
+
=
2
1
( ) [ ( ) ( ) ]
2
u
par impar M
F u M F u F u W + =
Transformada rpida de Fourier (FFT)
La conclusin que se obtiene es que una transformada de N puntos se puede calcular
como divisin de dos transformadas de N/2 puntos (muestras con posiciones pares
e impares).
El clculo de F(u) para u= 0,1,2,(N/2)-1 se consigue evaluando la ecuacin 2.40, mientras
que los puntos restantes se obtienen a travs de la ecuacin 2.42, pero esta vez sin necesidad de
volver a evaluar las transformadas, puesto que stas ya haban sido evaluadas en el clculo de la
ecuacin 2.40.
Aplicando este algoritmo de sucesivas divisiones, el nmero total de operaciones complejas Aplicando este algoritmo de sucesivas divisiones, el nmero total de operaciones complejas
cambia desde N hasta N+2*(N/2), y luego hasta N+2*[(N/2)+2*(N/4) ] y as sucesivamente,
dependiendo del nmero de etapas en las que puede descomponerse la DFT de N puntos.
Si N es grande e igual a , entonces el nmero de etapas es p, y el nmero de operaciones
complejas pasa de ser N a N+N+ ......+N=N*p = N*log2N.
Para el ejemplo que estamoss iguiendo ( N=8 ), el total de operaciones complejas ser
N*p=8*3=24.
2
p
3. Conceptos Bsicos de las Imgenes
Para leer imgenes contenidas en un archivo al ambiente de octave o
matlab se utiliza la funcin imread, cuya sintaxis es:
>> imread (nombre del archivo.jpg)
De tal forma que si se quisiera introducir la imagen contenida en el
archivo data.jpg a una variable para su procesamiento en octave,
entonces se tendra que escribir en lnea de comandos:
>>image=double(imread(unigray.jpg));
Usamos double para una doble precisin de la imagen de entrada.
Una vez que la imagen esta contenida en una variable de Octave es
posible utilizar las funciones para procesar la imagen. Por ejemplo, una
funcin que permite encontrar el tamao de la imagen es size :
[m, n]=size (unigray);
en donde my n contendrn los valores de las dimensiones de la imagen.
11 12 1
21 22 2
1 2
( , )
n
n
m m mn
x x x
x x x
I x y
x x x
| |
|
|
=
|
|
\ .

Figura 3.1: Representacin de la imagen unigraya escala de grises en Octave.


Conceptos Bsicos de las Imgenes
En visin computacional es de utilidad para hacer reconocimiento de objetos o bien
para segmentar regiones, extraer los bordes de objetos (que en teora delimitan sus
tamaos y regiones). La funcin edge da la posibilidad de obtener los bordes de la
imagen.
La funcin permite encontrar los bordes a partir de dos diferentes algoritmos que
pueden ser elegidos, canny y sobel.
>>uniborde = edge(unigray, algoritmo); >>uniborde = edge(unigray, algoritmo);
Figura 3.2: Reconocimiento de borde de una imagen usando el algoritmo sobel.
Conceptos Bsicos de las Imgenes
3.4. Filtrado de una seal
En general como filtrado se entiende a la modificacin de una seal o de una imagen
con el objetivo de realizar, por ejemplo, la extraccin de un objeto de una escena, de
reconocer un objeto en una escena, de eliminar el ruido, cambiar del contraste, etc.
Consideremos el resultado de la operacin de convolucin de una seal f(x) y la
respuesta de impulso de un filtro h(x):
Recordamos que, basndose en las propiedades de la transformada de Fourier , se
( ) ( ) ( ) ( ) ( ) g x f x h x f h x d c c c = =

Recordamos que, basndose en las propiedades de la transformada de Fourier , se


puede expresar esta operacin en el dominio de Fourier como
Donde F (u) es la transformada de Fourier de la seal y H(u)=TF{h(x)} es la funcin
del filtro. Ntese, que la funcin del filtro es una funcin compleja
Donde A(u) y (u) son funciones reales y A(u)>0. En particular los filtros H(u)= A(u)
se denominan filtros de amplitud que modifican solamente la amplitud de la
transformada de Fourier de la seal.
{ }
( ) ( ) ( ) ( ), G u TF g x F u H u = =
( ) ( ) exp[ ( )] H u A u i u m =
Conceptos Bsicos de las Imgenes
3.5. Filtros para reconocimiento de un objeto:
Por ejemplo, para realizar el reconocimiento de un objeto conocido f(x) en una
escena y su localizacin se utiliza la funcin del filtro H(u)= aF
*
(u) (matched
filter, o filtro adaptado).
3.5.1. Filtros para la eliminacin del ruido 3.5.1. Filtros para la eliminacin del ruido
La aplicacin de filtros tambin permite mejorar la calidad de imgenes
afectadas por ruido aleatorio. Por ejemplo, si el espectro del ruido se
concentra en un rea limitada, donde el espectro de la imagen no contiene
informacin importante, es posible eliminar este rea o disminuir su
intensidad aplicando los filtros correspondientes. El filtro ms simple es
H(u)= 0 en el rea donde el espectro del ruido es mximo y H(u)= 1 en el
resto del plano de Fourier.
Conceptos Bsicos de las Imgenes
) a
) b
) c ) d
Conceptos Bsicos de las Imgenes
) a
) c ) b
Conceptos Bsicos de las Imgenes
3.5.2. Filtros para deteccin de bordes
Los bordes se pueden definir como un cambio brusco de intensidad en la imagen, y
corresponden a las frecuencias altas del espectro de Fourier. Por eso todos los
mtodos de deteccin de bordes se basan en el aumento del peso de las frecuencias
altas del espectro asociado a la imagen. Existen diferentes tcnicas para la deteccin
de bordes: deteccin diferencial, "model fitting", y varios filtros de amplitud.
Conceptos Bsicos de las Imgenes
En particular el mtodo diferencial est basado en el clculo de las derivadas de primer o
de segundo orden de la imagen y en la comparacin del gradiente del borde con un
umbral. El clculo de las derivadas de primer y segundo orden de la funcin f(x) se
realiza con las funciones del filtro H(u)= u y H(u)= u
2
respectivamente. Esto se basa en la
siguiente propiedad de la transformada de Fourier
(3.5)
1
( )
[ ( ) ]( ) ( )
n
n n
n
d f x
TF F u u x i
dx

=
Figura 3.7. a) Imagen original. b) Imagen filtrada con H(u)=u
2
.
n
dx
Conceptos Bsicos de las Imgenes
3.5.3. Filtros de suavizamiento
A veces es necesario suavizar el contraste de la imagen. Los filtros diseados para
esta tarea aumentan el peso de frecuencias bajas en el espectro de la imagen. Por
ejemplo, el filtro H(u)=exp(-au
2
) (Gaussiana) suaviza la imagen, tal y como
podemos observar en la figura siguiente.
Figura 3.8. a) Imagen original. b) Imagen filtrada
4. Imgenes obtenidas en Qt-Octave: Uso de los
comandos fft , ifft y fftshift
Las funciones bsicas de OCTAVE para realizar este clculo son fft e ifft,
que emplean el algoritmo de la Transformada Rpida de Fourier (FFT) y que
admiten como argumento un vector con los valores discretos de las
correspondientes funciones. El listado completo del fichero de entrada se
incluye en el programa 2.
En OCTAVE, este centrado se consigue especificando rango adecuado de
frecuencias y mediante el comando fftshift, como muestra el fichero de frecuencias y mediante el comando fftshift, como muestra el fichero de
entrada con el que se han calculado las figuras 4.2 a) y b) y que se incluye en
el programa 1.
Se realiza la TDF de una seal senoidal de f = 10 Hz de T
0
= 1 s de
duracin muestreada con N = 200 mediante el programa OCTAVE. La
figura 4.3 muestra la funcin original, las partes real e imaginaria de
la TDF, y la seal que se recupera mediante la Transformada Inversa
Discreta de Fourier (TIDF) de la anterior
Imgenes obtenidas en Qt-Octave
Programa 1: Fichero de OCTAVE para la representacin estndar y centrada.

#TDF de una funcion senoidal de f=10 Hz durante 1 s con N=200 muestras


# Representacion estandar y centrada.
T=1; # Periodo de tiempo total muestreado
N=200; # Numero de muestras
freq=10; # Frecuencia de la entrada en Hz
W=2*pi*freq; # frecuencia de la seal (en rad/s)
t=T*[0:N-1]/N; # Escala de tiempo
f=(2*pi/T)*[0:N-1]; # Escala en frecuencia
x1=sin(W*t);
y1=fft(x1); # T. de Fourier
f1=(2*pi/T)*[-N/2:N/2-1]; # Escala en frecuencia
y1s=fft(x1); # T. de Fourier
y1s=fftshift(y1s);
#gset term post landscape
#gset output "salida1b.ps"
plot(f,abs(y1))
title('Transformada estndar');
plot(f1,abs(y1s))
title('Transformada centrada');
Imgenes obtenidas en Qt-Octave
a) b)
Imgenes obtenidas en Qt-Octave
Programa 2. Fichero de OCTAVE para la TDF de una seal senoidal de f = 10 Hz.

# TDF de una funcin sinodal de f=10 Hz durante 1 s con 200 muestras


clear;
hold off;
T=1; # Periodo de tiempo total muestreado
N=200; # Numero de muestras
freq=10; # Frecuencia de la entrada en Hz
W=2*pi*freq; # frecuencia de la seal (en rad/s)
t=T*[0:N-1]/N; # Escala de tiempo
f=(2*pi/T)*[0:N-1]; # Escala en frecuencia
x1=sin(W*t);
y1=fft(x1); # T. de Fourier y1=fft(x1); # T. de Fourier
y2=ifft(y1); # T. Inversa de Fourier
#gset termpost portrait
#gset output "salida1.ps"
subplot(4,1,1);
clearplot;
plot(t,x1,';funcion original;');
subplot(4,1,2);
clearplot;
plot(f,real(y1),';TDF parte real;');
subplot(4,1,3);
clearplot;
plot(f,imag(y1),';TDF parte imaginaria;');
subplot(4,1,4);
clearplot;
plot(t,y2,';funcion recuperada;');
pause;
Imgenes obtenidas en Qt-Octave
) a ) b
) d ) c
Imgenes obtenidas en Qt-Octave
Programa 3. Transformada de Fourier y su transformada inversa de una
imagen bidimensional.
clear all
close all
a=(imread('unigray.jpg')); # entrada de la imagen unigray en escala de grices y
# en formato jpg
figure (1);
imshow(a); #muetra la imagen de entrada unigray
F = fft2(a);
figure (2);
imshow(F,[ ]); # muestra el modulo de la transformada bidimensional de Fourier #de la
imagen unigray: espectro de Fourier
M= fftshift((abs(F)));
figure (3);
imshow(M,[ ]); # muestra el espectro de Fourier centrado en el centro de la #imagen
T = fftshift(log(abs(F)+1));
figure (4);
imshow(T,[ ]); # muestra el espectro de Fourier amplificado
IF = ifft2(F);
figure (5);
imshow(IF,[ ]); # muestra la imagen original recuperada
Imgenes obtenidas en Qt-Octave
) a ) c
) b
) e
) d
Imgenes obtenidas en Qt-Octave
Programa 4. Programa de deteccin de objetos: En este caso se muestra una imagen con cuatro
objetos distintos (figura 4.5 a) y otra imagen con uno de los objetos anteriores en el centro (figura 4.5 b)
y la correlacin cruzada entre las figuras 4.5 a y 4.5 b (figura 4.5 c)
clear all
close all
N=502;
f=zeros(N,N);
g=zeros(N,N);
h=zeros(N,N);
hh=zeros(N,N);
f = double(imread('fig.jpg')); #entrada de la figura 4.5 a
h = double(imread('fig1.jpg')); # entrada de la figura 4.5 b
for i = 1:N # proceso para llevar las figuras 4.5 a) y b) a una matriz cuadrada NxN for i = 1:N # proceso para llevar las figuras 4.5 a) y b) a una matriz cuadrada NxN
for j = 1:N
ff(i,j)=f(i,j);
hh(i,j)=h(i,j);
endfor
endfor
F=fft2(ff); # Transformada de Fourier de la figura 4.5 a.
H=fft2(hh); # Transformada de Fourier de la figura 4.5 b.
figure(1);
imshow(ff,[ ]); # muestra la figura 4.5 a
figure(2);
imshow(hh,[ ]); #muestra la figura 4.5 b
FC=conj(F); #conjugada de F
G=FC.*H; # Transformada de Fourier de la funcin de correlacin G.
g=ifft2(G); # transformada inversa de G: funcin de correlacin g.
figure(3);
imshow(abs(g),[ ]); # muestra la correlacin cruzada entre las figuras 4.5 a) y b).
Imgenes obtenidas en Qt-Octave
) b
) a
) c
Imgenes obtenidas en Qt-Octave
Programa 5. Programa de deteccin de objetos: En este caso se muestra una
imagen con letras de A hasta la L en filas y en 2 columnas (figura 4.6 a) y otra
imagen con una letra A (figura 4.6 b) y la correlacin cruzada entre las figuras 4.5 a
y 4.5 b (figura 4.5 c)
hh=zeros(N,N);
f = double(imread('texto.jpg')); #entrada de la figura 4.6 a
h = double(imread('textoA.jpg')); # Transformada de Fourier de la figura 4.6 b.
for i = 1:N # proceso para llevar las figuras 4.6 a) y b) a una matriz cuadrada NxN
for j = 1:N
ff(i,j)=f(i,j);
hh(i,j)=h(i,j); hh(i,j)=h(i,j);
endfor
endfor
F=fft2(ff); # Transformada de Fourier de la figura 4.6 a.
H=fft2(hh); # Transformada de Fourier de la figura 4.6 b.
figure(1);
imshow(ff,[ ]); # muestra la figura 4.6 a
figure(2);
imshow(hh,[ ]); #muestra la figura 4.5 b
HC=conj(H); #conjugada de H
G=F.*HC; # Transformada de Fourier de la funcin de correlacin: G.
g=ifft2(G); # transformada inversa de G: funcin de correlacin g.
figure(3);
imshow(abs(g),[ ]); # muestra la correlacin cruzada entre las figuras 4.6 a) y b).
Imgenes obtenidas en Qt-Octave
) b
) a
Imgenes obtenidas en Qt-Octave
Programa 6. Programa de deteccin de bordes: En este caso se halla los bordes de la figura ya
usada unigray pero esta vez partiendo de la igualdad de la ecuacin (3.5) y con una funcin de
filtro H(x,y)=X
2
+Y
2
.
clear all
close all
N=339; # tamao de la imagen unigray: numero de filas.
M=613; # tamao de la imagen unigray: numero de columnas.
f=zeros(N,M);
g=zeros(N,M);
h=zeros(N,M);
hh=zeros(N,M);
f = double(imread('unigray.jpg')); #entrada de la figura unigray.jpg.
for i = 1:N
for j = 1:M for j = 1:M
ff(i,j)=f(i,j);
hh(i,j)=h(i,j);
endfor
endfor
F=fft2(ff);
for i = 1:N
for j = 1:M
H(i,j)=(i.^2+j.^2); # funcin de filtro.
B(i,j)=F(i,j)*H(i,j); #F por la funcin de filtro.
endfor
endfor
IB=(ifft2(B)); #transformada inversa de B
figure(1);
imshow((abs(IB)),[ ]); # muestra la imagen de salida mostrando sus bordes.
Imgenes obtenidas en Qt-Octave
5. Fenmenos pticos
La mayora de los sistemas pticos para procesado de la informacin, estn
basados en el fenmeno de la difraccin. Normalmente se entiende por difraccin la
perturbacin que experimentan las ondas cuando se propagan. Consideremos la
difraccin de una onda luminosa coherente y monocromtica por una diapositiva
fotogrfica plana que se encuentra en una pantalla opaca, tal y como se muestra
en la siguiente figura:
Figura 5.1: Geometra de la difraccin.
5. Fenmenos pticos
La diapositiva plana est en un sistema de coordenadas rectangulares (x
0
,y
0
),
mientras que el plano de observacin, que tambin est en un sistema de
coordenadas rectangulares (x,y), es paralelo al plano de la diapositiva (plano
objeto) a una distancia z.
La presencia del objeto en el plano (x
0
,y
0
) cambia la amplitud compleja de la
luz que ilumina la pantalla,
0
(x
0
,y
0
). Para conocer la distribucin de amplitud
en el plano justo detrs de la diapositiva
e
(x
0
,y
0
) tenemos que saber la
funcin de transferencia T(x
0
,y
0
) del objeto, que en general es una funcin
compleja.
Para calcular la amplitud compleja en el plano de observacin (salida)
s
(x,y) se
requiere resolver la ecuacin de Helmholtz:
con condiciones inciales (x
0
,y
0
,0) =
e
(x
0
,y
0
), donde k=2p/ y es la longitud de
onda. Esta ecuacin describe la propagacin de ondas monocromticas en el
espacio libre en un medio que es lineal, istropo, homogneo y no dispersivo
(aproximacin escalar de la teora de difraccin).
0 0 0 0 0 0 0
( , ) ( , ) ( , )
e
x y x y T x y v v =
2 2
( , , ) ( , , ) 0 x y z k x y z v v V + =
Fenmenos pticos
Para resolver esta ecuacin hacemos la transformada de Fourier
bidimensional de la amplitud Y(x,y,z) con respecto de x, y en un plano z
Haciendo la transformada de Fourier inversa representamos la amplitud Haciendo la transformada de Fourier inversa representamos la amplitud
como una superposicin de ondas planas
Introduciendo esta representacin en la ecuacin de Helmoltz se obtiene
cuya solucin es
Fenmenos pticos
5.1.1 Difraccin de Fresnel
Si el espectro angular de la amplitud compleja
e
(x
0
,y
0
) es casi nulo para |k
x
|,
|k
y
|>|k
c
| (donde k
c
=2/a
min
y a
min
es el lmite de resolucin de la amplitud
compleja en el plano objeto z=0) y k
c
<< k, entonces k
z
=(k
2
-k
x
2
-k
y
2
)
1/2
se puede
expresar como un desarrollo binomial teniendo en cuenta los trminos hasta el
segundo orden
que permite simplificar la expresin de la evolucin del espectro durante la
propagacin de la luz en el espacio libre hasta el plano z
La exponencial exp(ikz) representa un retardo de fase experimentado por cada una de
las componentes del espectro y por tanto no tiene mayor inters. La segunda
exponencial indica que en la propagacin hay una dispersin con dependencia
cuadrtica en la fase que para distancias pequeas afecta ms a las frecuencias altas
Fenmenos pticos
La integral de Fresnel es la siguiente
donde se puede ver que excepto por los factores multiplicativos de
amplitud y de fase,
s
(x,y) es la transformada de Fourier de

e
(x
0
,y
0
)exp(ik(x
0
2
+y
0
2
)/2z).
Fenmenos pticos
5.1.2 Difraccin de Fraunhofer
Si la distancia z >> k(x
0
2
+ y
0
2
)
max
/2=ka
2
max
/2, donde x
0max,
y
0max
son los tamaos
horizontales y verticales del objeto difractado, respectivamente, el factor de fase
cuadrtica exp(ik(x
0
2
+y
0
2
)/2z) que aparece en la integral anterior se hace
prcticamente igual a la unidad, por lo que la expresin de la amplitud compleja se
simplifica dando lugar a la conocida aproximacin de Fraunhofer o de campo lejano
Para estas distancias
s
(x,y) es proporcional a la transformada de fourier de
e
en
(x
0
,y
0
) representada en los trminos de frecuencias espaciales (kx/z, ky/z), e
incluyendo los factores multiplicativos de amplitud y de fase cuadrtica. En particular,
se obtiene en intensidad una respuesta proporcional al mdulo cuadrado de la
transformada de Fourier de
e
(x
0
,y
0
)
Fenmenos pticos
La observacin de la transformada de Fourier ptica en el espacio libre no es muy til. Primero,
porque la distancia z donde se observe puede ser grande. Por ejemplo para un objeto de tamao 1
mm y longitud de onda =632.8nm (color rojo), la distancia z tiene que ser del orden de 5m. Y
segundo, porque el factor de escala de la transformada de Fourier ptica depende de z, y para z
grande el espectro se ensancha enormemente.
Para realizar la observacin de la transformada de Fourier ptica se utilizan normalmente los
sistemas pticos con lentes delgadas, que pertenecen a la familia de los sistema ptico de primer
orden.
Figura 5.2: Representacin esquemtica de regiones de difraccin que definen distintos regmenes.
Fenmenos pticos
Programa 7. Programa Fraunhofer: En este caso se simula la difraccin de Fraunhofer usando
Las transformadas de Fourier. Se muestra los espectros de difraccin de Fraunhofer para varios
tipos de rendijas(figuras 5.3-5.7)

clear all
close all
A = double(imread('rendija.jpg')); #entrada del tipo de rendija
N=195; # tamano en pixels de la imagen: filas
M=195; # tamano en pixels de la imagen: columnas
for i = 1:N
for j = 1:N
AA(i,j)=A(i,j); AA(i,j)=A(i,j);
endfor
endfor
#N = sz(1);
#M= sz(2);
lambda = 600e-9;
f = 16.5e-3;
W= 4e-3;
frh = (fftshift(fft2(AA))).^2;
FR= log(abs((frh))+1);
#X = linspace(-(lambda*f*N)./(2*W),(lambda*f*N)./(2*W), N);
#Y = linspace(-(lambda*f*M)./(2*W),(lambda*f*M)./(2*W), M);
#plot(X,Y,I);
imshow(FR,[ ]);
Fenmenos pticos
Figura 5.3: Difraccion de Fraunhofer para una rendija rectangular vertical.
Figura 5.4: Difraccion de Fraunhofer para una rendija cuadrada.
Fenmenos pticos

Programa 8. Programa Fresnel: En este caso se simula la difraccin de fresnel usando Las transformadas de Fourier. Se
muestra los espectros de difraccin de fresnel para varios tipos de rendijas (figuras 5.7-5.9)

clear all
close all
#Parameters
N=512;
L=0.001;
dx=2*L/N;
[x y]=meshgrid(-L:dx:L-dx,-L:dx:L-dx);#plane1
x0=0;
y0=0;
z0=0;
[X Y]=meshgrid(-L:dx:L-dx,-L:dx:L-dx); # plane2 for fresnel prop
lambda=532*10^(-9);
k=2*pi/lambda;
#sigma=j*k/(2*z);
z=0.1; z=0.1;
z2=0.2;
%r=sqrt((x-x0).^2+(y-y0).^2+(z-z0)^2);
psi1=zeros(N);
psi1(1:512,256:512)=exp(j*k*z); #sigma ignored since its too large
F1=psi1.*exp(j*k*(x.^2+y.^2)/(2*(z2-z)));
FFT1=fftshift(fft2(F1));
F2=exp(j*k*(z2-z))*exp(j*k*(X.^2+Y.^2)/(2*(z2-z)))/(j*lambda*(z2-z));
U=FFT1;
figure(1)
I=psi1.*conj(psi1);
imagesc(I);
axis square;
colormap(gray);
figure(2)
I=U.*conj(U);
imagesc(log(abs(I))+1);
axis square;
colormap(gray);
Figura 5.8: Difraccin de Fresnel para una rendija tipo borde. a) Rendija tipo borde,
b) espectro de difraccin de Fresnel.
) b
) a
) a
) b
Fenmenos pticos
) a
) c
) b
Conclusiones
Basndose en las operaciones de transformacin de Fourier. se puede realizar el
filtrado ptico que es un procedimiento bsico para el procesado de la informacin. En
general la mayora de las tareas del procesado tales como deteccin y reconocimiento
de imgenes, tratamiento de la calidad de la imagen, reduccin de ruido, deteccin de
bordes etc., estn relacionados con el proceso de filtrado.
La FFT es una herramienta de anlisis muy potente y manejable. Constituye uno de los
mayores desarrollos en la tecnologa del tratamiento de imgenes. En la
implementacin de su algoritmo, las entradas y las salidas estn relacionadas mediante
una simple inversin de bits.
Evaluar directamente la DFT bidimensional de una imagen NxN supone efectuar N
4
Evaluar directamente la DFT bidimensional de una imagen NxN supone efectuar N
4
operaciones complejas, mientras que con la FFT, se necesitan nicamente N
2
Alog
2
N.
Se ha usado el programa Qt-Octave para realizar clculos de ptica Fourier. Este
programa a la vez que es de uso libre posee un simple lenguaje de programacin, lo cual
le permite a los permite realizar clculos numricos precisos sin necesitar atrasarse por
dificultades en las cosas especficas de los clculos numricos.
Hemos mostrado cmo simular en un ordenador personal, la imagen completa de
difraccin Fresnel y de Fraunhofer para varios tipos de rendijas: como cuadrada,
rectangular y circular.
Este tipo de simulaciones pueden suplementar un experimento de difraccin autntico
hecho en el laboratorio y de poder discutir resultados obtenidos en ambos casos.
Bibliografa:
[1] Mara Luisa Calvo Padilla, Tatiana alieva, Jose A. Rodrigo, Daniel Rodriguez Merlo,
Timour Alieva; Laboratorio Virtual de ptica, Departamento de ptica, Facultad de
Ciencias Fsicas, Universidad Complutense de Madrid.
[2] Eugene Hecht, Optica, Tercera Edicion, Addison Wesley Iberoamericana, Madrid 2000.
[3] E. Valdemar Cuevas Jimnez, Daniel Zaldivar Navarro, Visin por Computador utilizando
MatLAB Y el Toolbox de Procesamiento Digital de Imgenes
[4] Juan Jos Garca Rojo; Herramientas en GNU/Linux para estudiantes universitarios
:Gnu/Octave: clculo numrico por ordenador
[5] K.M. Abedin, M.R. Islam, A.F.M.Y. Haider, Computer simulation of Fresnel diffraction from
rectangular apertures and obstacles using the Fresnel integrals approach.
[6] S. M. Schultz, Using MATLAB to help teach Fourier optics, Deparment of Electrical and
Computer Engineering, Brigham Young University, Provo, UT USA.
[7] http://campusvirtual.uma.es/tdi/alumnos/tdi22/index.html
[8] http://www.physicsforums.com/difractionfresnel
!Gracias Totales!
Universidad Nacional de
Ingeniera UNI

Вам также может понравиться