lógica difusa para efecto de dibujo a partir de imágenes digitales

11
Logica difusa para efecto de dibujo a partir de imágenes digitales Victor Hugo Soliz Kuncar, [email protected] Carrera de Informática, Universidad Mayor de San Andrés, Facultad de ciencias naturales, La Paz Bolivia Resumen Los filtros gráficos para crear imágenes con la apariencia de dibujos, pinturas o bocetos a mano son a menudo incluidos en programas de edición gráfica para ayudar a los artistas a crear efectos a partir de fotos. También tienen un auge en la web como opción entretenida en los sitios para compartir fotos. El presente trabajo propone un método de generación de imágenes que simulan el dibujo a mano a partir de imágenes combinando el concepto de detección de bordes y lógica difusa. Palabras clave: detección de bordes, lógica difusa, procesamiento de imágenes 1. Introducción Las aplicaciones de gráficos generalmente incluyen una colección de efectos y filtros que se pueden usar en una imagen. Desde cambiar el brillo y contraste de una fotografía hasta hacerla parecer una pintura al óleo pasando por el cambio de los tonos de color para que parezca una foto en sepia antigua. Los usos para estos filtros varían, desde personas que quieren entretenerse modificando sus fotos a profesionales en diseño que los utilizan como efectos especiales para sus productos. En este artículo exploraremos la creación de un efecto de dibujo a trazos a partir de fotografías digitales. Este problema es un efecto interesante que necesita que se puedan diferenciar los contornos de los objetos en la imagen automáticamente. Lo que nos lleva al problema de la detección de bordes. 2. Detección de bordes La detección de bordes en imágenes digitales consiste en determinar si un punto dado de la imagen es el contorno de algún objeto o figura. Es un problema no trivial desde el momento en que se define. ¿Qué representa un borde en el momento de estudiar una imagen?. En nuestro caso nos enfocaremos en la detección de bordes en imágenes en blanco y negro. Consideraremos a una imagen digital como una matriz de píxeles con un número de columnas y de final .Cada píxel .será un número de 0 a 255 representando la cantidad de iluminación, siendo 0 el más oscuro (negro) y 255 el más claro (blanco). Entonces podemos definir a un borde como un conjunto de puntos que separan dos áreas que tienen valores de iluminación suficientemente diferentes. La detección de bordes es un problema que ha estado presente desde los tiempos tempranos del procesamiento de imágenes. A continuación veremos 2 métodos muy populares para lograr este objetivo. 3. Operador de Sobel El operador de Sobel asume que los puntos discretos de una imagen son en realidad muestras de una función continúa de 2 dimensiones. La función es aproximada a partir de los puntos y se define al gradiente de esta función como un indicador de qué tan abruptamente o suavemente cambia la intensidad de la imagen en cada punto. En los puntos en los que no exista gran cambio, el gradiente será 0. El resultado se alejará del 0 a medida que los cambios sean más bruscos. La aproximación de la función se hace a partir de los 9 puntos que forman el cuadrado de 3x3 alrededor de cada pixel. Para cada celda (i,j):

Upload: vexorian

Post on 24-Jul-2015

252 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Lógica difusa para efecto de dibujo a partir de imágenes digitales

Logica difusa para efecto de dibujo a partir de imágenes digitales

Victor Hugo Soliz Kuncar, [email protected]

Carrera de Informática, Universidad Mayor de San Andrés,

Facultad de ciencias naturales, La Paz Bolivia

Resumen

Los filtros gráficos para crear imágenes con la apariencia de dibujos, pinturas o bocetos a mano son a menudo incluidos en programas de edición gráfica para ayudar a los artistas a crear efectos a partir de fotos. También tienen un auge en la web como opción entretenida en los sitios para compartir fotos. El presente trabajo propone un método de generación de imágenes que simulan el dibujo a mano a partir de imágenes combinando el concepto de detección de bordes y lógica difusa.

Palabras clave: detección de bordes, lógica difusa, procesamiento de imágenes

1. Introducción

Las aplicaciones de gráficos generalmente incluyen una colección de efectos y filtros que se pueden usar en una imagen. Desde cambiar el brillo y contraste de una fotografía hasta hacerla parecer una pintura al óleo pasando por el cambio de los tonos de color para que parezca una foto en sepia antigua. Los usos para estos filtros varían, desde personas que quieren entretenerse modificando sus fotos a profesionales en diseño que los utilizan como efectos especiales para sus productos.

