La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Pixelación de imágenes avanzada usando el algoritmo slic

Presentaciones similares


Presentación del tema: "Pixelación de imágenes avanzada usando el algoritmo slic"— Transcripción de la presentación:

1 Pixelación de imágenes avanzada usando el algoritmo slic
Pablo Barrientos Lobato Antonio Borrego Aristu Daniel Cáceres Maña Procesamiento de Imágenes Digitales

2 índice Introducción Planteamiento teórico Resolución práctica
Experimentación Conclusiones Bibliografía

3 Introducción ¿ Qué es el pixel art?
Es una forma de arte contemporánea surgida de la necesidad de optimizar los recursos de dispositivos electrónicos sin perder demasiada calidad de imagen.

4 Introducción ¿Qué fácil no?
El mayor problema del pixel art son sus propias limitaciones, ya que con una paleta de colores limitada y una baja resolución es complicado crear una imagen reconocible ¿Pero esto que eeeeeeeeeees?

5 Planteamiento teórico
En muchos casos al pixelar una imagen con este método no se puede reconocer nada de la imagen original. Hay muchos casos en los que queremos que se pueda reconocer la imagen, con las ventajas de una imagen en baja resolución, haciendo este método inservible y obligándonos a buscar otras alternativas Pixelar una imagen es muy fácil. Basta con dividir la imagen en una cuadrícula de tamaño regular. Y asignarle a toda la cuadrícula el mismo color que tenga el píxel central

6 Planteamiento teórico
Es aquí donde entra el algoritmo SLIC. Este algoritmo usa un término llamado superpíxel. Estos superpíxeles son conjuntos de píxeles que tienen características parecidas. El algoritmo lo que hace, de manera simplificada, es reconocer dichos superpíxeles. Vamos a ver como lo hace

7 Planteamiento teórico
Al igual que el algoritmo básico, el algoritmo SLIC segmenta inicialmente la imagen en un mallado en forma de cuadrícula con un tamaño fijo. Para simplificar la explicación cogeremos una cuadrícula de tamaño 3x3 -2 3 6 9 1 5 -9 -2 3 6 9 1 5 De cada cuadrícula que haya en la imagen, el algoritmo escoge el centro de cada una Después, se calculan los gradientes de todos los vecinos del centro en dicha cuadrícula Se mueve el centro hacia el vecino con el gradiente más bajo

8 Planteamiento teórico
Una vez realizado el paso anterior, el algoritmo coge, para cada centro, una malla 2N x 2N. En nuestro ejemplo, 6x6. Para cada píxel dentro de esa malla, el algoritmo calcula su distancia a cada uno de los 4 centros de malla. Compara esas distancias y el píxel queda asignado al centro al que más próximo esté Una vez finalizado el proceso, ya disponemos de los superpíxeles para ejecutar el tratamiento que queramos darle a la imagen En nuestro caso, lo que hemos hecho ha sido asignar a todos los píxeles que forman parte de un superpíxel el color del centro del superpíxel

9 Planteamiento teórico
Una de las mayores ventajas de este algoritmo, es que se ajusta con bastante precisión a la forma de los objetos que queremos reconocer, siendo de mucha utilidad para pixelar objetos o personas sin que deje de reconocerse la imagen original Para la imagen que usamos anteriormente pero usando el algoritmo SLIC para hacer la pixelación

10 Resolución práctica Para la implementación de la aplicación se ha usado: Visual Studio 2013 C# con Microsoft .Net Framework 4.0 Windows Prsentation Foundation (WPF) Se ha implementado una arquitectura basada en Model View View Model (MVVM), que permite mantener organizado el código, y poder ampliar fácilmente con más implementaciones de algoritmos.

11 Resolución práctica Se ha creado una interfaz sencilla, que permite aplicar los diferentes algoritmos implementados, y comparar los resultados de forma simple. Permite que cada algoritmo tenga como entrada los parámetros que necesite. Permite guardar el resultado obtenido en un fichero.

12 Resolución práctica Los pasos más importantes del algoritmo son:
1. Se inicializa un array con los centros de cada superpíxel que a priori serán parte de una rejilla compacta y uniforme del tamaño deseado. La complejidad de este paso es O(k), siendo k el número de cuadrículas generadas en la imagen. 2. Calculamos los gradientes de todos los píxeles de la imagen, los cuales guardamos en un array. 3. Modificamos los centros que calculamos antes, escogiendo como nuevo centro, de entre los vecinos del centro anterior, el de menor gradiente. 4. Recorremos la imagen en una ventana de dos cuadrículas por dos cuadrículas respecto a cada centro. En esa ventana evaluamos la distancia entre cada píxel y cada uno de los cuatro centros. Comparamos las distancias obtenidas y añadimos el píxel a la región cuyo a centro esté más cercano. Almacenamos las distintas regiones obtenidas en un array. 5. Se unen los píxeles no conectados a ningún superpíxel al más cercano. 6. Por último, se realiza una limpieza de regiones pequeñas usando el parámetro de entrada como umbral, uniendo dichas regiones a las regiones vecinas más coincidentes.

13 experimentación A continuación vamos a mostrar algunos ejemplos, comparando los dos métodos implementados.

14 experimentación

15 experimentación

16 experimentación

17 experimentación

18 experimentación

19 Cosas a mejorar Dar la opción de elegir el número de colores disponibles Que el usuario pueda elegir el tamaño de la imagen de salida Refinar el algoritmo para que sea más eficiente y preciso

20 conclusiones Aplicar el algoritmo SLIC a la pixelación de imágenes mejora notablemente el resultado. El algoritmo SLIC se podría aplicar a otros ámbitos como podría ser el reconocimiento de objetos en una imagen, o el reconocimiento facial

21 Bibliografía Pixelated image abstraction with integrated user constraints Algoritmo SLIC Algoritmo de pixelación básico


Descargar ppt "Pixelación de imágenes avanzada usando el algoritmo slic"

Presentaciones similares


Anuncios Google