2008-09-30 28 views
51

Tôi muốn có thể so sánh hình ảnh được chụp từ webcam với hình ảnh được lưu trữ trên máy tính của tôi.Có thư viện nhận dạng hình ảnh OK nào cho .NET không?

Thư viện không cần chính xác 100 phần trăm vì nó sẽ không được sử dụng trong bất kỳ nhiệm vụ quan trọng nào (ví dụ: điều tra của cảnh sát), tôi chỉ muốn một cái gì đó mà tôi có thể làm việc.

Tôi đã thử một dự án trình diễn cho Image Recognition from CodeProject và nó chỉ hoạt động với hình ảnh nhỏ/không hoạt động chút nào khi tôi so sánh chính xác cùng một hình ảnh 120x90 pixel (điều này không được phân loại là OK: P).

Đã có bất kỳ thành công nào với nhận dạng hình ảnh trước đây chưa?

Nếu có, bạn có thể cung cấp liên kết tới thư viện mà tôi có thể sử dụng trong C# hoặc VB.NET không?

+0

Nó chắc chắn làm việc với hình ảnh lớn hơn nhiều so này, phải có một số vấn đề khác có thể định dạng. –

Trả lời

68

Bạn có thể thử điều này: http://code.google.com/p/aforge/

Nó bao gồm phân tích so sánh sẽ cho bạn điểm số. Có rất nhiều tính năng chụp ảnh tuyệt vời khác của tất cả các loại bao gồm là tốt.

// 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 
} 
+0

Âm thanh tuyệt vời! Cho phép hy vọng nó hoạt động như mong đợi ... Tôi sẽ đánh dấu câu trả lời của bạn là chấp nhận nếu có. :) – RodgerB

+7

Nó hoạt động hoàn toàn tuyệt vời! 100% tương tự để so sánh hình ảnh của riêng mình, 91% tương tự cho tôi ngồi thẳng trên ghế và tôi nghiêng về bên trái. Đây là tất cả những gì tôi có thể hy vọng, cảm ơn một tỷ :) – RodgerB

+4

Thats tuyệt vời, tôi vui vì tôi có thể liên kết bạn với nó. Tôi ước gì đó là cách để trả ơn anh chàng đã liên kết với tôi trước. Đó chính xác là những gì tôi cần trong một trong những dự án của tôi. Cảm ơn – mattlant

3

Tôi đã làm điều đó một cách đơn giản. Chỉ cần tải về thư viện EyeOpen here. Sau đó, sử dụng nó trong lớp C# và viết những dòng này:

use eyeopen.imaging.processing 

Viết

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

Tại sao bạn đăng cùng một câu trả lời [hai lần] (http://stackoverflow.com/a/12421689/569101)? – j0k

+0

So sánh hình ảnh đơn giản và dễ dàng, tôi thích nó. – Hiram

+0

@ j0k, tôi đoán bởi vì câu trả lời phù hợp cho 2 câu hỏi, như được minh chứng bởi các upvotes .... – MyDaftQuestions

Các vấn đề liên quan