En este artículo exploraremos la creación de un efecto de dibujo a trazos a partir de fotografías digitales. Este problema es un efecto interesante que necesita que se puedan diferenciar los contornos de los objetos en la imagen automáticamente. Lo que nos lleva al problema de la detección de bordes.

2. Detección de bordes

La detección de bordes en imágenes digitales consiste en determinar si un punto dado de la imagen es el contorno de algún objeto o figura. Es un problema no trivial desde el momento en que se define. ¿Qué representa un borde en el momento de estudiar una imagen?.

En nuestro caso nos enfocaremos en la detección de bordes en imágenes en blanco y negro. Consideraremos a una imagen digital

como una matriz de píxeles con un número de columnas y de final .Cada píxel .será un número de 0 a 255 representando la cantidad de iluminación, siendo 0 el más oscuro (negro) y 255 el más claro (blanco). Entonces podemos definir a un borde como un conjunto de puntos que separan dos áreas que tienen valores de iluminación suficientemente diferentes.

La detección de bordes es un problema que ha estado presente desde los tiempos tempranos del procesamiento de imágenes. A continuación veremos 2 métodos muy populares para lograr este objetivo.

3. Operador de Sobel

El operador de Sobel asume que los puntos discretos de una imagen son en realidad muestras de una función continúa de 2 dimensiones. La función es aproximada a partir de los puntos y se define al gradiente de esta función como un indicador de qué tan abruptamente o suavemente cambia la intensidad de la imagen en cada punto. En los puntos en los que no exista gran cambio, el gradiente será 0. El resultado se alejará del 0 a medida que los cambios sean más bruscos.

La aproximación de la función se hace a partir de los 9 puntos que forman el cuadrado de 3x3 alrededor de cada pixel. Para cada celda (i,j):

Page 2: Lógica difusa para efecto de dibujo a partir de imágenes digitales

G x i , j =−A i−1, j−1−2 Ai , j−1−Ai1, j−1Ai−1, j12 A i , j1Ai1, j1

G y i , j=−Ai−1, j−1−2 Ai−1, j −Ai−1, j1Ai1, j−12 A i1, j Ai1, j1

f i , j=G x i , j 2G y i , j 2

Valores altos de gradiente indican que el punto es un borde. Este método normal es implementado por 2 matrices de tamaño 3x3 que se convolucionan a la imagen original para encontrar Gx y Gy de cada celda.

G x=[−1 0 1−2 0 2−1 0 1]∗A

G y=[−1 −2 −10 0 01 2 1 ]∗A

G=G x2G y

2

El método de Sobel es popular. Aunque los resultados no son en general los mejores, éste método es fácil de implementar y rápido.

4. Detector de bordes de Canny

El detector de bordes de Canny es muy importante. Desarrollado en 1986, sigue siendo uno de los métodos más fiables en el caso general. Consiste de varias fases:

– Filtro Gaussiano (Reducción de ruido). Se aplica un filtro de señal a la imagen para reducir el efecto del ruido. Básicamente haciendo más borrosa a la imagen.

- Gradiente de intensidad. Se utiliza un método (Como por ejemplo, Sobel) para encontrar el gradiente de intensidad de la imágen. Además del gradiente, se considera la dirección atan(Gy, Gy), que se redondea a ángulos horizontales, verticales o diagonales en el cuadrante.

- Supresión de máximos falsos. Se confirma si los puntos en los que los gradientes son altos son máximos locales, utilizando la dirección obtenida anteriormente para confirmar si, comparando con los puntos en esa dirección, el gradiente es más grande.

- Trazado de los bordes.. Se buscan curvas continuas que agrupen puntos marcados como posibles bordes en el anterior paso.

5. Lógica difusa

La lógica difusa es una forma de lógica multivalorada en la que el grado de verdad de las proposiciones es un número real entre 0 y 1.

Relacionados a la lógica difusa, los conjuntos difusos tienen una función de pertenencia que relaciona a posibles elementos con un grado de pertenencia.

Para realizar detección de imágenes definimos los siguientes conjuntos:

• Negro: El pixel es negro/oscuro

• Gris :El pixel es gris/tono intermedio

• Blanco: El pixel es blanco/claro

Funciones de pertenencia.

Fuente: Elaboración propia, basada en imagen generada por MATLAB.

