Untitled

mail@pastecode.io avatar
unknown
plain_text
a month ago
1.5 kB
2
Indexable
Never
import cv2
import numpy as np

def detect_fire(frame):
    # Converteste imaginea din BGR in HSV
    hsv_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

    # Defineste intervalul de culoare pentru detectarea focului
    lower_red = np.array([0, 120, 70])
    upper_red = np.array([10, 255, 255])
    mask1 = cv2.inRange(hsv_frame, lower_red, upper_red)

    # Defineste un alt interval de culoare
    lower_red = np.array([170, 120, 70])
    upper_red = np.array([180, 255, 255])
    mask2 = cv2.inRange(hsv_frame, lower_red, upper_red)

    # Combina mastile pentru a obtine masca finala
    mask = mask1 + mask2

    # Aplica o operatie de dilatare pe masca pentru a combina zonele adiacente detectate
    kernel = np.ones((5, 5), np.uint8)
    mask = cv2.dilate(mask, kernel, iterations=1)

    # Aplica masca pe cadru
    fire = cv2.bitwise_and(frame, frame, mask=mask)

    # Returneaza rezultatul
    return fire

# Captureaza video
cap = cv2.VideoCapture('path_to_your_video.mp4')

while True:
    ret, frame = cap.read()
    if not ret:
        break

    # Aplica functia de detectare a focului
    fire_frame = detect_fire(frame)

    # Afiseaza rezultatul
    cv2.imshow('Fire Detection', fire_frame)

    # Iesi din bucla daca utilizatorul apasa 'q'
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# Elibereaza captura si inchide toate ferestrele
cap.release()
cv2.destroyAllWindows()
Leave a Comment