OpenCV实现动态人脸识别
前面我们讲了怎么使用opencv调用摄像头这节我们讲摄像头识别人脸。
我们的主要思想是以下这几部。
1、导入库–2、加载人脸模型-3、打开摄像头–4、创建接口-5、获取摄像头实时画面–6、释放资源–7、关闭窗口。
下面是我们的源码:
import cv2
# 加载人脸模型
face = cv2.CascadeClassifier("haarcascade_frontalface_alt.xml")
# 打开摄像头
capture = cv2.VideoCapture(0)
# 创建窗口
cv2.namedWindow("taoshukai hen shuai")
# 获取摄像头实时画面
cv2.namedWindow('shuai qi de tao zi')
while True:
#获取摄像头的帧画面
ret,frame = capture.read()
# 图片灰度调整
gary = cv2.cvtColor(frame,cv2.COLOR_RGB2GRAY)
# 检测人脸
faces = face.detectMultiScale(gary, 1.1, 3, 0, (100, 100))
# 标记人脸
for (x, y, w, h) in faces:
# 里面有四个参数1,写图片,2,写坐标原点,3,识别大小 4颜色 5线宽
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
# 显示图片(渲染画面)
cv2.imshow('tao',frame)
#暂停窗口
if cv2.waitKey(5) & 0xFF == ord('q'):
break
# 释放资源
capture.release()
# 关闭窗口
cv2.destroyAllWindows()
下面是我们实现的效果:
总结:
opencv还是很有用处的。
在开发过程中会有报错,大多都是路径错误,其他的错误很少,只要你配置好环境就没有问题。
这个在光线不足的情况下会变的很卡。
图片的格式也非常重要不能错。