2

Je fais actuellement mes premiers pas dans le domaine de la vision par ordinateur et du traitement d'image. Une des tâches sur lesquelles je travaille est de trouver les coordonnées du centre des cercles (chevauchement et occlus).Trouver les centres de cercles qui se chevauchent dans une image en niveaux de gris à basse résolution

Voici un exemple d'image:

enter image description here

Voici une autre image échantillon montrant deux cercles qui se chevauchent:

Sample image

Pour plus d'informations sur le problème:

  • Toujours un monochro moi, l'image en niveaux de gris
  • plutôt des images basse résolution
  • Radii des cercles sont inconnus
  • Nombre de cercles dans une image donnée est inconnue
  • Centre du cercle est à déterminer, de préférence avec une précision sous-pixel
  • Les radii ne doivent pas être déterminés
  • La surcharge relative faible de l'algorithme est importante; le traitement est supposé être effectué avec des images de caméra en temps réel

Pour la première image échantillon, il est relativement facile de calculer le centre du cercle en trouvant le centre de masse. Malheureusement, cela ne fonctionnera pas pour la deuxième image. Les choses que j'ai essayées sont principalement basées sur la Transformation de Circle Hough et la Distance Transform. La transformée de Circle Hough semblait relativement coûteuse en termes de calcul du fait que je n'ai aucune information sur les rayons et que la gamme des rayons possibles est grande. De plus, il semble difficile d'identifier les pixels (appropriés) le long du bord en raison de la faible résolution de l'image. En ce qui concerne la Transformée de Distance, j'ai du mal à identifier les centres des cercles et le fait que l'image doit être binarisée implique une certaine perte d'information.

Maintenant, je suis à la recherche d'alternatives viables aux algorithmes susmentionnés.

Quelques images plus d'échantillons (images comme les deux échantillons ci-dessus sont extraits des images comme les suivantes):

Full sample 1 Full sample 2

+0

Pouvez-vous partager quelques images de plus S'il vous plaît? –

+0

@MarkSetchell J'ai ajouté d'autres exemples d'images – fscheidl

Répondre

2

Il suffit de penser à haute voix pour essayer de faire rouler la balle pour vous ... Je penserais à une analyse Blob, ou Connected Component pour séparer vos blobs.

enter image description here

Alors je commencer à regarder à chaque blob individuellement. La première chose est de voir à quel point la boîte de délimitation est carrée pour chaque blob.Si c'est joli carréet le centroïde du blob est central dans le carré, alors vous avez un seul cercle. S'il n'est pas carré ou si le centroïde n'est pas central, vous avez plus d'un cercle.

enter image description here

Maintenant, je vais commencer à regarder où les zones blanches touchent les bords du cadre de sélection pour quelques indices sur les centres où sont ...

+0

Merci pour la réponse, c'est exactement ce que je fais en ce moment, qui pourrait ne pas avoir été clair basé uniquement sur ma description originale. L'indice concernant le toucher des bords du cadre de délimitation semble intéressant. Je vais jeter un coup d'oeil à ça! – fscheidl