综合 Record Video With Python + OpenCV 3 on OSX 和 A Quick Demo on Face Detection With Python and Opencv 3 两篇文章的内容。实现Python 3.4对OpenCV进行面部识别,在Windows 10下成功运行。不得不说,用了OpenCV,那是相当的简单。演示如下:
大半夜的没穿衣服,就拿汤唯演示吧(这话说得怎么有点怪怪的)
运行程序前需要前往Github下载OpenCV库到本地,并进行相应配置。如笔者下载到了C:\
并重命名opencv-master
为opencv-3.0.0
。这一步非常重要,不然会报错。按键Q退出程序。代码如下:
import numpy as np
import cv2
# 模式参数
dir_path = "C:\\opencv-3.0.0\\data\\haarcascades" # 配置OpenCV路径
filename = "haarcascade_frontalface_default.xml" # 识别模式文件
model_path = dir_path + "\\" + filename
#人脸识别
def gface(image):
# 创建 classifier
clf = cv2.CascadeClassifier(model_path)
# 设定灰度
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 识别面部
faces = clf.detectMultiScale(
gray,
scaleFactor=1.1,
minNeighbors=5,
minSize=(30, 30),
flags=cv2.CASCADE_SCALE_IMAGE
)
#print("Found {0} faces!".format(len(faces)))
# 画方框
for (x, y, w, h) in faces:
cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)
return image
cap = cv2.VideoCapture(0) # 从摄像头中取得视频
# 获取视频播放界面长宽
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH) + 0.5)
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT) + 0.5)
# 定义编码器 创建 VideoWriter 对象
fourcc = cv2.VideoWriter_fourcc(*'mp4v') # Be sure to use the lower case
out = cv2.VideoWriter('output.mp4', fourcc, 20.0, (width, height))
while(cap.isOpened()):
#读取帧摄像头
ret, frame = cap.read()
if ret == True:
#输出当前帧
frame=gface(frame)
out.write(frame)
cv2.imshow('My Camera',frame)
#键盘按 Q 退出
if (cv2.waitKey(1) & 0xFF) == ord('q'):
break
else:
break
# 释放资源
out.release()
cap.release()
cv2.destroyAllWindows()
转载请注明出处
《Python 3.4下利用OpenCV对摄像头进行面部识别》https://www.ywlib.com/archives/41.html (from 一闻自习室)
博主,有没有联系方式?邮箱QQ什么的,我最近在做人脸识别的课题,想请教一些问题。
这一块我也只是玩一玩。。高深的都不懂其实哈哈哈