jueves, 21 de abril de 2011

Detección adapativa de bordes

Antes de seguir leyendo, recomiendo que vayas a la página del complemento del blog, y veas las imágenes. Por si mismas explican casi todo lo que hace el filtro.

GIMP tiene varios algoritmos de detección de bordes. Todos ellos pueden producir efectos interesantes, pero ninguno está adaptado a producir una imagen de líneas de un solo píxel de anchura jústamente donde hay bordes y sin producir zonas borrosas.

Desde el blog Tea Driven Design (Daniel Parnham) se ha creado un complemento llamado Adaptive threshold edge detect. Este complemento está basado en un algoritmo del profesor John Robinson de la universidad de York, siendo modificado y adaptado por el autor.

Este algoritmo modificado permite mejorar los resultados en imágenes comprimidas en JPEG. Esto es porque ese modo de compresión introduce artefactos en las imágenes que luego podrían ser revelados por el algoritmo de detección de bordes, empeorando en resultado final y obligando a retocarlo. La segunda imagen de la entrada del blog muestra muy bien este problema. La fila columna de la derecha contiene círculos que fueron comprimidos en JPEG (en la izquierda están intactos). Los de arriba está sin aplicar filtro, los del medio tienen el algoritmo de Canny y los de abajo tienen el creado por este autor.

Un pequeño inconveniente de este algoritmo es que trabaja con toda la imagen a la vez, lo que obliga a usar mucha memoria. No obstante, en ordenadores modernos es difícil llegar a saturar la memoria, sería necesario una imagen de muchas decenas de megapíxeles.

Hacía mucho que no publicaba una entrada, pero este algoritmo me ha motivado.

Enlace interesante con imágenes de ejemplo: Tea Driven Design: Adaptive Threshold Edge Detection in GIMP.

El complemento se puede descargar aquí: http://registry.gimp.org/node/25229
Código fuente (para programadores): https://github.com/parnham/plugins

No hay comentarios: