9
Taller 3 - Morfolog´ ıa matem´ atica de im´ agenes ardenas, Juan Pablo., Mendieta, Sa´ ul Gregory. od. 285738, C´ od. 285754 Universidad Nacional de Colombia Resumen—En este taller estudiaremos la morfolog´ ıa ma- tem´ atica aplicada al procesamiento de im´ agenes, con el uso de la herramienta OpenCV. Analizaremos distintas operaciones morfol´ ogicas que se pueden aplicar a una imagen, con base en un elemento estructurante definido. Al final desarrollaremos algoritmos m´ as complejos que incluyen combinaciones de las operaciones analizadas. Index Terms—Morfolog´ ıa, Opencv, adelgazamiento, esqueleto, apertura, cierre, top hat, black hat I. I NTRODUCCI ´ ON La Morfolog´ ıa Matem´ atica es una t´ ecnica de procesamiento de im´ agenes que se basa en operaciones de conjuntos, mediante el uso de un comparador, denominado Elemento Estructurante. Constituye mecanismos de extracci´ on de componentes de imagen de gran utilidad para la representaci ´ on y descripci´ on de la forma de las regiones. En el taller estudiaremos las operaciones morfol´ ogicas de dilataci´ on y erosi´ on, y veremos c´ omo ´ estas pueden afectar a una imagen. Tambi´ en analizaremos transformaciones morfol´ ogicas avanzadas, como las operaciones de apertura, cierre, gradiente, “top hat” y “black hat”; su implementaci´ on en odigo, as´ ı como su efecto en una imagen. Estas operaciones se basan en las dos operaciones b´ asicas (dilataci´ on y erosi´ on). Teniendo como base estas transformaciones, podremos desarrollar algoritmos a´ un m´ as complejos, como la extracci´ on de fronteras, el llenado de regiones, el adelgazamiento, el engrosamiento, el esqueleto, el filtro morfol´ ogico, etc. Para el presente taller se pretende implementar, como una funci´ on de OpenCV, los algoritmos morfol´ ogicos de adelgazamiento y esqueleto vistos en clase para im´ agenes binarias. Se evaluar´ a adem´ as el comportamiento de estos algoritmos en im´ agenes de niveles de gris. Posteriormente se estudiar´ an las funciones vistas en el taller, cuando son aplicadas a im´ agenes reales. Se usar´ an adem´ as las im´ agenes planteadas para el desarrollo del proyecto. II. MARCO TE ´ ORICO II-A. Transformada Hit or Miss En la morfolog´ ıa matem´ atica hay dos operaciones princi- pales mediantes las cuales se pueden llegar a realizar una serie m´ as de operaciones, estas se les conoce con el nombre de erois´ on y dilataci´ on, las cuales se definen mediante las siguientes ecuaciones: Aunque bien esta es la base para otras operaciones, las definiciones anteriores se tienen en cuenta para im´ agenes bina- rias de fondo blanco. Si bien se han extendido posteriormente a im´ agenes en escala de grises y dem´ as, el alcance de este informe no llega a estudiar en profundidad estas operaciones. Con estas operaciones plenamente establecidas, se crean unas as que son la combinaci´ on simultanea de la dilataci´ on con la erosi´ on, estas nuevas operaciones son la apertura y cierre de im´ agenes cuya definici´ on se muestra en las siguientes ecuaciones: Finalmente de estas cuatro operaciones anterioresse llega a la transformada Hit or Miss, la cual est´ a orientada a la detecci´ on de formas con el empleo de un conjunto de elementos estructurantes que representan la configuraci´ on que se quiere encontrar. Su definici´ on se ve en la siguiente ecuaci´ on: II-B. Adelgazamiento De la transformada Hit or Miss se pueden crear varios procesos m´ as, es el caso del adelgazamiento de la imagen, con la cual se pretende transformar una imagen digital en una imagen simplificada, que a vista de un ser humano parecer´ ıa as delgada que la imagen original. Su expresi´ on en la que se ve en la siguiente ecuaci´ on:

Taller 3 Morfologia - Visión de máquina

Embed Size (px)

DESCRIPTION

Taller de Visión de máquina para uso de morfología en procesamiento de imagenes

