مكتبة OpenCV
مكتبة OpenCV (Open Source Computer Vision) هي مكتبة مجانية ومفتوحة المصدر لرؤية الحاسوب وخوارزميات التعلم الآلي. تم تطويرها في البداية بواسطة Intel في عام 1999. تم إصدارها كمصدر مفتوح في عام 2006. ومنذ ذلك الحين، تمت صيانتها بواسطة مجتمع من المطورين وهي الآن إحدى مكتبات رؤية الحاسوب الأكثر استخدامًا. لمعرفة ما هي الرؤية الحاسوبية يمكنك الانتقال إلى مقال الرؤية الحاسوبية .
لغة OpenCV
OpenCV مبرمجة بلغة C ++ وتوفر مجموعة كبيرة من الأدوات لمعالجة الصور ومقاطع الفيديو، مثل تغيير الحجم والقص وتحويلات مساحة اللون واكتشاف الحواف والمزيد.
تطبيقات الرؤية الحاسوبية
- المركبات ذاتية القيادة
- أنظمة الأمان
- تحليل الصور الطبية
- التعرف على الوجه
- التعرف على الأشياء
مميزات مكتبة OpenCV
1. تسريع الأجهزة: يمكن لـ OpenCV استخدام تسريع الأجهزة لتسريع عمليات معينة ، مثل معالجة الصور والتعلم الآلي ، على الأنظمة التي تدعمها.
2. دعم عبر الأنظمة الأساسية: OpenCV متعدد الأنظمة الأساسية ويمكن استخدامه على أنظمة التشغيل Windows وLinux و Mac و iOS و Android.
3. روابط متعددة اللغات: OpenCV مكتوب بلغة C ++ وله روابط لمختلف لغات البرمجة ، مثل Python و Java و C #.
تثبيت مكتبة OpenCV
يمكن تثبيت OpenCV (Open Source Computer Vision) على أنظمة تشغيل وبيئات تطوير مختلفة. فيما يلي الخطوات العامة لتثبيت OpenCV:
يتطلب OpenCV تثبيت بعض مكتبات أخرى على جهاز الحاسوب أو على منصة برمجة مثل منصة أناكوندا. المكتبات الضرورية للتعامل مع مكتبة OpenCV هن:
· NumPy
· SciPy
· Matplotlib (للبايثون)
· Java Development Kit (للجافا).
بإمكانك تنزيل أحدث إصدار من OpenCV من الموقع الرسمي (https://opencv.org/) أو من مستودع GitHub (https://github.com/opencv/opencv).
· قم بفك ضغط الملف الذي تم تنزيله على كمبيوترك.
· بمجرد تثبيت OpenCV ، ستحتاج إلى إعداد بيئة التطوير الخاصة بك لاستخدام المكتبة. في Python ، يمكنك القيام بذلك عن طريق إضافة الأسطر التالية إلى أعلى نص Python الخاص بك:
في Java ، ستحتاج إلى إضافة مكتبة OpenCV إلى مسار المجلد الخاص بمشروعك واستيراد الفئات الضرورية في كود Java الخاص بك.
- يمكنك اختبار التثبيت الخاص بك عن طريق تشغيل أحد نماذج البرامج المتوفرة مع OpenCV، أو عن طريق كتابة التعليمات البرمجية الخاصة بك باستخدام المكتبة.
ستعتمد الخطوات الدقيقة لتثبيت OpenCV وإعداده على نظام التشغيل وبيئة التطوير لديك.
البدء بالبرمجة!
سوف نتطرق لبعض الأمثلة التي يمكننا الاستفادة من مكتبة OpenCV فيها ومن ضمنها:
1. قراءة الصورة من ملف
2. حفظ الصورة في ملف
3. تغيير حجم الصورة
لتغيير حجم صورة ، قم بقياسها على طول كل محور (الارتفاع والعرض) ، مع مراعاة عوامل المقياس المحددة أو قم فقط بتعيين الارتفاع والعرض المطلوبين.
4. قص صورة
يتم إجراء الاقتصاص لإزالة كل الكائنات أو المساحات غير المرغوب فيها من الصورة. أو حتى لتسليط الضوء على ميزة معينة للصورة.
5. دوران الصورة (تغيير اتجاه الصورة)
لنبدأ بإلقاء نظرة على الكود أدناه الذي سيتم استخدامه لأداء تدوير الصورة
6. تحويل الصورة من صيغة لونية إلى اخرى مثلا تحوليها من RGB إلى grayscale
7. كشف الحواف (Edge Detection)
يعد اكتشاف الحواف تقنية معالجة الصور، والتي تُستخدم لتحديد حدود (حواف) الكائنات أو المناطق داخل الصورة.
كيف يتم الكشف عن الحواف؟
تتميز الحواف بالتغيرات المفاجئة في شدة وحدات بيكسل. لاكتشاف الحواف، نحتاج إلى البحث عن مثل هذه التغييرات في وحدات البيكسل المجاورة. ومن أشهر هذه الخوارزميات
· Sobel Edge Detection
· Canny Edge Detection
وهنا سنذكر مثال على خوارزمية Canny Edge Detection
8. تحليل الأشكال في الصورة عن طريق رسم الحدود
سوف نقوم بتحميل الصورة وتحليل الأشكال فيها وتحديد مواصفات الأشكال مثل الأبعاد والمواقع والتحديد ورسم المستطيل حول الشكل ثم عرض وحفظ الصورة المعالجة.
9. تحديد الوجه
مكتبة OpenCV من مميزاتها أيضا تمكننا من تحديد الوجوه في الصورة، نطبق باستخدام مصنف Haar cascading classifier.
في هذا المثال رسمنا مربعًا أزرق (الصندوق المحيط) حول الوجه في الصورة.
ملخص
- تعريف أدوات مكتبة OpenCV بلغة بايثون، وبعض المهام الأساسية للمكتبة في معالجة الصور والرؤية الحاسوبية.
- تطبيقات الرؤية الحاسوبية مثل التعرف على الأشياء، تحليل الصور الطبية، المركبات ذاتية القيادة.
- اختبار عدة أدوات مثل قص الصورة، تدوير الصورة، كشف الحواف عن طريق تأثير كاني، وتحديد الأشكال والتعرف على الوجوه من خلال مصنف HaaR Cascade.
المصادر
- Tiwari, 2019, Introduction to Computer Vision & OpenCV in Python, https://medium.com/analytics-vidhya/introduction-to-computer-vision-opencv-in-python-fb722e805e8b
- LearnOpenCV, https://learnopencv.com/getting-started-with-opencv/
Author
-
مختص ذكاء اصطناعي وعلم بيانات، محاضر جامعي في جامعة الاسراء - غزة، حاصل على درجة الماجستير في الذكاء الاصطناعي وعلم البيانات، شريك مؤسس في مجتمع أكايا العربي لنهج الذكاء الاصطناعي
View all posts