Il s'agit principalement d'une question de suivi d' un problème d'il y a quelques semaines , même s'il s'agit de l'algorithme en général sans application à mon problème réel.
L'algorithme recherche essentiellement toutes les lignes de l'image, en commençant par le coin supérieur gauche de celle-ci, jusqu'à ce qu'il trouve un pixel qui est une bordure. En pseudo-C ++:
int start = 0;
for(int i=0; i<amount_of_pixels; ++i)
{
if(pixels[i] == border)
{
start = i;
break;
}
}
Lorsqu'il en trouve un, il démarre l'algorithme des carrés de marche et trouve le contour de l'objet auquel appartient le pixel.
Disons que j'ai quelque chose comme ça:
Où tout sauf la couleur blanche est une bordure.
Et ont trouvé les points de contour de la première goutte:
Pour l'algorithme général, c'est fini. Il a trouvé un contour et a fait son travail. Comment puis-je passer aux deux autres blobs pour trouver également leurs contours?