隨著科技的發展,監控攝像是越來越普及的一種安全保障方式。而使用Python編程語言可以很方便地實現監控拍攝視頻的功能。
# 導入必要的模塊 import cv2 import time # 設置攝像頭 capture = cv2.VideoCapture(0) capture.set(cv2.CAP_PROP_FRAME_WIDTH, 1280) capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 720) # 設置幀差法閾值 threshold = 30 # 初始化 first_frame = None # 循環監控拍攝 while True: # 獲取當前幀 ret, frame = capture.read() if not ret: break # 灰度化處理 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) gray = cv2.GaussianBlur(gray, (21, 21), 0) # 初始化第一幀 if first_frame is None: first_frame = gray continue # 計算差異幀 frame_delta = cv2.absdiff(first_frame, gray) # 閾值過濾 thresh = cv2.threshold(frame_delta, threshold, 255, cv2.THRESH_BINARY)[1] # 膨脹處理 thresh = cv2.dilate(thresh, None, iterations=2) # 獲取輪廓 contours, hierarchy = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # 遍歷輪廓并畫出矩形框 for c in contours: if cv2.contourArea(c)< 1000: continue (x, y, w, h) = cv2.boundingRect(c) cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2) # 顯示圖像 cv2.imshow("video", frame) key = cv2.waitKey(1) & 0xFF # 退出循環 if key == ord("q"): break # 釋放資源 capture.release() cv2.destroyAllWindows()
通過上述代碼,我們就能夠調用電腦攝像頭并實現監控拍攝視頻的功能。代碼中使用的是幀差法算法,通過比較不同時間段的幀圖像差異,實現了檢測物體移動的功能。同時,我們還可以通過改變閾值等參數,調整檢測效果,實現更高精度的監控。
下一篇css圖片自動切換效果