import cv2 def detect_motion(frame, background_frame): diff = cv2.absdiff(background_frame, frame) gray = cv2.cvtColor(diff, cv2.COLOR_BGR2GRAY) blur = cv2.GaussianBlur(gray, (5, 5), 0) _, thresh = cv2.threshold(blur, 20, 255, cv2.THRESH_BINARY) contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) moving_objects = [] for contour in contours: if cv2.contourArea(contour) > 500: x, y, w, h = cv2.boundingRect(contour) moving_objects.append((x, y, w, h)) return moving_objects