Python作為一種全能的編程語言,能夠為各種各樣的應用程序提供快速而簡單的解決方案。其中之一,是python視頻監控,它可以幫助您監測和保護您的家庭、辦公室甚至社區。
# 導入必要的模塊 import cv2 import numpy as np # 設置要檢測的目標的顏色范圍 lower_bound = np.array([20, 100, 100]) upper_bound = np.array([30, 255, 255]) # 打開攝像頭 camera = cv2.VideoCapture(0) while True: # 讀取幀 _, frame = camera.read() # 模糊處理每一幀 blurred = cv2.GaussianBlur(frame, (11, 11), 0) # 將每一幀轉換成hsv顏色空間 hsv = cv2.cvtColor(blurred, cv2.COLOR_BGR2HSV) # 使用二值化圖像根據顏色范圍生成掩膜 mask = cv2.inRange(hsv, lower_bound, upper_bound) # 對掩模進行形態學操作以消除噪點 mask = cv2.erode(mask, None, iterations=2) mask = cv2.dilate(mask, None, iterations=2) # 輪廓檢測 contours, hierarchy = cv2.findContours(mask.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # 在屏幕上繪制輪廓 if len(contours) >0: c = max(contours, key=cv2.contourArea) ((x, y), radius) = cv2.minEnclosingCircle(c) cv2.circle(frame, (int(x), int(y)), int(radius), (0, 0, 255), 2) # 在屏幕上顯示當前幀 cv2.imshow("Frame", frame) # 按下'q'鍵退出循環 if cv2.waitKey(1) & 0xFF == ord('q'): break # 清理對象并釋放攝像頭 camera.release() cv2.destroyAllWindows()
在以上代碼中,我們導入了必要的cv2和numpy庫,設置了要檢測的目標的顏色范圍,并打開了攝像頭。然后,我們使用循環讀取每一幀,模糊處理每一幀,生成掩膜,對掩模進行形態學操作以消除噪點。接著,我們執行輪廓檢測,繪制輪廓,并在屏幕上顯示當前幀。最后,我們加入了退出循環的功能,以及清理對象并釋放攝像頭,確保程序能夠正確地結束運行。