Principalmente, esta es una pregunta de seguimiento a un problema de hace unas semanas , a pesar de que se trata del algoritmo en general sin aplicación a mi problema real.
El algoritmo básicamente busca a través de todas las líneas de la imagen, comenzando desde la parte superior izquierda de la misma, hasta que encuentra un píxel que es un borde. En pseudo-C ++:
int start = 0;
for(int i=0; i<amount_of_pixels; ++i)
{
if(pixels[i] == border)
{
start = i;
break;
}
}
Cuando encuentra uno, inicia el algoritmo de cuadrados de marcha y encuentra el contorno del objeto al que pertenece el píxel.
Digamos que tengo algo como esto:
Donde todo excepto el color blanco es un borde.
Y he encontrado los puntos de contorno del primer blob:
Para el algoritmo general se acabó. Encontró un contorno y ha hecho su trabajo. ¿Cómo puedo pasar a los otros dos blobs para encontrar también sus contornos?