Esistono librerie di riconoscimento immagine OK per .NET?
-
02-07-2019 - |
Domanda
Voglio poter confrontare un'immagine presa da una webcam con un'immagine memorizzata sul mio computer.
Non è necessario che la biblioteca sia accurata al cento per cento in quanto non verrà utilizzata in nessuna missione critica (ad es. indagini di polizia), voglio solo qualcosa di OK su cui lavorare.
Ho provato un progetto dimostrativo per Riconoscimento di immagini da CodeProject e funziona solo con immagini piccole / non funziona affatto quando confronto esattamente la stessa immagine 120x90 pixel (questo non è classificato come OK: P).
C'è stato qualche successo con il riconoscimento delle immagini prima?
In tal caso, saresti in grado di fornire un link a una libreria che potrei usare in C # o VB.NET?
Soluzione
Puoi provare questo: http://code.google.com/p/aforge/
Include un'analisi comparativa che ti darà un punteggio. Ci sono anche molte altre fantastiche funzioni di imaging di tutti i tipi.
// 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
}
Altri suggerimenti
Puoi usare esattamente EmguCV per .NET.
L'ho fatto semplicemente. Basta scaricare la libreria EyeOpen qui . Quindi usalo nella tua classe C # e scrivi questo:
use eyeopen.imaging.processing
Scrivi
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");
}