سؤال

لقد رأيت أن هناك عدد قليل منهم. opencvdotnet, SharperCV, EmguCV, واحد على مشروع الكود.

هل لدى أي شخص أي خبرة في أي من هذه؟لقد تلاعبت بالجزء الموجود في Code Project لبعض الوقت، ولكن بمجرد أن حاولت القيام بأي شيء معقد، حصلت على بعض الاستثناءات السيئة التي لا يمكن اكتشافها (على سبيل المثال:استثناءات Msgbox).سيكون النظام الأساسي المتقاطع (يدعم Mono) هو الأفضل.

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

المحلول

لقد بدأت مع opencvdotnet ولكن لم يتم تطويره بشكل نشط بعد الآن.علاوة على ذلك، كان دعم الميزة التي كنت بحاجة إليها (اكتشاف الوجه) غير مكتمل.أنا استخدم EmguCV الآن:إنه يغلف جزءًا أكبر بكثير من واجهة برمجة التطبيقات (API) والشخص الذي يقف خلفها يستجيب جدًا للاقتراحات والطلبات.من الممتع النظر إلى الكود ومن المعروف أنه يعمل على Mono.

لقد كتبت سريعا دليل البداية على مدونتي.

نصائح أخرى

نحن نستخدم OpenCVSharp موقع الويب الخاص بـ google code باللغة اليابانية ولكنه يستخدم أحدث إصدارات OpenCV ويشتمل على IDisposable طوال الوقت.يبدو أنه يوفر المزيد من الوظائف أكثر من أي من البرامج الأخرى التي رأيناها حتى الآن وما زال نشطًا.لديها برامج أمثلة واسعة النطاق أيضًا.

أعتقد أنه من المهم ملاحظة أنه تم طرح السؤال الأصلي في 2008, ، وتم إصدار OpenCV 2.0 في 2009.قدم الإصدار 2.0 غلاف C++ وهو أسهل بكثير في العمل من واجهة C الأقدم التي واجهها OP.بالنسبة لمشروع .NET الخاص بي، سأترك كل عمليات المعالجة الرسومية في لغة C++ الأصلية.

جرب هذا: قم بإنشاء مشروع C++/CLR DLL الذي يرتبط بمكتبات OpenCV.يصف دليل OpenCV كيفية القيام بذلك لـ Windows C++ EXE، نفس الخطوات تعمل أيضًا لـ C++/CLR DLL.ثم يقوم DLL بالطبع بتصدير الأساليب التي يمكن استدعاؤها من ملف .NET EXE.

لاختباره، يجب أن تكون قادرًا على دمج أي من عينات OpenCV في ملف DLL الخاص بك مع القليل من التغيير والتبديل.(أضف ملف .CPP إلى مشروعك، وقم بتحويل الدالة main() إلى عضو فئة، وما إلى ذلك.- أنت تعرف التدريبات...) قد يكون مرشح الاختبار الجيد هو عينة "mat_mask_operations".

OpenCV.NET متاح من NuGet

https://bitbucket.org/horizongir/opencv.net

https://www.nuget.org/packages/OpenCV.Net

فيما يلي قائمة بالميزات من موقع المشروع:

OpenCV.net هي واجهة .NET لمكتبة OpenCV الشهيرة ومكتبة معالجة الصور.تم تطوير هذه الروابط على مدار عام وتشمل العديد من الميزات التي فقدت من محاولات أخرى ، وهي:

  • التوافق الأحادي عبر الأنظمة الأساسية (يتم استخدام P/Invine فقط)
  • دعم قريب جدًا من 100% لأحدث واجهة برمجة تطبيقات C (بما في ذلك الوظائف غير الموثقة)
  • التوثيق/التحسس الكامل لجميع الأساليب والفئات وأعضاء التعداد المدعومة (يتم استخراجها بشق الأنفس من العديد من المصادر المختلفة)
  • دعم الاستثناءات
  • صديقة لجامعي القمامة:
    • يدرك GC الذاكرة الفعلية التي تستخدمها المصفوفات والصور
    • يتم ضمان بقاء المؤشرات على قيد الحياة عند استدعاءات الوظائف حتى في حالة حدوث تجميع متزامن للبيانات المهملة
  • نموذج الكائن الذي يتبع واجهة برمجة تطبيقات C++‎ قدر الإمكان (نحو دعم متزايد مستقبليًا لواجهة برمجة تطبيقات C++ API)
  • ترخيص على غرار BSD (MIT)

أعتقد أن أفضل غلاف هو opencvsharphttp://code.google.com/p/opencvsharp/

لقد قمت بإنشاء حزمة NuGet لتسهيل البدء باستخدام OpenCv في C#، باستخدام EmguCV.

تحقق من ذلك!في Visual Studio، ابحث وأضف ملف myEmguCV.Net حزمة نوجيت

https://www.nuget.org/packages/myEmguCV.Net

لقد كانت SharperCV هي الأداة المفضلة لدينا، وهي لا تخذلنا، بالنسبة لنا مشروع الروبوتات.على الرغم من أنه تم وضع علامة عليه حاليًا على أنه مهجور، إلا أن الكود في حالة جيدة حقًا، ولا يتطلب سوى تعديلات طفيفة لتخصيصه حسب احتياجاتك.لا توجد صناديق رسائل، وفي الواقع معالجة الاستثناءات معقولة جدًا.

ومع ذلك، ليس عبر الأنظمة الأساسية، وذلك بسبب طبقة التشغيل البيني.

أعلم أنه تمت الإجابة على هذا السؤال لفترة طويلة، ولكن أود أن أضيف أن هناك غلافًا جيدًا جدًا هنا.هذا هو الإصدار الجديد من غلاف openCV الذي قمت بتجربته مشروع الكود.لقد حاولت ذلك لبضعة أيام وكل شيء يعمل بشكل مثالي.كما أنني تمكنت من العمل خلال دقائق.

لا أعرف مدى التوافق مع mono ولكن ضمن Visual Studio 2010، فهو يعمل كالسحر ويوفر لي الكثير من الوقت والمال (مشروعي تجاري ومعظم المكتبات مفتوحة المصدر بترخيص لا يسمح بالإعلانات التجارية) الاستخدام ما لم يتم نشر الكود)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top