Existem bibliotecas de reconhecimento de imagem OK para .NET?
-
02-07-2019 - |
Pergunta
Quero poder comparar uma imagem tirada de uma webcam com uma imagem armazenada no meu computador.
A biblioteca não precisa ser cem por cento precisa, pois não será usada em nada de missão crítica (por exemplo, investigação policial), só quero algo ok com o qual possa trabalhar.
Eu tentei um projeto de demonstração para Reconhecimento de imagem do CodeProject, e funciona apenas com imagens pequenas / não funciona quando comparo exatamente uma mesma imagem de 120x90 pixels (isso não é classificado como OK: P).
Houve algum sucesso com o reconhecimento de imagem antes?
Nesse caso, você seria capaz de fornecer um link para uma biblioteca que eu poderia usar em C# ou VB.NET?
Solução
Você poderia tentar o seguinte: http://code.google.com/p/aforge/
Inclui uma análise de comparação que lhe dará uma pontuação. Existem muitos outros ótimos recursos de imagem de todos os tipos incluídos também.
// 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
}
Outras dicas
Você pode usar exatamente Emgucv para .net.
Eu fiz isso simplesmente. Basta baixar a biblioteca ocular aqui. Em seguida, use -o na sua classe C# e escreva isso:
use eyeopen.imaging.processing
Escreva
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");
}