Pregunta

Quiero encontrar un algoritmo que pueda encontrar líneas o formas discontinuas en un mapa de bits. Considere una situación en la que tengo un mapa de bits con solo dos colores, blanco y negro (Imágenes utilizadas en libros para colorear), hay algunas curvas y líneas que deben conectarse entre sí, pero debido a algunos errores de escaneo, los bits blancos se sientan en su lugar de los negros ¿Cómo debo detectarlos? (Después de este trabajo, quiero convertir mapas de bits en un archivo vectorial. Quiero trabajar con el algoritmo potrace).

Si tiene alguna idea, hágamelo saber.

¿Fue útil?

Solución

Aquí hay un algoritmo simple para curar pequeñas brechas:

Primero, use un filtro que cree un píxel negro cuando cualquiera de sus ocho vecinos sea negro. Esto hará crecer tu esquema general.

A continuación, use un filtro de adelgazamiento que elimine el contorno extra pero deja solo los espacios rellenos.

Consulte este artículo para ver algunos filtros y parámetros: Laboratorio de procesamiento de imágenes en C #

Otros consejos

El enfoque más simple es utilizar una técnica morfológica llamada cierre . Esto funcionará solo si los espacios en las líneas son bastante pequeños en relación con la proximidad de las diferentes líneas entre sí.

La forma en que elige el elemento estructurante para realizar el cierre también puede mejorar o empeorar el rendimiento.

El artículo de Wikipedia es muy teórico (o matemático), por lo que es posible que desee recurrir a Google o cualquier libro sobre procesamiento de imágenes para obtener una mejor explicación de cómo se hace.

Quizás Hough Transform puede ayudarlo. Bonificación: obtienes los parámetros de líneas para tu archivo vectorial.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top