انظم الى قناتنا على التليجرام الان       انظم الان!

اكتشاف الحرائق باستخدام Python وOpenCV

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


يواجه العديد منا تحديات الحفاظ على سلامة المنزل والممتلكات. يمكن أن تكون الحرائق أحد التحديات الخطيرة، ولكن يمكن استخدام التكنولوجيا لتعزيز إجراءات الأمان. في هذا المشروع، سنقوم بشرح كيفية إنشاء نظام بسيط باستخدام Python وOpenCV لاكتشاف الحرائق باستخدام كاميرا الويب.

مميزات المشروع:

  • اكتشاف الحرائق في الوقت الحقيقي باستخدام تقنيات الرؤية الحاسوبية.
  • تشغيل تنبيه صوتي عند اكتشاف الحريق.
  • تسجيل الحدث وحفظ صورة للحريق المكتشف.
  • استخدام OpenCV لتحليل الصور والكشف عن وجود الحريق.

المكتبات المستخدمة:

  • OpenCV - لمعالجة الصور وكشف الحرائق.

تحميل OpenCV :

 
pip install opencv-python
  

الكود البرمجي:

 
import os
try:
    import cv2
except ImportError:
    os.system('pip install opencv-python')

# تحميل ملف تدريب كاستكاد للكشف عن الحرائق
fire_cascade = cv2.CascadeClassifier('fire_detection.xml')

# تحديد مصدر الفيديو (0 للكاميرا الرئيسية، 1 للكاميرا الخارجية إذا كانت متوفرة)
video_capture = cv2.VideoCapture(0)

# إنشاء مجلد "screens" إذا لم يكن موجودًا
if not os.path.exists('screens'):
    os.makedirs('screens')

# إعداد المتغير لترقيم الصور
image_counter = 0

while True:
    # قراءة الفريم من الكاميرا
    ret, frame = video_capture.read()

    # تحويل الفريم إلى اللون الرمادي
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # كشف الحرائق في الفريم
    fires = fire_cascade.detectMultiScale(frame, scaleFactor=1.2, minNeighbors=5, minSize=(30, 30))

    # عرض إطار الحريق إذا تم الكشف عن حريق
    for (x, y, w, h) in fires:
        cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 0, 255), 2)
        print('تم اكتشاف حريق!')

        # حفظ الصورة
        image_name = f'screens/fire_detection_{image_counter}.png'
        cv2.imwrite(image_name, frame)
        print(f'تم حفظ الصورة: {image_name}')
        image_counter += 1

        # تشغيل الملف الصوتي
        os.system('start audio.mp3')
        
        cv2.waitKey(1000)  # تأخير لضمان استماع كامل للتنبيه
        cv2.destroyAllWindows()  # إغلاق نافذة الكاميرا
        break

    # إضافة تسمية للإطار
    cv2.putText(frame, 'Fire Detection - By @SaMi_ye', (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2, cv2.LINE_AA)

    # عرض الفريم المعالج (إذا تم إظهار إطار الكاميرا)
    cv2.imshow('Fire Detection - By @SaMi_ye', frame)

    # الانتظار للضغط على زر 'q' لإنهاء البرنامج
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# إيقاف تشغيل الكاميرا وإغلاق النوافذ
video_capture.release()
cv2.destroyAllWindows()

  

يرجى الضغط على الزر أدناه لتحميل مشروع اكتشاف الحرائق:

إرسال تعليق

موافقة ملفات تعريف الارتباط
نحن نقدم ملفات تعريف الارتباط على هذا الموقع لتحليل حركة المرور وتذكر تفضيلاتك وتحسين تجربتك.
Oops!
يبدو أن هناك خطأ ما في اتصالك بالإنترنت. يرجى الاتصال بالإنترنت وبدء التصفح مرة أخرى.
تم اكتشاف حظر الاعلانات!
لقد اكتشفنا أنك تستخدم مكونًا إضافيًا لحظر الإعلانات في متصفحك.
تُستخدم الإيرادات التي نكسبها من خلال الإعلانات لإدارة موقع الويب هذا، ونطلب منك إدراج موقعنا على الويب في القائمة البيضاء في مكون حظر الإعلانات الخاص بك.
Site is Blocked
Sorry! This site is not available in your country.