Untitled
unknown
plain_text
2 years ago
1.5 kB
8
Indexable
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()
Editor is loading...
Leave a Comment