# 获取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