使用python+opencv連線網路攝像頭畫人臉框
阿新 • • 發佈:2020-10-23
# 獲取rtsp流在 frame中實時檢測 import cv2 faceCasCade = cv2.CascadeClassifier("Resources/haarcascade_frontalface_default.xml") # 這個rtsp 流是網路控攝像頭進行連線的 cap = cv2.VideoCapture("rtsp://使用者名稱:密碼@相機ip/") # 判斷抓拍資料流是否開啟 if cap.isOpened(): open, frame = cap.read() else: open = False # 當開啟時open 為true while open:# 讀取開啟的資料流幀數 ret, frame = cap.read() # 將人臉轉換為灰色的影象 imgGray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 將獲取的到的灰色人臉進行1比1的切割 faces = faceCasCade.detectMultiScale(imgGray, 1.1, 4) # 設定長寬高進行人臉圖形的切割 for (x, y, w, h) in faces: cv2.rectangle(frame, (x, y), (x+ w, y + h), (0, 255, 0), 2) # 繪製矩形人臉框 if frame is None: break # 顯示迴圈每一幀的影象進行放映 cv2.imshow("frame", frame) # 當話面正在進行時可以使用q 鍵進行退出 if cv2.waitKey(1) & 0xFF == ord('q'): break cv2.destroyAllWindows() cap.release()
需要進一步瞭解的可以去github進一步瞭解:
https://github.com/murtazahassan/Learn-OpenCV-in-3-hours