سؤال

أريد أن أكون قادرًا على مقارنة صورة مأخوذة من كاميرا الويب بالصورة المخزنة على جهاز الكمبيوتر الخاص بي.

لا يلزم أن تكون المكتبة دقيقة بنسبة مائة بالمائة، حيث لن يتم استخدامها في أي مهمة حرجة (على سبيل المثال.تحقيق الشرطة)، أريد فقط شيئًا مقبولًا يمكنني العمل به.

لقد حاولت مشروع مظاهرة ل التعرف على الصور من CodeProject, ، وهو يعمل فقط مع الصور الصغيرة/لا يعمل على الإطلاق عندما أقارن نفس الصورة تمامًا مقاس 120 × 90 بكسل (هذا غير مصنف على أنه OK :P).

هل كان هناك أي نجاح في التعرف على الصور من قبل؟

إذا كان الأمر كذلك، هل ستتمكن من توفير رابط لمكتبة يمكنني استخدامها في لغة C# أو VB.NET؟

هل كانت مفيدة؟

المحلول

يمكنك تجربة هذا: http://code.google.com/p/aforge/

ويتضمن تحليل المقارنة الذي سوف يعطيك النتيجة.هناك العديد من ميزات التصوير الرائعة الأخرى من جميع الأنواع المضمنة أيضًا.

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

نصائح أخرى

يمكنك استخدام بالضبط EmguCV ل.NET.

لقد فعلت ذلك ببساطة.فقط قم بتنزيل مكتبة EyeOpen هنا.ثم استخدمه في فصل C# الخاص بك واكتب هذا:

 use eyeopen.imaging.processing

يكتب

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");
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top