Las funciones determinan en qué medida se puede considerar un pixel como negro, por ejemplo. Si el valor del pixel es 0, el grado de pertenencia al conjunto negro es 1, el grado de pertenencia al conjunto gris es 0 y el grado de pertenencia al conjunto blanco es 0. En cambio, si el valor del pixel es 100, el grado de pertenencia al conjunto negro es 0.61, Al conjunto blanco es 0.39 y al conjunto gris 0.78.

5.1 Inferencia difusa

Definimos a la vecindad de un pixel en la posición (x,y) como el conjunto de los píxeles que son adyacentes o comparten equinas con él:

(x-1,y+1) (x,y+1) (x+1,y+1)

(x-1,y) (x,y) (x+1,y)

(x-1,y-1) (x,y+1) (x+1,y+1)

Page 3: Lógica difusa para efecto de dibujo a partir de imágenes digitales

Para poder decidir si (x,y) es un borde utilizando

reglas lógicas utilizamos la idea previa de que un borde es un punto que separa a dos áreas que tienen tonos de color diferentes entre sí. Definimos 9 variables de entrada para cada pixel:

m7 =(x-1,y+1) m8 = (x,y+1) m9 = (x+1,y+1)

m4 = (x-1,y) m5 = (x,y) m6 = (x+1,y)

m1 = (x-1,y-1) m2 = (x,y+1) m3 = (x+1,y+1)

Se utilizaron 26 reglas de inferencia:

Reglas de inferencia

Fuente: Elaboración propia.

Cada uno de los esquemas anteriores representa un caso en el que se puede concluir que la celda del centro es un borde. Por ejemplo, el siguiente esquema:

Se traduce en la siguiente regla:

Antecedente: Si (m7 es Blanco) y (m4 es Blanco) y (m1 es Blanco) y (m9 es Negro) y (m6 es Negro) y (m3 es Negro).

Consecuente: Entonces la celda del centro es borde.

También necesitamos reconocer las situaciones en las que podemos estar seguros que no existe un borde, esto sucede cuando todos los colores de la vecindad son iguales.

Para evaluar la conjunción de dos expresiones difusas de los antecedentes utilizamos la función mínimo. El valor de verdad mínimo de todas las funciones de pertenencia del antecedente se convierte en su grado de verdad.

Para cada resultado (Es borde / no es borde), se acumulan los valores de verdad de los antecedentes utilizando la función máximo.

Para realizar la inferencia utilizaremos el método de Mamdani. Para aquello necesitamos definir dos conjuntos para la variable de salida:

Funciones de pertenencia de la salida

Fuente: Elaboración propia

La implicación de Mamdani está basada en la función mínimo. Se aplica el mínimo entre el antecedente y la función del consecuente.

Fuente: Elaboración propia

m7 m8 m9 m7 m8 m9 m7 * m9 m7 * m9

* * * * * * m4 * m6 m4 * m6

m1 m2 m3 m1 m2 m3 m1 * m3 m1 * m3

m7 m8 * m7 m8 * * m8 m9 * m8 m9

m4 * m6 m4 * m6 m4 * m6 m4 * m6

* m2 m3 * m2 m3 m1 m2 * m1 m2 *

m7 m8 m9 m7 m8 m9 m7 * m9 m7 * m9

* * * * * * m4 * m6 m4 * m6

m1 m2 m3 m1 m2 m3 m1 * m3 m1 * m3

m7 m8 * m7 m8 * * m8 m9 * m8 m9

m4 * m6 m4 * m6 m4 * m6 m4 * m6

* m2 m3 * m2 m3 m1 m2 * m1 m2 *

m7 m8 m9 m7 m8 m9 m7 * m9 m7 * m9

* * * * * * m4 * m6 m4 * m6

m1 m2 m3 m1 m2 m3 m1 * m3 m1 * m3

m7 m8 * m7 m8 * * m8 m9 * m8 m9

m4 * m6 m4 * m6 m4 * m6 m4 * m6

* m2 m3 * m2 m3 m1 m2 * m1 m2 *

m7 * m9

m4 * m6

m1 * m3

m7 m8 m9 m7 m8 m9 m7 m8 m9

m4 m5 m6 m4 m5 m6 m4 m5 m6

m1 m2 m3 m1 m2 m3 m1 m2 m3

Page 4: Lógica difusa para efecto de dibujo a partir de imágenes digitales

