6
votes

Image dans l'algorithme d'image

J'ai besoin d'un algorithme écrit dans n'importe quelle langue pour trouver une image à l'intérieur d'une image, y compris à différentes échelles. Est-ce que quelqu'un connaît un point de départ pour résoudre un problème comme celui-ci?

Par exemple:

J'ai une image de 800x600 et dans cette image est une balle jaune mesurant 180 pixels dans la circonférence. J'ai besoin de pouvoir trouver cette image avec un motif de recherche d'une balle jaune ayant une circonférence de 15 pixels.

merci


2 commentaires

La circonférence du cercle est en fait assez inutile comme une mesure dans ce contexte.


Avez-vous une formation en mathématiques dans ce domaine? Ceci est juste quelques transformations de base de l'espace de vecteur. ne serait pas possible d'expliquer sans le calcul.


4 Réponses :


2
votes

Vous devez regarder OpenCV , une bibliothèque de vision d'ordinateur open source - ce serait Un bon point de départ. Découvrez spécifiquement la détection de l'objet et le CVMatchTemplate méthode.


0 commentaires

0
votes

Un point de départ simple serait le transformation de Hough , si vous souhaitez trouver des cercles. < / p>

Cependant, il y a une zone de recherche globale sur cette matière appelée détection et reconnaissance de l'objet. L'état de la technique a considérablement avancé la dernière décennie.


0 commentaires

24
votes

Voici un algorithme:

  • Split l'image en RVB et prenez le canal bleu. Vous remarquerez que les zones jaune dans l'image couleur sont maintenant sombres dans le canal bleu. C'est parce que le bleu et le jaune sont Couleurs complémentaires . Li>
  • Inverser le canal bleu li>
  • Créez un motif de recherche de Greyscale avec un cercle de la même taille que celle de l'image (180 pixels dans la circonférence). Faites-en un cercle blanc sur un fond noir. Li>
  • Calculez le Collectacle croisé du modèle de recherche avec le canal bleu inversé. li>
  • Le pic de corrélation croisée correspondra à l'emplacement de la balle. Li> ul>

    Voici l'algorithme d'action: p>

    rgb et r: p>

     text alt texte alt p>

    g et b: p>

    text alt texte alt p>

    B et motif inversé: p>

    text alt text alt p>

    Python + OpenCV Code: P>

    misha@misha-desktop:~/Desktop$ python cross-correlation.py 
    (72, 28)
    


2 commentaires

1000x upvotes à vous monsieur, je travaillais sur cela pendant quelques heures (je suis moche à C ++) avant de trouver votre réponse. =)


J'ai utilisé cette méthode et cela a fonctionné bien. Mais si l'article recherché a un contour optionnel de la même couleur, ce modèle ne fonctionne pas. Comment a changé le modèle pour iamge original qui contient des cercles (non remplis) de la même couleur qu'un motif autour du cercle recherché? En fait, j'ai un rectangle, mais cela n'a pas d'importance.



2
votes

Une version de l'un des postes précédents fabriqués avec OpenCV 3 et Python 3 xxx

enregistrer sous fichier.py et exécuter comme:

Python File.py Image Motif


0 commentaires