Citation preview

  • Taller 3 - Morfologa matematica de imagenes

    Cardenas, Juan Pablo., Mendieta, Saul Gregory.Cod. 285738, Cod. 285754

    Universidad Nacional de Colombia

    ResumenEn este taller estudiaremos la morfologa ma-tematica aplicada al procesamiento de imagenes, con el usode la herramienta OpenCV. Analizaremos distintas operacionesmorfologicas que se pueden aplicar a una imagen, con baseen un elemento estructurante definido. Al final desarrollaremosalgoritmos mas complejos que incluyen combinaciones de lasoperaciones analizadas.

    Index TermsMorfologa, Opencv, adelgazamiento, esqueleto,apertura, cierre, top hat, black hat

    I. INTRODUCCION

    La Morfologa Matematica es una tecnica de procesamientode imagenes que se basa en operaciones de conjuntos,mediante el uso de un comparador, denominado ElementoEstructurante. Constituye mecanismos de extraccion decomponentes de imagen de gran utilidad para la representaciony descripcion de la forma de las regiones. En el tallerestudiaremos las operaciones morfologicas de dilatacion yerosion, y veremos como estas pueden afectar a una imagen.

    Tambien analizaremos transformaciones morfologicasavanzadas, como las operaciones de apertura, cierre,gradiente, top hat y black hat; su implementacion encodigo, as como su efecto en una imagen. Estas operacionesse basan en las dos operaciones basicas (dilatacion y erosion).Teniendo como base estas transformaciones, podremosdesarrollar algoritmos aun mas complejos, como la extraccionde fronteras, el llenado de regiones, el adelgazamiento, elengrosamiento, el esqueleto, el filtro morfologico, etc.

    Para el presente taller se pretende implementar, comouna funcion de OpenCV, los algoritmos morfologicos deadelgazamiento y esqueleto vistos en clase para imagenesbinarias. Se evaluara ademas el comportamiento de estosalgoritmos en imagenes de niveles de gris. Posteriormentese estudiaran las funciones vistas en el taller, cuando sonaplicadas a imagenes reales. Se usaran ademas las imagenesplanteadas para el desarrollo del proyecto.

    II. MARCO TEORICO

    II-A. Transformada Hit or Miss

    En la morfologa matematica hay dos operaciones princi-pales mediantes las cuales se pueden llegar a realizar unaserie mas de operaciones, estas se les conoce con el nombrede eroison y dilatacion, las cuales se definen mediante lassiguientes ecuaciones:

    Aunque bien esta es la base para otras operaciones, lasdefiniciones anteriores se tienen en cuenta para imagenes bina-rias de fondo blanco. Si bien se han extendido posteriormentea imagenes en escala de grises y demas, el alcance de esteinforme no llega a estudiar en profundidad estas operaciones.Con estas operaciones plenamente establecidas, se crean unasmas que son la combinacion simultanea de la dilatacion conla erosion, estas nuevas operaciones son la apertura y cierrede imagenes cuya definicion se muestra en las siguientesecuaciones:

    Finalmente de estas cuatro operaciones anterioresse llegaa la transformada Hit or Miss, la cual esta orientada ala deteccion de formas con el empleo de un conjunto deelementos estructurantes que representan la configuracionque se quiere encontrar. Su definicion se ve en la siguienteecuacion:

    II-B. Adelgazamiento

    De la transformada Hit or Miss se pueden crear variosprocesos mas, es el caso del adelgazamiento de la imagen,con la cual se pretende transformar una imagen digital en unaimagen simplificada, que a vista de un ser humano pareceramas delgada que la imagen original. Su expresion en la quese ve en la siguiente ecuacion:

  • II-C. Esqueleto

    Se define como la minina representacion de una imagen enpixeles, de tal forma que a partir de esta mnima cantidad depixeles se puede reconstruir completamente toda la imagenoriginal. El esqueleto de una imagen tiene una expresionmatematica que se puede ver en las siguientes ecuaciones:

    II-D. cvCreateStructuringElementEx

    Es una funcion que crea un elemento estructurante. EnOpenCV se maneja la siguiente estructura:

    void cvCreateStructuringElementEx(int cols, int rows, intanchor x, int anchor y, int shape, int* values=NULL )

    Los parametros de la estructura son los siguientes:

    int cols - es el ancho del elemento estructuranteint rows - es la altura del elemento estructuranteint anchor x - es el corrimiento del origen en xint anchor y - es el corrimiento del origen en yint shape - es la forma del elementoint* values=NULL - es una especificacion adicional dela forma del elemento

    II-E. cvDilate

    Es una funcion que dilata una imagen usando un elementoestructurante especfico. En OpenCV se maneja la siguienteestructura:

    void cvDilate(const CvArr* src, CvArr* dst,IplConvKernel* element=NULL, int iterations=1 )

    Los parametros de la estructura son los siguientes:

    const CvArr* src - es la imagen de entradaCvArr* dst - es la imagen de salidaIplConvKernel* element=NULL - es el elemento estruc-turanteint iterations=1 - es el numero de veces que se aplica ladilatacion

    II-F. cvErode

    Es una funcion que dilata una imagen usando un elementoestructurante especfico. En OpenCV se maneja la siguienteestructura:

    void cvErode(const CvArr* src, CvArr* dst,IplConvKernel* element=NULL, int iterations=1)

    Los parametros de la estructura son los siguientes:

    const CvArr* src - es la imagen de entradaCvArr* dst - es la imagen de salidaIplConvKernel* element=NULL - es el elemento estruc-turanteint iterations=1 - es el numero de veces que se aplica ladilatacion

    II-G. cvMorphologyEx

    Es una funcion que realiza transformaciones morfologicasavanzadas.. En OpenCV se maneja la siguiente estructura:

    void cvMorphologyEx(const CvArr* src, CvArr* dst,CvArr* temp, IplConvKernel* element, int operation, intiterations=1 )

    Los parametros de la estructura son los siguientes:

    const CvArr* src - es la imagen de entradaCvArr* dst - es la imagen de salidaCvArr* temp - es una imagen temporalIplConvKernel* element=NULL - es el elemento estruc-turanteint operation - es el tipo de operacion morfologicaint iterations=1 - es el numero de veces que se aplica ladilatacion

    III. PROCEDIMIENTO

    III-A. Creacion del Entorno Grafico

    Partiendo del taller anterior, se toma la umbralizacionbinaria inversa, la cual separa la imagen en dos tonos (blancoy negro), de los cuales el blanco es el que nos interesarealizar las diversas operaciones y es conveniente en estecaso que los caracteres a procesar tengan dicha tonalidad,para efectos deel proyecto final. Tambien podemos aplicarlas operaciones realizadas en este taller a imagenes a escalade grises, por lo que se tomara como base una figura con loscaracteres coreanos correspondientes a la palabra gracias,y su respectiva umbralizacion. Dichas imagenes se puedenapreciar en la figura 1.

    Se pretende crear un programa que realice los procesos deadelgazamiento, esqueleto, dilatacion y erosion.

    Tambien Se quiere realizar diferentes operacionesmorfologicas tales como apertura, cierre, gradiente, TopHat y Black Hat, aparte de hacer un filtro morfologico apartir dee una apertura seguida de un cierre.

    En la figura 2 se muestra el entorno grafico de dichoprograma.

  • a)

    b)

    Figura 1. Imagenes a analizar - Poster con la palabra Gracias(a) En escalade Grises (b) Con umbralizacion inversa.

    III-B. Adelgazamiento

    Para el adelgazamiento se realizo un Spin Box el cualpresenta la cantidad de iteraciones deseadas para el adelga-zamiento, proceso que realiza un paneo Hit or Miss de 8rotaciones de un elemento estructurante, drefinidas en variasmatrices. Para realizar el Hit or Miss se realizo un procesode filtrado de elementos estructurantes, tomando uno para lamatriz de la imagen, y otra para el complemento de esta,de tal forma que al aplicar una erosion a cada matriz, secomparo cada pixel entre las dos matrices y se guardaron lascoincidentes en una matriz. Dicha matriz se resta a la matrizde la imagen y el resultado muestra el adelgazamiento. Esteproceso se realiza las suficientes veces a si misma segun elnumero de iteraciones deseadas. En las figuras 3 y 4 se puedeapreciar el resultado a imagen binaria y a escala de grises dada

    Figura 2. Entorno grafico del programa.

    a 5, 10 y 20 iteraciones.

    III-C. Esqueleto

    Para la operacion de esqueleto se tomo un proceso de while,en el cual, cuando se presente una erosion en la que se de comoresultado una matriz totalmente vacia salga, mientras que nose de esa condicion se realiza una operacion de apertura, yse resta a la matriz erosionada, guardando el resultado en unvector de matrices. Despues de salir del ciclo, se compara cadapixel con los elemnetos del vector en un proceso iterativo,resultando si en alguno de los casos se da un pixel en zonablanca. En las figuras 5 y 6 se puede apreciar el resultado aimagen binaria y a escala de grises.

    III-D. Dilatacion y Erosion

    Las operaciones de dilatacion erosion determinadas por lasfunciones cvDilate y cvErode al operar se puede apreciar suaplicacion en las figuras 7 y 9 para imagenes binarias y lasfiguras 8 y 10 para imagenes a escala de grises.

    III-E. Operaciones morfologicas

    Las operaciones morfologicas se realizaron por mediode la funcion cvMorphologyEx, la cual se tomaron comoespecificaciones un kernel definido de la forma Kernel = cv-CreateStructuringElementEx(5,5,1,1,CV SHAPE ELLIPSE);,y tomando una imagen temporal y de salida definidas a partirdel tamano y tipo de la imagen a procesar.

    La primera operacion que se realizo, mediante laespecificacion CV MOP OPEN, fue la operacion deapertura y su aplicacion se aprecia en las figuras 11 y 12.

    Luego se hizo la operacion de cierre, mediante laespecificacion CV MOP CLOSE y su aplicacion se apreciaen las figuras 13 y 14.

  • Posteriormente se hizo la operacion de gradiente, mediantela especificacion CV MOP GRADIENT y su aplicacion seaprecia en las figuras 15 y 16.

    Tambien se realizo la operacion de Black Hat, mediantela especificacion CV MOP BLACKHAT y su aplicacion seaprecia en las figuras 17 y 18.

    Finalmente se realizo la operacion de Top Hat, mediantela especificacion CV MOP TOPHAT y su aplicacion seaprecia en las figuras 19 y 20.

    III-F. Filtro Morfologico

    Para el filtro morfologico se realizo una operacion de aper-tura seguido e una operacion de cierre, tomando en cuenta lafuncionalidad de las anteriores morfologas. Se puede apreciarsu aplicacion en las figuras 21 y 22.

    IV. CONCLUSIONES

    El adelgazamiento reduce lo maximo posible al grosorde as lineas presentes, lo cual es mucho mas visible enla umbralizacion binaria inversa, caso en el que se puederealizar un reconocimiento de patrones mas adecuado.El esqueleto presenta un formato simple de imagen, porlo que se puede realizar encriptacion de imagenes. Enescala de grises existe bastante desorden, por lo que lasimplicidad se pierde en este caso.La apertura permite eliminar zonas blancas lo suficien-temente pequenas para una mejor seleccion de datos,mientras que el cierre realiza esta operacion para laszonas negras, por lo que es util usar ambas operacionesconjuntas para realizar un filtro.El gradiente permite definir bordes de forma mas practi-ca, por lo que en algunos casos el seguimiento depatrones se hara mas sencillo.Las operaciones de Top Hat y Black Hat en imagenes bi-narias permiten realzar partones basicos segun la posiciony direccion de los bordes, realizando as una recopilacionde datos mas sencilla, dependiendo el caso se hara deforma mas util para el seguimiento de patrones.Las operaciones de Top Hat y Black Hat en imagenes aescala de grises permiten un efecto de bajo y alto relieverespectivamente, permitiendo realzar aquellos detalles aconsiderar dependiendo del fondo en el que se manejelos objetos de interes.

    Figura 3. Adelgazamiento a umbralizacion (5, 10 y 20 iteraciones)

  • Figura 4. Adelgazamiento a imagen a escala de grises (5, 10 y 20 iteraciones)

    Figura 5. Esqueleto a imagen binaria

    Figura 6. Esqueleto a imagen a escala de grises

  • Figura 7. Dilatacion a imagen binaria

    Figura 8. Dilitacion a imagen a escala de grises

    Figura 9. Erosion a imagen binaria

    Figura 10. Erosion a imagen a escala de grises

  • Figura 11. Apertura a imagen binaria

    Figura 12. Apertura a imagen a escala de grises

    Figura 13. Cierre a imagen binaria

    Figura 14. Cierre a imagen a escala de grises

  • Figura 15. Gradiente a imagen binaria

    Figura 16. Gradiente a imagen a escala de grises

    Figura 17. BlackHat a imagen binaria

    Figura 18. BlackHat a imagen a escala de grises

  • Figura 19. TopHat a imagen binaria)

    Figura 20. TopHat a imagen a escala de grises

    REFERENCIAS[1] G. Bradsky and A. Kaehler, Learning OpenCV. Sebastopol: OReilly

    Media, 2008

    Figura 21. Filtro morfologico a imagen binaria

    Figura 22. Filtro morfologico a imagen escala de grises