experimentos virtuales de Óptica en

Upload: carlos-david-gonzales-lorenzo

Post on 07-Apr-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/6/2019 Experimentos Virtuales de ptica en

    1/59

  • 8/6/2019 Experimentos Virtuales de ptica en

    2/59

    El manejo de las imgenes digitales se haconvertido en las ultimas dcadas en un tema deinters en diferentes areas de las ciencias

    ,tecnolgicas. Es por ello que se necesita el uso dealgoritmos especializados en el procesamiento deimgenes, como los que tiene el programa Qt-

    Octave.

  • 8/6/2019 Experimentos Virtuales de ptica en

    3/59

    El programa Qt-octave adems de ser de uso libreposee un conjunto de herramientas y funcionesya integradas la cual permite realizar anlisis y

    frecuencia (trasformada de Fourier) usando latransformada rpida de Fourierfft el cual es unalgoritmo rpido que nos permite de forma

    eficiente hacer el clculo de la transformadadiscreta de Fourier.

  • 8/6/2019 Experimentos Virtuales de ptica en

    4/59

    La transformada de Fourier es una de las herramientas mspotentes y usadas en problemas de procesamiento de imgenes.

    ,se centrar en el estudio de la trasformada discreta de Fourier oms comnmente conocida como DFT.

    Al igual que las seales unidimensionales, las imgenes tambinpueden representarse a travs de su transformada de Fourier, sin

    ms que hacer una extensin de la trasformada unidimensional alcaso bidimensional ya que una imagen puede considerarse comouna funcin de dos variables.

  • 8/6/2019 Experimentos Virtuales de ptica en

    5/59

    Una imagen puede ser representada de forma analtica como:

    Z=f (x,y) (2.1)

    =x = coordenada horizontaly = coordenada vertical

    A travs de la aplicacin de transformacin de Fourier a la imagen, se obtienela representacin de sta en el dominio frecuencial. Cuando se usa el

    concepto de dominio frecuencial en el procesado de imgenes, se hacereferencia a la variacin de los pxeles de la imagen en funcin de lascoordenadas espaciales. Estas variaciones dan como resultado una relacinunivoca entre la imagen original y su transformada.

  • 8/6/2019 Experimentos Virtuales de ptica en

    6/59

    a) DFT unidimensional

    Se supone una funcin continua f(x) , que se discretiza para obtener lasucesin siguiente:

    La secuencia consta de N muestras se aradas udindose escribir

    0 0 0 0( ), ( ), ( 2 ),.... ( [ 1] )f x f x x f x x f x N x

    x

    pues que donde .

    Usando esta ltima expresin se define la transformada de Fourier discreta yla transformada inversa de Fourier discreta unidimensional como:

    0( ) ( )f x f x x x 0,1,2.... 1x N

    21

    0

    1( ) ( )N

    j uxN

    x

    F u f x eN

    21

    0

    ( ) ( )N

    j uxN

    u

    f x F u e

  • 8/6/2019 Experimentos Virtuales de ptica en

    7/59

    b) DFT bidimensional

    La funcin discreta f(x,y) representa muestras de la funcindonde e .0 0( , )f x x x y y y 0,1, 2, ... 1x M 0,1,2,... 1y N

    (2.6)

    (2.7)

    1 1 2 ( )

    0 0

    1( , ) ( , )

    u x v yM N jM N

    x y

    F u v f x y eN

    0,1, 2, ... 1

    0,1, 2,.... 1

    u M

    v N

    1 1 2 ( )

    0 0

    1( , ) ( , )

    u x v yM N j

    M N

    u v f x y F u v eM

    0,1, 2, ... 1

    0,1,2,.... 1

    x M

    y N

  • 8/6/2019 Experimentos Virtuales de ptica en

    8/59

    El resultado de la transformacin es una imagen compleja, con lo que no se puederepresentar directamente. Para su representacin, hay varias opciones: en primerlugar representar parte real e imaginaria por separado, y en segundo lugarrepresentando modulo y fase tambin por separado. Esta segunda forma derepresentacin es la ms habitual.En general las imgenes tienen la mayor parte de la energa (mdulo) en lascomponentes frecuenciales bajas, y teniendo en cuenta que el origen de coordenadasse sita en la esquina superior izquierda de la imagen, la imagen trasformada tendrla mayor parte de la informacin en la esquina citada.Para facilitar la interpretacin visual del mdulo de la transformada, se hace unatraslacin 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 suvisualizacin.

    ( ', ') ,2 2

    N NG u v F u v

  • 8/6/2019 Experimentos Virtuales de ptica en

    9/59

    La variacin de la energa cuando hay un desplazamiento desde las bajas alas altas frecuencias y viceversa, es muy diferenciada. Esto provoca que elresultado de la representacin del mdulo sea prcticamente un punto en elcentro de la imagen.Para corregir este efecto, y poder visualizar mejor el mdulo, se aplica la

    o eracin lo aritmo:

    (2.11)

    donde c es una constante de escala.

    ( ', ') log[1 ( ', ') ]D u v c G u v

  • 8/6/2019 Experimentos Virtuales de ptica en

    10/59

    )a

    )c)b

  • 8/6/2019 Experimentos Virtuales de ptica en

    11/59

    2.3.1 Separabilidad:

    con (2.12)1 12 2

    0 0

    1( , ) ( , )

    u x v yN Nj jN N

    x y

    F u v e f x y eN

    0,1,2, ... 1

    0,1,2,.... 1

    u M

    v N

    con (2.13)

    1 12 2

    0 0

    1( , ) ( , )

    u x v yM Nj jN N

    u v

    f x y e F u v eN

    0,1, 2, ... 1

    0,1,2,.... 1

    x M

    y N

  • 8/6/2019 Experimentos Virtuales de ptica en

    12/59

    2.3.2 Traslacin:(2.14)

    (2.15)

    0 02

    0 0, ,

    u x v yj

    Nf x y e F u u v v

    0 02

    0 0, ( , )

    u x v yj

    Nf x x y y F u v e

    Para el caso particular de (desplazamiento del origende 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 02( ) ( 1)

    u x v yj

    j x y x yNe e

    , 1 ,2 2

    x y N N f x y F u v

    0 02

    Nu v

  • 8/6/2019 Experimentos Virtuales de ptica en

    13/59

    2.3.3 Periodicidad y simetra conjugada:

    Cuando f(x,y) es real, la transformada cumple la propiedad de simetraconjugada

    (2.19)( , ) ( , )F u v F u v

    Si se divide la imagen transformada en 4 cuadrantes (suponiendo que elorigen de frecuencias est en el centro de la imagen transformada), y laimagen de entrada es real (generalmente lo ser), el tercer cuadranteser igual al primer cuadrante rotado 180, y el cuarto cuadrante serigual al segundo rotado 180. Analticamente:

  • 8/6/2019 Experimentos Virtuales de ptica en

    14/59

  • 8/6/2019 Experimentos Virtuales de ptica en

    15/59

    2.3.8 Convolucin y Correlacin:

    Estas operaciones son de gran importancia cuando se hace tratamiento digital deimgenes en el dominio de la frecuencia.

    La convolucin bidimensional se puede expresar por:

    1 1

    , , , ,M N

    f x y g x y f m n g x m y n

    0,1,2,... 1x M

    Si se pasa esta expresin al domino de Fourier el producto de convolucin pasa aser un producto algebraico, simplificando as su clculo.

    0 0m n , , ,....y

    , , , ,f x y g x y F u v G u v

    , , , ,f x y g x y F u v G u v

  • 8/6/2019 Experimentos Virtuales de ptica en

    16/59

    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, ... 10,1,2,.... 1

    x M

    y N

    ser un producto algebraico, simplificando as su clculo.

    (2.35)

    (2.36)

    Una de las principales aplicaciones de la correlacin es la comparacin entreimgenes, es decir, determinar el grado de parecido entre un conjunto deimgenes 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

  • 8/6/2019 Experimentos Virtuales de ptica en

    17/59

    Al hablar de la DFT, ya habamos comentado que sta puede calcularsede forma eficiente mediante el uso de algoritmos rpidos como lo es lafast Fourier transform FFT.

    Sin un algoritmo eficiente que calcule la DFT, no sera posible usar latransformada de Fourier en el tratamiento de la imagen. La aplicacindirecta de la expresin de la DFT resultara tedioso. Cada punto en laimagen transformada (suponemos que es cuadrada) necesita Nmultiplicaciones complejas y N-1 sumas complejas (sin contar elclculo de las funciones base - senos y cosenos - .

    En total, necesitamos multiplicaciones complejas y N(N-1)

    sumas complejas.

    4N

  • 8/6/2019 Experimentos Virtuales de ptica en

    18/59

    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 laforma: donde n es un entero positivo.

    1

    0

    1( ) ( )

    Nux

    N

    x

    F u f x W N

    2

    jN

    NW e

    2nN

    Por tanto N se puede expresar como N=2M donde M es 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 queocupen las muestras en el array (arreglo) de entrada. Segn esto se tiene que:

    (2.39)

    2 1

    2

    0

    1( ) ( )

    2

    Mux

    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 Mu x u x

    M M

    x x

    F u f x W f x W M M

  • 8/6/2019 Experimentos Virtuales de ptica en

    19/59

    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 )

    Mux

    par M

    x

    F u f x W M

    .

    y usando las propiedades de periodicidad de las exponenciales, que estn incluidasen la expresin de la FFT, se tiene que y que, por tanto:

    (2.42)

    1

    0

    1(2 1)

    Mux

    impar M

    x

    F u f x W M

    u M u

    M MW W

    2 2

    u M u

    M MW W

    2

    1( ) [ ( ) ( ) ]

    2

    u

    par impar M F u M F u F u W

  • 8/6/2019 Experimentos Virtuales de ptica en

    20/59

    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 eimpares).

    El clculo de F(u) para u= 0,1,2,(N/2)-1 se consigue evaluando la ecuacin 2.40, mientrasque los puntos restantes se obtienen a travs de la ecuacin 2.42, pero esta vez sin necesidad devolver a evaluar las transformadas, puesto que stas ya haban sido evaluadas en el clculo de laecuacin 2.40.

    Aplicando este algoritmo de sucesivas divisiones, el nmero total de operaciones complejascambia 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 serN*p=8*3=24.

    2p

  • 8/6/2019 Experimentos Virtuales de ptica en

    21/59

    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 elarchivo data.jpg a una variable para su procesamiento en octave, entoncesse tendra que escribir en lnea de comandos:

    = .Usamos double para una doble precisin de la imagen de entrada.

    Una vez que la imagen esta contenida en una variable de Octave esposible utilizar las funciones para procesar la imagen. Por ejemplo, unafuncin que permite encontrar el tamao de la imagen es size :

    [m, n]=size (unigray);en donde m y n contendrn los valores de las dimensiones de la imagen.

  • 8/6/2019 Experimentos Virtuales de ptica en

    22/59

    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

  • 8/6/2019 Experimentos Virtuales de ptica en

    23/59

    En visin computacional es de utilidad para hacer reconocimiento de objetos o bienpara segmentar regiones, extraer los bordes de objetos (que en teora delimitan sustamaos y regiones). La funcin edgeda la posibilidad de obtener los bordes de laimagen.

    La funcin permite encontrar los bordes a partir de dos diferentes algoritmos quepueden ser elegidos, canny y sobel.

    >>un or e = e ge un gray, a gor mo ;

    Figura 3.2: Reconocimiento de borde de una imagen usando el algoritmo sobel.

  • 8/6/2019 Experimentos Virtuales de ptica en

    24/59

    3.4. Filtrado de una seal

    En general como filtrado se entiende a la modificacin de una seal o de unaimagen con el objetivo de realizar, por ejemplo, la extraccin de un objeto de unaescena, de reconocer un objeto en una escena, de eliminar el ruido, cambiar delcontraste, etc. Consideremos el resultado de la operacin de convolucin de unasealf(x) y la respuesta de impulso de un filtro h(x):

    ( ) ( ) ( ) ( ) ( )g x f x h x f h x d 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 lafuncin del filtro. Ntese, que la funcin del filtro es una funcin compleja

    DondeA(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 latransformada de Fourier de la seal.

    ( ) ( ) ( ) ( ),G u TF g x F u H u

    ( ) ( ) exp[ ( )]H u A u i u

  • 8/6/2019 Experimentos Virtuales de ptica en

    25/59

    3.5. Filtros para reconocimiento de un objeto:

    Por ejemplo, para realizar el reconocimiento de un objeto conocidof(x) en unaescena y su localizacin se utiliza la funcin del filtro H(u)= aF*(u) (matchedfilter, o filtro adaptado).

    3.5.1. Filtros para la eliminacin del ruido

    La aplicacin de filtros tambin permite mejorar la calidad de imgenesafectadas por ruido aleatorio. Por ejemplo, si el espectro del ruido se concentraen un rea limitada, donde el espectro de la imagen no contiene informacinimportante, es posible eliminar este rea o disminuir su intensidad aplicandolos filtros correspondientes. El filtro ms simple es H(u)= 0 en el rea donde elespectro del ruido es mximo y H(u)= 1 en el resto del plano de Fourier.

  • 8/6/2019 Experimentos Virtuales de ptica en

    26/59

    )a )b

    )c )d

  • 8/6/2019 Experimentos Virtuales de ptica en

    27/59

    )a

    )c)b

  • 8/6/2019 Experimentos Virtuales de ptica en

    28/59

    3.5.2. Filtros para deteccin de bordesLos bordes se pueden definir como un cambio brusco de intensidad en la imagen, ycorresponden a las frecuencias altas del espectro de Fourier. Por eso todos losmtodos de deteccin de bordes se basan en el aumento del peso de las frecuenciasaltas del espectro asociado a la imagen. Existen diferentes tcnicas para la deteccinde bordes: deteccin diferencial, "model fitting", y varios filtros de amplitud.

  • 8/6/2019 Experimentos Virtuales de ptica en

    29/59

    En particular el mtodo diferencial est basado en el clculo de las derivadas deprimer o de segundo orden de la imagen y en la comparacin del gradiente delborde con un umbral. El clculo de las derivadas de primer y segundo orden de lafuncin f( ) se realiza con las funciones del filtro H(u)= u y (u)= u2

    respectivamente. Esto se basa en la siguiente propiedad de la transformada deFourier

    (3.5)1 ( )[ ( ) ]( ) ( )n

    n n

    n

    d f xTF F u u x i

    Figura 3.7. a) Imagen original. b) Imagen filtrada con H(u)=u2.

  • 8/6/2019 Experimentos Virtuales de ptica en

    30/59

    3.5.3. Filtros de suavizamiento

    A veces es necesario suavizar el contraste de la imagen. Los filtros diseados paraesta tarea aumentan el peso de frecuencias bajas en el espectro de la imagen. Porejemplo, el filtro H(u)=exp(-au2) (Gaussiana) suaviza la imagen, tal y comopodemos observar en la figura siguiente.

    Figura 3.8. a) Imagen original. b) Imagen filtrada

  • 8/6/2019 Experimentos Virtuales de ptica en

    31/59

    Las funciones bsicas de OCTAVE para realizar este clculo son ffte ifft, queemplean el algoritmo de la Transformada Rpida de Fourier (FFT) y queadmiten como argumento un vector con los valores discretos de lascorrespondientes funciones. El listado completo del fichero de entrada seincluye en el programa 2.

    En OCTAVE, este centrado se consigue especificando rango adecuado defrecuencias y mediante el comando fftshift, como muestra el fichero deentrada con el que se han calculado las figuras 4.2 a) y b) y que se incluye en elprograma 1.

    Se realiza la TDF de una seal senoidal de f = 10 Hz de T0 = 1 s deduracin muestreada con N = 200 mediante el programa OCTAVE. Lafigura 4.3 muestra la funcin original, las partes real e imaginaria dela TDF, y la seal que se recupera mediante la Transformada InversaDiscreta de Fourier (TIDF) de la anterior

  • 8/6/2019 Experimentos Virtuales de ptica en

    32/59

    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');

  • 8/6/2019 Experimentos Virtuales de ptica en

    33/59

    a) b)

  • 8/6/2019 Experimentos Virtuales de ptica en

    34/59

    Programa 2. Fichero de OCTAVE para la TDF de una seal senoidal def= 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= t x1 ; # T. e Fourier y2=ifft(y1); # T. Inversa de Fourier #gset term post 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;

  • 8/6/2019 Experimentos Virtuales de ptica en

    35/59

    )a )b

    )d)c

  • 8/6/2019 Experimentos Virtuales de ptica en

    36/59

    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

  • 8/6/2019 Experimentos Virtuales de ptica en

    37/59

    )a )c)b

    )e)d

  • 8/6/2019 Experimentos Virtuales de ptica en

    38/59

    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

    or = : proceso para evar as guras . a y a una ma r z cua ra a x 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).

  • 8/6/2019 Experimentos Virtuales de ptica en

    39/59

    )b)a

    )c

  • 8/6/2019 Experimentos Virtuales de ptica en

    40/59

    Programa 5. Programa de deteccin de objetos: En este caso se muestra unaimagen 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 ay 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);

    =, , 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).

  • 8/6/2019 Experimentos Virtuales de ptica en

    41/59

    )b

    )a

  • 8/6/2019 Experimentos Virtuales de ptica en

    42/59

    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)=X2+Y2 .

    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 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.

  • 8/6/2019 Experimentos Virtuales de ptica en

    43/59

  • 8/6/2019 Experimentos Virtuales de ptica en

    44/59

    La mayora de los sistemas pticos para procesado de la informacin, estn

    basados en el fenmeno de la difraccin.Normalmente se entiende por difraccinla perturbacin que experimentan las ondas cuando se propagan. Consideremos ladifraccin de una onda luminosa coherente y monocromtica por una diapositivafotogrfica plana que se encuentra en una antalla opaca, tal y como se muestra enla siguiente figura:

    Figura 5.1: Geometra de la difraccin.

  • 8/6/2019 Experimentos Virtuales de ptica en

    45/59

    La diapositiva plana est en un sistema de coordenadas rectangulares (x0,y0),mientras que el plano de observacin, que tambin est en un sistema decoordenadas rectangulares (x,y), es paralelo al plano de la diapositiva (planoobjeto) a una distanciaz.

    La presencia del objeto en el plano (x0,y0) cambia la amplitud compleja de la luzque ilumina la pantalla, 0(x0,y0). Para conocer la distribucin de amplitud en elplano justo detrs de la diapositiva e (x0,y0) tenemos que saber la funcin detransferencia T(x0,y0) del objeto, que en general es una funcin compleja.

    Para calcular la amplitud compleja en el plano de observacin (salida) s(x,y) serequiere resolver la ecuacin de Helmholtz:

    con condiciones inciales ( 0,y0,0) = e ( 0, 0), donde k=2p/ y es la longitud deonda. Esta ecuacin describe la propagacin de ondas monocromticas en elespacio 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

    2 2( , , ) ( , , ) 0x y z k x y z

  • 8/6/2019 Experimentos Virtuales de ptica en

    46/59

    Para resolver esta ecuacin hacemos la transformada de Fourier

    bidimensional de la amplitudY( ,y,z) con respecto de , yen un plano

    Haciendo la transformada de Fourier inversa representamos la amplitudcomo una su er osicin de ondas lanas

    Introduciendo esta representacin en la ecuacin de Helmoltz se obtiene

    cuya solucin es

  • 8/6/2019 Experimentos Virtuales de ptica en

    47/59

    5.1.1 Difraccin de Fresnel Si el espectro angular de la amplitud compleja e(x0,y0) es casi nulo para |kx|,

    |ky|>|kc| (donde kc =2/amin y amin es el lmite de resolucin de la amplitud complejaen el plano objetoz=0) y kc

  • 8/6/2019 Experimentos Virtuales de ptica en

    48/59

    La integral de Fresnel es la siguiente

    on e se pue e ver que excep o por os ac ores mu p ca vos eamplitud y de fase, s (x,y) es la transformada de Fourier de

    e (x0,y0)exp(ik(x02+y0

    2)/2z).

  • 8/6/2019 Experimentos Virtuales de ptica en

    49/59

    5.1.2 Difraccin de Fraunhofer

    Si la distancia z>> k(x02

    + 02

    )max/2=ka2

    max/2, donde x0max, 0 axson los tamaoshorizontales y verticales del objeto difractado, respectivamente, el factor de fasecuadrtica exp( k( 02+y02)/2z) que aparece en la integral anterior se haceprcticamente igual a la unidad, por lo que la expresin de la amplitud compleja sesimplifica 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( 0, 0) representada en los trminos de frecuencias espaciales (kx/z, ky/z), eincluyendo los factores multiplicativos de amplitud y de fase cuadrtica. Enparticular,se obtiene en intensidad una respuesta proporcional al mdulo cuadrado

    de la transformada de Fourier de e ( 0, 0)

  • 8/6/2019 Experimentos Virtuales de ptica en

    50/59

    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 mmy 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 elespectro se ensancha enormemente.

    Para realizar la observacin de la transformada de Fourier ptica se utilizan normalmente los sistemaspticos 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 distintosregmenes.

  • 8/6/2019 Experimentos Virtuales de ptica en

    51/59

    Programa 7. Programa Fraunhofer: En este caso se simula la difraccin de Fraunhoferusando 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 = 1:N 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,[ ]);

  • 8/6/2019 Experimentos Virtuales de ptica en

    52/59

    Figura 5.3: Difraccion de Fraunhofer para una rendija rectangular vertical.

    Figura 5.4: Difraccion de Fraunhofer para una rendija cuadrada.

  • 8/6/2019 Experimentos Virtuales de ptica en

    53/59

  • 8/6/2019 Experimentos Virtuales de ptica en

    54/59

    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 closeall

    #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; 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);

  • 8/6/2019 Experimentos Virtuales de ptica en

    55/59

    )b)a

    )a)b

  • 8/6/2019 Experimentos Virtuales de ptica en

    56/59

    )a )c)b

  • 8/6/2019 Experimentos Virtuales de ptica en

    57/59

    Basndose en las operaciones de transformacin de Fourier. se puede realizar el filtradoptico que es un procedimiento bsico para el procesado de la informacin. Engeneral la mayora de las tareas del procesado tales como deteccin y reconocimiento deimgenes, tratamiento de la calidad de la imagen, reduccin de ruido, deteccin debordes etc., estn relacionados con el proceso de filtrado.

    La FFT es una herramienta de anlisis muy potente y manejable. Constituye uno de losmayores desarrollos en la tecnologa del tratamiento de imgenes. En la implementacinde su algoritmo, las entradas y las salidas estn relacionadas mediante una simpleinversin de bits.

    Evaluar directamente la DFT bidimensional de una ima en NxNsu one efectuar N4

    operaciones complejas, mientras que con la FFT, se necesitan nicamente N2Alog2N.

    Se ha usado el programa Qt-Octave para realizar clculos de ptica Fourier. Esteprograma a la vez que es de uso libre posee un simple lenguaje de programacin, lo cualle permite a los permite realizar clculos numricos precisos sin necesitar atrasarse pordificultades en las cosas especficas de los clculos numricos.

    Hemos mostrado cmo simular en un ordenador personal, la imagen completa dedifraccin Fresnel y de Fraunhofer para varios tipos de rendijas: como cuadrada,

    rectangular y circular.

    Este tipo de simulaciones pueden suplementar un experimento de difraccin autnticohecho en el laboratorio y de poder discutir resultados obtenidos en ambos casos.

  • 8/6/2019 Experimentos Virtuales de ptica en

    58/59

    [1] Mara Luisa Calvo Padilla,Tatiana alieva, Jose A. Rodrigo, Daniel Rodriguez Merlo,Timour Alieva;Laboratorio Virtual de ptica, Departamento de ptica, Facultad deCiencias 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 utilizandoMatLABY el Toolbox de Procesamiento Digital de Imgenes

    4 uan os Garca Ro o Herramientas en GNU/Linux ara estudiantes universitarios

    :Gnu/Octave: clculo numrico por ordenador

    [5] K.M. Abedin, M.R.Islam, A.F.M.Y. Haider, Computer simulation of Fresnel diffractionfrom rectangular apertures and obstacles using the Fresnel integrals approach.

    [6] S. M. Schultz,Using MATLAB to help teach Fourier optics, Deparment of Electricaland Computer Engineering, Brigham Young University, Provo, UT USA.

    [7] http://campusvirtual.uma.es/tdi/alumnos/tdi22/index.html

    [8] http://www.physicsforums.com/difractionfresnel

  • 8/6/2019 Experimentos Virtuales de ptica en

    59/59

    !Gracias Totales!

    Universidad Nacional deIngeniera UNI