Python 是一種強大的編程語言,在圖像處理和計算機視覺方面也得到了廣泛的應用。其中,運動檢測是一種非常重要的應用場景,我們可以使用 Python 去實現它。
在 Python 中,我們可以使用 OpenCV 庫來實現運動檢測。下面是一個示例代碼:
import cv2 cap = cv2.VideoCapture(0) # 獲取第一幀 ret, frame = cap.read() # 將第一幀轉成灰度圖像 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 定義運動檢測的閾值 threshold = 30 while True: # 獲取當前幀 ret, frame = cap.read() # 將當前幀轉成灰度圖像 gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 計算前后兩幀差異 diff = cv2.absdiff(gray, gray_frame) # 對差異圖像進行二值化處理 ret, threshold_frame = cv2.threshold(diff, threshold, 255, cv2.THRESH_BINARY) # 顯示二值化后的圖像 cv2.imshow('Threshold Frame', threshold_frame) # 更新前一幀 gray = gray_frame # 等待按鍵觸發退出 if cv2.waitKey(1) & 0xFF == ord('q'): break # 釋放釋放所有資源 cap.release() cv2.destroyAllWindows()
在上面的代碼中,我們使用了攝像頭采集每一幀圖像,并使用灰度圖像進行了運動檢測。具體來說,我們首先獲取第一幀,將其轉成灰度圖像,并將其作為前一幀。然后,在每次獲取新的幀時,我們將其也轉成灰度圖像,并計算前后兩幀的差異。接著,對差異圖像進行二值化處理,得到一個黑白圖像,其中白色代表發生運動的區域。最后,我們顯示二值化圖像,并將當前幀作為前一幀,依此循環。