2017-07-13 11 views
0

J'ai une tâche où je devrais compter nombre de costumes (diamants, clubs, ...) dans un ensemble de cartes à jouer image. J'ai créé une sous-image de modèle de mon image originale pour le diamant par exemple, en utilisant imcrop dans Matlab. J'ai également converti l'image originale ou cible en niveaux de gris. J'essaie de trouver la correspondance de la sous-image dans l'image cible et compte les diamants correspondants dans l'image cible.Comment compter le nombre d'objet correspondant dans l'image dans Matlab

Est-ce que quelqu'un a une suggestion?

J'essaie d'utiliser normxcorr2 J'ai un tracé où je peux voir la zone avec le pic le plus élevé, mais je n'ai aucune idée sur la façon de le calculer.

Toute suggestion d'algorithme.

Merci.

Répondre

0

Jetez un oeil à la méthode A) en Detect repetitive pixel patterns in an image and remove them using matlab(Avis de non-responsabilité: Je suis l'auteur). Supprimez la ligne rect et remplacez la variable template par votre modèle (BW). Passer les 3 dernières commandes et la place comptent combien de sommets il y a:

idx = bwmorph(idx,'shrink',inf); 
numberOfObjects = sum(idx) 

Vous devrez évidemment avoir à ajuster certaines valeurs fortement pour obtenir un bon résultat - la détection de modèle n'est pas trivial.

+0

Salut, quand vous avez dit "Passer les 3 dernières commandes", cela signifie que je dois ignorer la fonction de dilatation, de réplication et de remplissage? J'ai essayé le code, il semble bien fonctionner mais, je ne reçois pas la sortie sur l'espace de travail. J'ai utilisé "s = fprintf ('\ n nombre total de diamants:% f', num2str (numberOfDiamonds));" J'ai une longue boucle de valeur. Des recommandations? – steve

+0

Sautez tout * après * la ligne 'repmat'. 's = fprintf()' obtient juste le nombre si bytes. Si vous voulez l'afficher dans la console, 'fprintf ('nombre total de diamants:% d \ n', numberOfDiamonds)' devrait le faire. Sinon, voyez la documentation 'fprintf' pour un exemple sur la façon de l'écrire dans un fichier. –