web-dev-qa-db-fra.com

Existe-t-il des bibliothèques de reconnaissance d'image OK pour .NET?

Je veux 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 dans quelque chose de critique (par exemple, une enquête policière), je veux juste quelque chose de bien avec lequel je peux travailler.

J'ai essayé un projet de démonstration pour Reconnaissance d'image de CodeProject , et cela ne fonctionne qu'avec de petites images/ne fonctionne pas du tout lorsque je compare exactement la même image 120x90 pixels (ce n'est pas classé comme OK: P).

Y a-t-il déjà eu du succès avec la reconnaissance d'image?

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

56
RodgerB

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

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

// 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
}
74
mattlant

Vous pouvez exactement utiliser EmguCV pour .NET.

8
snndynya

Je l'ai fait simplement. Téléchargez simplement la bibliothèque EyeOpen ici . Ensuite, utilisez-le dans votre classe C # et écrivez ceci:

 use eyeopen.imaging.processing

Écrire

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");
}
3
Hydarnes