Convertir mapa de bits a polígono - (Rasterización inversa)
Pregunta
Dada una imagen de mapa de bits con algunas manchas de color sólido, ¿qué algoritmo emplearía para construir polígonos en la misma forma que las manchas?
Esto se puede hacer en varios pasos: un polígono de alta resolución podría ser cortado posteriormente por un algoritmo de ajuste óptimo. Puntos de bonificación si me puede decir cómo cortar los polígonos resultantes en componentes convexos para que puedan renderizarse en OpenGL sin problemas.
Solución
La rasterización inversa se conoce como vectorizing . Los algoritmos son generalmente bastante complejos, aquí hay un googlet de algunos de ellos. Consulte el seguimiento de píxeles dispersos y la vectorización de píxeles dispersos para obtener algunos buenos ejemplos.
Para obtener buenos algoritmos para la partición de polígonos, consulte 'Geometría computacional de Joespeh O'Rourkes en C', ISBN 0-521-44034-3, o busque partición de polígono cóncavo , tales como esto
Otros consejos
Esto es bastante común en SIG, p. extrayendo funciones automáticamente de la fotografía aérea. La herramienta de elección de OpenSource sería:
http://www.gdal.org/gdal_polygonize.html
http://www.gdal.org/gdal__alg_8h.html#3f522a9035d3512b5d414fb4752671b1