Tp2 Vision

15
Juan Eduardo Segovia Calder´on Mart´ ın Nobl´ ıa Visi´onArtificial Profesor: Ing. Fabi´ an M. Sanfilippo Instructor: Ing. Javier Soldato

description

Vision artificial UNQ tp2

Transcript of Tp2 Vision

  • Juan Eduardo Segovia Calderon

    Martn Nobla

    Vision Artificial

    Profesor: Ing. Fabian M. Sanfilippo

    Instructor: Ing. Javier Soldato

  • To Euler1

    1Leonhard Euler (cuyo nombre completo era Leonhard Paul Euler) fue un respetado matematico y fsico. Nacio el 15 de abril de 1707en Basilea (Suiza) y murio el 18 de septiembre de 1783 en San Petersburgo (Rusia). Se lo considera el principal matematico del sigloXVIII y como uno de los mas grandes de todos los tiempos.

  • Indice

    1. Resumen 4

    2. Realce / filtros 4

    2.1. Ejemplos de modificacion de histograma (brillo y contraste) . . . . . . . . . . . . . . . . . . . . . . . . 4

    2.2. Modificar brillo y contraste (imagenes tp N1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3. Ecualizacion por histograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    2.4. Falso color de una imagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    2.5. Utilizacion de Laplacian Sharpening y Hight Boost Filter . . . . . . . . . . . . . . . . . . . . . . . . . 8

    2.6. Uso de la magnitud del gradiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    2.7. Filtro promediador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    3. Restauracion 12

    3.1. Reconstruccion de imagen en movimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    4. Conclusion 13

  • Indice de figuras

    1. Modifcacion de contraste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    2. Modifcacion de brillo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    3. Modifcacion de contraste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    4. Modifcacion de contraste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    5. Aplicacion de histeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    6. Falso color de una imagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    7. Apliacion de Filtro Laplaciano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    8. Apliacion de Filtro Laplaciano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    9. Apliacion de Filtro magnitud del gradiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    10. Aplicacion del filtro promediador repetidas veces sobre la misma imagen . . . . . . . . . . . . . . . . . 12

    11. Reconstruccion de una imagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

  • Vision ArtificialTp N2 Martn NoblaJuan Eduardo Segovia Calderon1. Resumen

    En el presente trabajo practico, vamos a tratar los siguientes temas relacionados al prosesamiento espacial deimagenes:

    Convolucion discreta en dos dimensiones.

    Modificacion de contraste y brillo en imagenes.

    Aplicacion de filtros mediante mascaras.

    Algoritmo de reconstruccion de una imagen.

    2. Realce / filtros

    El prosesamiento espacial de imagenes esta formado por aquellas tecnicas y/o algoritmos que operan direc-tamente sobre los valores de intensidad de cada pxel, esta transformaciones la podemos anotar matematicamentecomo:

    g(x; y) = T (f(x; y)) (1)

    Donde f(x; y) es la imagen original, g(x; y) es la imagen resultante y T es una transformacion.

    2.1. Mostrar mediante ejemplos los efectos que se producen en el histograma de unaimagen el modificarle su brillo y su contraste (para ello utilizar Matlab ).

    Para modificar el contraste y el brillo de una imagen utilizando el utilitario Matlab, utilizamos la funcionimadjust cuyos parametros de entrada son: g=imadjust(f,[inf ent sup ent],[inf sal sup sal],gamma)

    Imagen normal Imagen con ajuste de contraste

    0

    500

    1000

    1500

    2000

    0 100 200

    0

    1000

    2000

    3000

    0 100 200

    Figura 1: Modifcacion de contraste

    Universidad Nacional de Quilmes 4 1 cuatrimestre 2010

  • Vision ArtificialTp N2 Martn NoblaJuan Eduardo Segovia Calderon

    y la modificacion del brillo queda de la siguiente manera:

    Imagen normal Imagen con ajuste de brillo

    0

    500

    1000

    1500

    2000

    0 100 200

    0

    1000

    2000

    0 100 200

    Figura 2: Modifcacion de brillo

    El criterio utilizado para alterar el nivel de brillo es el de elevar los tonos mas bajos de luminocidad medianteuna transformacion no lineal(ver [1]), dado que los valores altos de luminocidad no se elevan (puesto que de seras, perderamos informacion) Otra forma de cubir el brillo es elevando todos los valores una determinada constantesufriendo una perdida de informacion en los lugares donde la luminocidad es alta. Este efecto se conoce comosaturacion de la imagen.

    2.2. Modificar el brillo y contraste a las imagenes tomadas en el tp N1 de manera quese puedan apreciar la mayor cantidad de detalles (tener en cuenta el histograma).

    Aplicando la misma trasformacion y utilizando criterios similares para las imagenes tomadas para el tp1, losresultados son:

    Universidad Nacional de Quilmes 5 1 cuatrimestre 2010

  • Vision ArtificialTp N2 Martn NoblaJuan Eduardo Segovia Calderon

    0

    0.5

    1

    1.5

    2

    2.5x 10

    4

    0 100 200

    0

    1

    2

    3

    x 104

    0 100 200

    Figura 3: Modifcacion de contraste

    0

    5000

    10000

    15000

    0 50 100 150 200 250

    0

    5000

    10000

    15000

    0 50 100 150 200 250

    Figura 4: Modifcacion de contraste

    2.3. Mostrar mediante ejemplos los efectos que se producen en el histograma de unaimagen al aplicarle una ecualizacion por histograma (utilizar la funcion histeq)

    Aplicando la funcion histeq a una imagen el resultado obtenido es:

    Universidad Nacional de Quilmes 6 1 cuatrimestre 2010

  • Vision ArtificialTp N2 Martn NoblaJuan Eduardo Segovia Calderon

    0

    500

    1000

    1500

    2000

    0 100 200

    0

    500

    1000

    1500

    2000

    2500

    0 100 200

    Figura 5: Aplicacion de histeq

    2.4. Desarollar una funcion que permita realizar el efecto de falso color en una imagendada. Para las curvas de falso color utilizar como gua Ejemplo RGB:bmp

    Utilizamos la siguiente trasnsformaciones, una para cada canal del modelo RGB:

    La funcion desarrollada para realizar el efecto de falso color es :

    %%I=input( 'Path de la imagen .bmp (entre comillas simples): ' );if (strcmp(I, 'Espectro' ));

    ImgGray=zeros(20,256, 'uint8' );for a=1:20,

    for b=1:256,ImgGray(a,b)=b 1;

    endend

    elseImgGray=imread(I, 'bmp' );

    end

    [A,B]=size(ImgGray);figure(1);imshow(ImgGray);Imgfc=zeros(A,B,3, 'uint8' );

    for a=1:A,for b=1:B,

    if (ImgGray(a,b) 43)Imgfc(a,b,1)=255;Imgfc(a,b,2)=round((ImgGray(a,b) * (255/43)));

    Universidad Nacional de Quilmes 7 1 cuatrimestre 2010

  • Vision ArtificialTp N2 Martn NoblaJuan Eduardo Segovia Calderon

    endif (43

  • Vision ArtificialTp N2 Martn NoblaJuan Eduardo Segovia Calderon

    Como sabemos la primera derivada de una funcion se puede aproximar como:

    f

    x= f(x+ 1) f(x) (3)

    Similarmente podemos extender la aproximacion para una derivada de segundo orden:

    2f

    x2= f(x+ 1) + f(x 1) 2f(x) (4)

    Luego el operador Laplaciano esta definido para una funcion de dos variables (x, y) como:

    2 =2

    x2+

    2

    y2(5)

    Ahora aplicando la segunda derivada parcial a la funcion f(x, y) con respecto a x dos veces queda:

    2f(x; y)

    2x2= f(x+ 1; y) + f(x 1; y) 2f(x; y) (6)

    De la misma manera para la variable y.

    2f(x; y)

    2y2= f(x; y + 1) + f(x; y 1) 2f(x; y) (7)

    Entonces la implementacion digital del Laplaciano de dos variables es la suma de las ecuaciones (6) y (7)

    2f(x; y) = f(x+ 1; y) + f(x 1; y) + f(x; y + 1) + f(x; y 1) 4f(x; y) (8)

    Si tomamos un pxel y sus vecinos que se encuentran a una distancia unitaria , graficamente:

    f(x 1; y 1) f(x 1; y) f(x 1; y + 1)

    f(x; y 1) f(x; y) f(x; y + 1)

    f(x+ 1; y 1) f(x+ 1; y) f(x+ 1; y + 1)

    (9)

    Asi podemos ver que las posibles mascaras para el Lapaciano digital son:

    0 1 0

    1 4 1

    0 1 0

    1 1 1

    1 8 1

    1 1 1

    0 1 0

    1 4 1

    0 1 0

    1 1 1

    1 8 1

    1 1 1

    (10)

    El laplaciano al estar definido como una suma de derivadas desacopladas lo que genera al convolucionarlo con unaimagen, es computar a todos los pxeles que estan en un maximo nivel con respecto a sus vecinos mas proximos, asise genera una imagen que contiene los lugares donde hay un cambio de niveles de pxel importante, habitualmentea este filtro se lo utiliza para detectar bordes. Aplicamos este filtro a una imagen y el resultado es:

    Universidad Nacional de Quilmes 9 1 cuatrimestre 2010

  • Vision ArtificialTp N2 Martn NoblaJuan Eduardo Segovia Calderon

    (a) (b)

    Figura 7: Apliacion de Filtro Laplaciano

    A Hight Boost Filter esta definido para cualquier punto (x; y) de la siguiente manera:

    fhb(x; y) = Af(x; y) f(x; y) (11)

    Donde A es una constante mayor que uno (A 1)y f(x; y) es la version filtrada de la imagen original y laimplementacion digital es :

    0 1 0

    1 A+ 4 1

    0 1 0

    1 1 1

    1 A+ 8 1

    1 1 1

    (12)

    Aplicamos este filtro a una imagen y nos dio como resultado:

    (a) (b)

    Figura 8: Apliacion de Filtro Laplaciano

    Universidad Nacional de Quilmes 10 1 cuatrimestre 2010

  • Vision ArtificialTp N2 Martn NoblaJuan Eduardo Segovia Calderon2.6. Mostrar un ejemplo de la aplicacion de la magnitud del gradientepara resaltar

    bordes

    El filtro que utiliza la primera derivada, es en este caso el gradiente positivo o sea su modulo matematicamente:

    |~f |= |[Gx;Gy]T | = |[

    f

    x;f

    y]T | (13)

    Y explcitamente:

    |~f |= [(f

    x)2 + (

    f

    y)2]

    1

    2 (14)

    La implementacion digital de este filtro es :

    1 2 1

    0 0 0

    1 2 1

    1 0 1

    2 0 2

    1 0 1

    (15)

    Aplicamos este filtro a una imagen y nos dio :

    (a) (b)

    Figura 9: Apliacion de Filtro magnitud del gradiente

    2.7. Aplicar el filtro promediador a dos imagenes en escala de grises distintas

    El filtro promediador simplemente es el promedio de los pxeles vecinos al central su mascara es la siguiente:

    1

    9

    1 1 1

    1 1 1

    1 1 1

    (16)

    Aplicamos este filtro a una imagen y como resultado obtuvimos:

    Universidad Nacional de Quilmes 11 1 cuatrimestre 2010

  • Vision ArtificialTp N2 Martn NoblaJuan Eduardo Segovia Calderon

    (a) (b) (c)

    (d) (e) (f)

    Figura 10: Aplicacion del filtro promediador repetidas veces sobre la misma imagen

    3. Restauracion

    3.1. Realizar un algoritmo que permita reconstruir la imagen en movimiento que setomo en el punto tres del tp N1Las camaras de barrido entrelazado ejecutan una lectura de imagenes de filas pares y filas impares alternada-

    mente, cuando se intenta capturar una imagen en movimiento aparece un efecto de distorcion en el cual la imagencapturada por las filas impares esta desfasada respecto de la imagen de impares. Para corregr este efecto es necesariodescomponer la imagen en sus lineas pares e impares y luego mediante desplazamientos horizontales y verticalespodemos mejorar la imagen y obtener una aproximacion mas real a la imagen capturada. El script de Matlab querealiza la reconstruccion de la imagen es:

    %%%I=input('Ingrese el path del archivo .bmp (Entre comillas simples) :');ImgGray=double(imread( '/home/juan/Escritorio/facu/Vision artificial/Juan/t p2/Imagenes TP2/Mov.bmp' , 'bmp' ));[A,B]=size(ImgGray);fc=3;fct=0.00fcv=7;ImgCor=zeros(A+40,B+80);for a=1:A

    if rem(a,2) 6=0 && a

  • Vision ArtificialTp N2 Martn NoblaJuan Eduardo Segovia Calderon

    La imagen y su reconstruccion:

    (a) (b)

    Figura 11: Reconstruccion de una imagen

    4. Conclusion

    A traves de este estudio observamos una cantidad importante de herramientas que existen para el procesa-miento de imagenes digitales, que a su vez son el pilar fundamental de las tecnicas de vision artificial. Esto nos abrelas puertas a seguir desarrollando topicos mas avanzados en las tecnicas de analisis y procesamiento, programandocon las capacidades adquiridas hasta entonces.

    Universidad Nacional de Quilmes 13 1 cuatrimestre 2010

  • Vision ArtificialTp N2 Martn NoblaJuan Eduardo Segovia CalderonReferencias

    [1] Gonzalez, Rafael C./ Richard E. Woods ,Digital Image Processing ,Editorial Prentise Hall, ISBN 0-201-18075-8

    [2] Machine Vision, Ramesh Jain, Rangachar Kasturi, Brian G. Schunck, ISBN 0-07-032018-7

    [3] Guidelines for writing clean and fast code in MATLAB, Nico Schlomer[4] Code Vectorization Guide. 2009, url:http://www.mathworks.com/support/tech-notes/1100/1109.shtml

    [5] Matrix Indexing in MATLAB, url:http://www.mathworks.com/company/newsletters/digest/sept01/matrix.html

    Universidad Nacional de Quilmes 14 1 cuatrimestre 2010

    http://www.mathworks.com/support/tech-notes/1100/1109.shtmlhttp://www.mathworks.com/company/newsletters/digest/sept01/matrix.html

    ResumenRealce / filtrosEjemplos de modificacion de histograma (brillo y contraste)Modificar brillo y contraste (imagenes tp N1)Ecualizacin por histogramaFalso color de una imagenUtilizacin de Laplacian Sharpening y Hight Boost FilterUso de la magnitud del gradiente Filtro promediador

    RestauracinReconstruccin de imagen en movimiento

    Conclusin