begin process at 2012 02 11 18:13:24
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > TEMPLATE MATCHING ET RECONNAISSANCE D'OBJETS AVEC OPENCV (EMGU CV)

TEMPLATE MATCHING ET RECONNAISSANCE D'OBJETS AVEC OPENCV (EMGU CV)




 Description

Cliquez pour voir la capture en taille normale
Bonjour
Ce petit source illustre l'utilisation de la bibliothèque Emgu CV pour la reconnaissance des objets au sein d'une image.
Emgu CV est un Wrapper de la biblio OpenCV pour les développeurs .NET, vous pouvez visiter le site officiel du projet ici www.emgu.com
L'application permet de charger une image master qui sera analysée pour rechercher les objets voulu. ces objets sont des images qui doivent être charger dans l'application aussi.
Les étapes du traitement sont :
1. Normalisation de l'image master => vers les niveaux de gris.
2. Normalisation de l'image de l'objet => vers les niveaux de gris
3. Effectuer une opération de template matching dans l'image master. le résultat retourné sera deux vecteurs
a . Vecteur max : contient les points d'origine des segments qui ressemblent le plus à l'objet recherché.
b . Vecteur min : contient les points d'origine des segments qui ne ressemblent pas à l'objet recherché.
Vous pouvez aussi analyser le niveau de similitude entre les segments trouvés et l'image originale de l'objet.

Le code source est bien commenté.
vous trouverez dans le dossier Bin quelques images des objets du ruban Office 2007 pour les tests
Notes :
- vous devez télécharger la biblio Emgu CV, l'installer et puis copier les biblio DLL vers le bin de ce source (Copier le contenu du dossier C:\Program Files\emgucv 2.X.Y.Z\bin) ou X, Y Z sont les composant de la version de la bibilio.
amples informations sur ce lien : http://www.emgu.com/wiki/index.php/Download_And_In stallation
- Le code source C# doit être compiler sous la configuration x86.

Source

  • // Convertimg the master image to a bitmap
  • Bitmap masterImage = (Bitmap) pbxMaster.Image;
  • // Normalazing it to the grayscal mode
  • Image<Gray, Byte> normalizedMasterImage = new Image<Gray, Byte>(masterImage);
  • // Searching for the sample pictures in the master image
  • foreach (var objectImage in imagesList1.Images)
  • {
  • // Searching for this image in the master image
  • Image<Gray, Byte> normalizedObjectImage = new Image<Gray, Byte>((Bitmap)objectImage);
  • // Contains informations about positions.
  • Image<Gray, float> result = normalizedMasterImage.MatchTemplate(normalizedObjectImage, Emgu.CV.CvEnum.TM_TYPE.CV_TM_CCORR_NORMED);
  • // Minimum accuracy found, maximum accuracy found (1 is the best (Complete Matching))
  • double[] min, max;
  • Point[] minLocations, maxLocations;
  • result.MinMax(out min, out max, out minLocations, out maxLocations);
  • ImageLocations sampleLocations = new ImageLocations();
  • sampleLocations.Image = objectImage;
  • sampleLocations.Locations = new List<Point>();
  • // Get the region of the master picture that does not match to the template at all.
  • //sampleLocations.Locations.AddRange(minLocations);
  • // Get the regions of the master picture that match our sample.
  • sampleLocations.Locations.AddRange(maxLocations);
  • // Drawing a rectangle on it
  • DrawRectangleOnMaster(sampleLocations);
  • CustomLocation = sampleLocations;
  • GlobalSampleLocations.Add(sampleLocations);
  • }
  • // Voir le zip
            // Convertimg the master image to a bitmap
            Bitmap masterImage = (Bitmap) pbxMaster.Image;

            // Normalazing it to the grayscal mode
            Image<Gray, Byte> normalizedMasterImage = new Image<Gray, Byte>(masterImage);

            // Searching for the sample pictures in the master image
            foreach (var objectImage in imagesList1.Images)
            {
                // Searching for this image in the master image
                Image<Gray, Byte> normalizedObjectImage = new Image<Gray, Byte>((Bitmap)objectImage);
                // Contains informations about positions.
                Image<Gray, float> result = normalizedMasterImage.MatchTemplate(normalizedObjectImage, Emgu.CV.CvEnum.TM_TYPE.CV_TM_CCORR_NORMED);
                
                // Minimum accuracy found, maximum accuracy found (1 is the best (Complete Matching))
                double[] min, max;
                Point[] minLocations, maxLocations;
                result.MinMax(out min, out max, out minLocations, out maxLocations);

                ImageLocations sampleLocations = new ImageLocations();
                sampleLocations.Image = objectImage;
                sampleLocations.Locations = new List<Point>();
                
                // Get the region of the master picture that does not match to the template at all.
                //sampleLocations.Locations.AddRange(minLocations);
                // Get the regions of the master picture that match our sample.
                sampleLocations.Locations.AddRange(maxLocations);

                // Drawing a rectangle on it
                DrawRectangleOnMaster(sampleLocations);
                CustomLocation = sampleLocations;
                GlobalSampleLocations.Add(sampleLocations);
            }

// Voir le zip


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) ANALYSEUR LEXICAL ET SYNTAXIQUE DES FORMULES PROPOSITIONNELL...
Source avec Zip Source avec une capture Source .NET (Dotnet) PROTEGER SON APPLICATION, AUTHENTIFICATION PAR COMPTES SYSTÈ...
Source avec Zip Source avec une capture Source .NET (Dotnet) GESTION DES SERVICES WINDOWS
Source avec Zip Source .NET (Dotnet) CREATION DES POINTS DE RESTAURATION SYSTÈME
Source avec Zip Source avec une capture Source .NET (Dotnet) SAVOIR L'ADRESSE PHYSIQUE (MAC) DES CARTES RÉSEAUX DE L'ORDI...

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) WINDOWSGADGET LIKE par Frelon
Source avec Zip Source avec une capture Source .NET (Dotnet) USERCONTROL PLANNING / SEMAINE / JOURNÉE par yohan49
Source .NET (Dotnet) CALCULE D'UNE EXPRESSION MATHEMATIQUE PAR COMPILATION par yohan49
Source avec Zip Source avec une capture Source .NET (Dotnet) CALENDRIER TACTILE, SOUS FORME DE ROUES par Robert33
Source avec Zip Source avec une capture Source .NET (Dotnet) NOTIFICATIONS DANS UN DELEGATE ASYNCHRONE par olivieram2

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) TRAITEUR D'IMAGE (MINI) par ycyril

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

utilisation librairie OpenCV [ par gabs77 ] Bonjour,je suis actuellement sur un projet et je voudrais faire une détection de forme.j'ai découvert qu'il faut utiliser la librairie opencv mais j'a OpenCV EmguCV sous Seven 64 [ par zanzan ] Bonjour Je viens de passer sous Seven 64 et j'ai des problèmes avec OpenCV et EmguCV Quelqu'un a t-il fait fonctionner OpenCV en 64 ? Et si oui, que


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,638 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales