2010-11-03 14 views
1

I ont une image avec un fond jaune contenant un chiffre aléatoire comme représenté sur la figure:diviser l'image et obtenir les coordonnées

alt text

Le chiffre aléatoire est divisé par des lignes noires en morceaux d'image. Maintenant, chaque pièce peut être représentée séparément en tant que carré contenant cette image de pièce avec un arrière-plan transparent.

Ma question s'il est possible de trouver les coordonnées de chaque pièce de façon algorithmique dans l'image originale? J'écris cette application en Java. J'écris cette application en Java.

Je n'ai pas beaucoup d'idée sur les graphiques. Si c'est possible alors s'il vous plaît élaborer un peu.

Répondre

1

Utilisez connected component labeling sur l'image binaire (seuilz votre image actuelle). J'ai utilisé MATLAB pour seuiller l'image et lancer un algorithme de marquage. Ensuite, j'ai utilisé les propriétés de la région pour trouver le centroïde de chaque composant connecté (qui sont les pièces d'image dont vous avez besoin). Ce qui suit est l'image marquée par les étoiles noires représentant le barycentre de chaque pièce:

alt text

1

Présumant les images sont la plupart du temps comme ce que vous avez ici

Loop  
    Find a Red pixel 
    If found 
     flood fill red to non-red at this point, remembering region 
     create output image from this region 
    else 
     You are done 
+0

Mais comment puis-je obtenir les coordonnées de chaque région carrée? – anand

+0

Si (0,0) est en haut à gauche de l'image, les limites de la région sont en haut à gauche (Min X de région, Min Y de région), en bas à droite (Max X de région, Max Y de région) –

+0

Hi, votre algorithme semble bon. Pouvez-vous me montrer un exemple de code ou comment se souvenir de la région tout en faisant des inondations? – anand

Questions connexes