El resultado es una función que se puede decodificar de varias formas. Utilizamos el método de los centroides. Básicamente busca el centro de gravedad de la curva total. El punto de éste centro, un valor entre 0 a 495. determina que tanto es un borde. Un valor cercano a 0 tiene certeza de ser un borde. Los valores mayores iguales a 495 se consideraran

equivalentes a 255.

5.3 Herramienta de programación

La herramienta de programación utilizada fue MATLAB. MATLAB posee un motor de inferencia difusa que permite definir los conjuntos , reglas y formas de inferencia.

6. Casos de prueba y resultados

Una colección de fotografías en la que serán aplicados el método presentado, y también los gradientes hallados por Sobel y el método de Canny.

6.1

a) Original

Fuente: imagepageprocessingplace.com

b) Canny

c) Sobel d) Método propuesto

Page 5: Lógica difusa para efecto de dibujo a partir de imágenes digitales

6.2

a) Original

Fuente: Wikimedia commons

b) Canny

c) Sobel d) Método propuesto

Page 6: Lógica difusa para efecto de dibujo a partir de imágenes digitales

6.3

a) Original

Fuente: imagepageprocessingplace.com

b) Canny

c) Sobel d) Método propuesto

Page 7: Lógica difusa para efecto de dibujo a partir de imágenes digitales

6.4

a) Original

Fuente: Wikimedia commons

b) Canny

c) Sobel d) Método propuesto

Page 8: Lógica difusa para efecto de dibujo a partir de imágenes digitales

6.5

a) Original

Fuente: imagepageprocessingplace.com

b) Canny

c) Sobel d) Método propuesto

Page 9: Lógica difusa para efecto de dibujo a partir de imágenes digitales

6.6

a) Original

Fuente: Wikimedia commons

b) Canny

c) Sobel d) Método propuesto

Page 10: Lógica difusa para efecto de dibujo a partir de imágenes digitales

6.7

a) Original

Fuente: imagepageprocessingplace.com

b) Canny

c) Sobel

d) Método propuesto

Page 11: Lógica difusa para efecto de dibujo a partir de imágenes digitales

7. Discusión

Los resultados del método propuesto suelen ser parecidos a los del método de Sobel al usarlo en esta aplicaciones. Se pueden apreciar casos en que algunos bordes son encontrados por Sobel y no por el nuevo método y vice versa. El método propuesto tiene la ventaja de que por su característica difusa, puede crear contornos suaves más frecuentemente, los que aumenta el efecto de dibujo de boceto. Por otro lado, esta sensibilidad viene a cambio de artefactos - Aproximaciones al gris en la escala de colores pueden causar que el método dibuje lineas o incluso manchas en lugares equivocados.

En realidad, el método es aún una versión exploratoria y hace falta intentar con variaciones en la definición de conjuntos y de reglas. Las manchas que pueden aparecer a veces son causadas por el hecho de que los tonos más grises tienen un valor de pertenencia relevante tanto al conjunto “blanco” como al “negro”. El conjunto “noborde” en la salida y su situación lejos del color blanco funciona para compensar este efecto.

El método de Canny está en cambio especializado en encontrar curvas sólidas. Los resultados son más precisos que los de Sobel y el método propuesto, pero la falta de diferenciación entre bordes fuertes y débiles no le permite ser una solución completa para la aplicación buscada. Es posible que las curvas resultantes se puedan utilizar como una fase intermedia.

8. Conclusión

La lógica difusa ofrece una nueva perspectiva para solucionar problemas que aún no tienen una solución definitiva utilizando matemática y lógica clásica. Con reglas de inferencia difusas basadas en “el sentido común” se puede realizar un algoritmo que es capaz de detectar bordes y tiene una aplicación apropiada en crear un efecto de dibujo a mano a partir de imágenes digitales.

9. Agradecimiento

A Guillermo Choque Ausipiazu Phd. por sus correcciones al método propuesto y revisión de éste artículo.

10. Referencias

• Abdallah A. Alshennawy, and Ayman A. Aly;. Edge Detection in Digital Images Using Fuzzy Logic Technique

http://www.waset.org/journals/waset/v51/v51-30.pdf

Ultimo acceso: 16 de Junio de 2012

• H. R. Tizhoosh , Fuzzy Edge Detection

http://pami.uwaterloo.ca/tizhoosh/edge.htm

Ultimo acceso: 16 de Junio de 2012