Actualización: Estoy tratando de sacar un poco de desorden de esta publicación y resumirlo de manera más concisa. Por favor vea la edición original si es necesario.Algoritmo para encontrar una región pintada en un lienzo
Actualmente estoy intentando rastrear una serie de blobs de un solo color en un lienzo de mapa de bits.
p. Un ejemplo del mapa de bits que estoy tratando de traza se vería como la siguiente: alt text http://www.refuctored.com/polygons.bmp
Después de trazar con éxito los contornos de las 3 manchas en la imagen, me gustaría tener una clase que tenía el color de una burbuja atada a una lista de puntos que representa el contorno del blob (no todos los píxeles dentro de los blobs).
El problema con el que me estoy encontrando es la lógica en los casos en que un píxel vecino no tiene píxeles circundantes distintos del píxel anterior.
e.g El ejemplo superior trazaría bien, pero el segundo fallaría porque el píxel no tiene dónde ir ya que los píxeles anteriores ya se han utilizado.
alt text http://www.refuctored.com/error.jpg
Estoy de Rastreo de izquierda a derecha y de arriba a abajo, favoreciendo ángulos diagonales sobre ángulos rectos. Debo poder volver a dibujar una copia exacta de la región en función de los datos que extraigo, por lo que los píxeles de la lista deben estar en el orden correcto para que la copia funcione.
Hasta ahora, mi intento ha estado plagado de fallas, y un par de días de jalarme tratando de volver a escribir los algoritmos un poco diferentes cada vez para resolver el problema. Hasta ahora no he tenido éxito. ¿Alguien más tuvo un problema similar al mío que tiene un buen algoritmo para encontrar los bordes?
Duplicar el tamaño: es una gran idea. Estoy sorprendido de que no se me haya pasado por la cabeza. Lo verificare! –