2

Comment comparer deux images & reconnaître le motif dans une image quelle que soit sa taille et sa taille, et utiliser .Net C#? En outre, quels algorithmes sont utilisés pour le traitement de l'image?Comment comparer deux images et reconnaître le motif dans une image?

+0

Pourriez-vous être plus précis sur le type d'images que vous traitez et sur le type de modèles que vous essayez de faire correspondre? – Ivan

+0

@Jinmala alors qu'avez-vous finalement fait? – Lazer

+0

-1 pour ne pas revenir sur cette question. – BerggreenDK

Répondre

7

Voir Scale-invariant feature transform, template matching et Hough transform. Une supposition rapide et inexacte peut être de faire un histogramme de couleur et de le comparer. Si l'image est suffisamment compliquée, vous pourrez peut-être distinguer plusieurs séries d'images. Pour simplifier, supposons que nous ayons trois compartiments pour R, G et B. Une image complètement blanche aurait (100%, 100%, 100%) pour (R, V, B). Une image complètement rouge aurait (100%, 0%, 0%). Une image compliquée peut avoir quelque chose comme (23%, 53%, 34%). Si vous prenez la distance entre les points de cet espace (R, G, B), vous pouvez comparer celui qui est le plus proche.

1

rechercher la reconnaissance de formes. J'en savais très peu autre que le nom.

Avertissement: Si c'est ce que vous voulez, c'est l'un des problèmes de programmation les plus difficiles du monde réel.

2

Je ne suis pas expert en reconnaissance d'image par I une fois stummbeled à la bibliothèque AForge qui est écrit en C# et fait la reconnaissance d'image. Peut-être que cela peut aider ...

2

Les techniques de correspondance d'image et de reconnaissance d'image peuvent être très différentes. Pour la première tâche, vous pouvez utiliser SIFT ou créer votre propre fonction de distance, basée sur RVB ou autre. Pour la reconnaissance, il existe une grande quantité de techniques d'apprentissage automatique que vous pouvez utiliser, des techniques plus populaires impliquent Adaboost, SVM et autres méthodes de réseaux neuronaux hybrides. Les documents de recherche connexes ne manquent pas dans ce domaine. Google est ton ami.

1

Jinmala, vous avez posé une question ici qui est extrêmement large. Il y a littéralement des milliers d'articles dans la littérature sur ces sujets. Il n'y a pas de bonne réponse, et il y a beaucoup de problèmes non résolus dans la comparaison des images, donc vous ne pouvez probablement pas espérer une solution simple qui fonctionne (sauf si votre situation est assez simple et contrainte)

Si vous resserrer les choses, je pourrais être en mesure d'aider.

1

Vous cherchez peut-être cette

System.Drawing.Bitmap sourceImage = (Bitmap) Bitmap.FromFile (@ "C: \ SavedBMPs \ 1.jpg"); System.Drawing.Bitmap modèle = (Bitmap) Bitmap.FromFile (@ "C: \ SavedBMPs \ 2.jpg"); // créer modèle algorithme de instance correspondant // (seuil fixé de similarité à 92,5%)

 ExhaustiveTemplateMatching tm = new ExhaustiveTemplateMatching(0.921f); 
      // find all matchings with specified above similarity 

      TemplateMatch[] matchings = tm.ProcessImage(sourceImage, template); 
      // highlight found matchings 

     BitmapData data = sourceImage.LockBits(
      new Rectangle(0, 0, sourceImage.Width, sourceImage.Height), 
      ImageLockMode.ReadWrite, sourceImage.PixelFormat); 
     foreach (TemplateMatch m in matchings) 
     { 

       Drawing.Rectangle(data, m.Rectangle, Color.White); 

      MessageBox.Show(m.Rectangle.Location.ToString()); 
      // do something else with matching 
     } 
     sourceImage.UnlockBits(data); 

Je vous préviens, il est assez lent prend environ 6 secondes pour traiter l'image de 1024x768 y trouvant pciture avec la taille 50x50. enter code here

1

, vous pouvez le faire avec EmguCV, OpendotnetCV, Aforge.net

+0

Pourriez-vous s'il vous plaît élaborer votre réponse un peu plus? – slfan

Questions connexes