概述
1、利用Opencv自带的haarcascade_frontalface_default.xml 人脸分类器做视频流的人脸识别
2、利用cv2.VideoCapture获取视频流
3、导入Opencv分类器 haarcascade_frontalface_default 是好是绝对路径
4、视频流的每一帧做人脸识别
5、识别到的人脸保存到本地
6、附具体代码
# -*- coding: utf-8 -*-
"""
Created on Wed Jun 13 12:24:53 2018
@author: Administrator 在窗口显示摄像头帧
"""
import cv2
clicked = False
# CAMERA_CAPTURE = 'rtsp://admin:abc12345@192.168.1.101:554/h264/ch1/main/av_stream'
CAMERA_CAPTURE = 'rtsp://admin:abc12345@192.168.1.101/mpeg4/ch1/sub/av_stream'
def onMouse(event, x, y, flags, param):
global clicked
if event == cv2.EVENT_LBUTTONUP:
clicked = True
cameraCapture = cv2.VideoCapture(CAMERA_CAPTURE)
cv2.namedWindow('MyWindow')
cv2.setMouseCallback('MyWindow', onMouse)
print('showing camear feed. Click window or press any key to stop')
success, frame = cameraCapture.read()
pathf = 'D:\ProgramData\Anaconda3\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml'
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
face_cascade.load(pathf)
count = 0
while success and cv2.waitKey(1) == -1 and not clicked:
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.2, 5)
for (x, y , w, h) in faces:
frame = cv2.rectangle(frame, (x, y), (x+w, y+h),(255,0,0),2)
f = cv2.resize(gray[y:y+h, x:x+w], (200,200))
cv2.imwrite('./jm/%s.jpg' % str(count) , f)
count +=1
cv2.imshow('MyWindow', frame)
success, frame = cameraCapture.read()
cv2.destroyWindow('MyWindow')
cameraCapture.release()
最后
以上就是悲凉流沙为你收集整理的Python+Opencv 摄像头视频流人脸视频检测追踪的全部内容,希望文章能够帮你解决Python+Opencv 摄像头视频流人脸视频检测追踪所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复