Question

Je souhaite pouvoir comparer une image prise depuis une webcam à une image stockée sur mon ordinateur.

La bibliothèque n'a pas besoin d'être précise à cent pour cent, car elle ne sera pas utilisée pour des tâches critiques (par exemple, une enquête de police), je veux juste quelque chose de bien avec lequel je peux travailler.

J'ai essayé un projet de démonstration pour la Reconnaissance d'images à partir de CodeProject . fonctionne uniquement avec de petites images / ne fonctionne pas du tout lorsque je compare exactement la même image 120x90 pixels (ceci n'est pas classé comme correct: P).

La reconnaissance des images a-t-elle déjà porté ses fruits?

Si oui, seriez-vous en mesure de fournir un lien vers une bibliothèque que je pourrais utiliser en C # ou en VB.NET?

Était-ce utile?

La solution

Vous pouvez essayer ceci: http://code.google.com/p/aforge/

Il comprend une analyse de comparaison qui vous donnera un score. De nombreuses autres fonctionnalités d'imagerie de tous types sont également incluses.

// The class also can be used to get similarity level between two image of the same size, which can be useful to get information about how different/similar are images:
// Create template matching algorithm's instance

// Use zero similarity to make sure algorithm will provide anything
ExhaustiveTemplateMatching tm = new ExhaustiveTemplateMatching(0);

// Compare two images
TemplateMatch[] matchings = tm.ProcessImage( image1, image2 );

// Check similarity level
if (matchings[0].Similarity > 0.95)
{
    // Do something with quite similar images
}

Autres conseils

Vous pouvez utiliser exactement EmguCV pour .NET.

Je l'ai fait simplement. Il suffit de télécharger la bibliothèque dans EyeOpen ici . Puis utilisez-le dans votre classe C # et écrivez ceci:

 use eyeopen.imaging.processing

Ecrire

ComparableImage cc;

ComparableImage pc;

int sim;

void compare(object sender, EventArgs e){

    pc = new ComparableImage(new FileInfo(files));

    cc = new ComparableImage(new FileInfo(file));

    pc.CalculateSimilarity(cc);

    sim = pc.CalculateSimilarity(cc);

    int sim2 = sim*100

    Messagebox.show(sim2 + "% similar");
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top