使用opencv特征项进行人脸检测,非常简单,如果使用python会更加简单
蓝色的为识别的人脸,绿色的是图片中心区域,用于后期树莓派驱动摄像头对焦
以下为代码
# -*- coding: utf-8 -*-
"""
Spyder Editor
This is a temporary script file.
"""
import cv2
cap=cv2.VideoCapture(0)
while(True):
if not cap.isOpened():
print('连接不到摄像头')
print(cv2.CAP_PROP_FRAME_WIDTH)
#读取视频
ret,frame=cap.read()
gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
face_cascade=cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
faces=face_cascade.detectMultiScale(gray,1.3,5);
for(x,y,w,h) in faces:
frame=cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)
print('%s',x+w/2)
(high,width,channel)=frame.shape
print(high,width,channel)
frame=cv2.rectangle(frame,(int(width/2-w/2),int(high/2-h/2)),(int(width/2+w/2),int(high/2+h/2)),(0,255,0),2)
cv2.imshow('video',frame)
print(len(faces))
if cv2.waitKey(1) & 0xFF==ord('q'):
break
cap.release()
cv2.destroyAllWindows()