一、导库:
pip install opencv-python
二、下载特征数据:
可以去github下载。
链接:https://pan.baidu.com/s/1TtFMYH889GdZfchEQwsivw
提取码:znme
三、代码:
路径改为特征数据存放的路径:
import cv2
cap = cv2.VideoCapture(0)
#通过级联检测器 cv.CascadeClassifier,加载特征数据
face = cv2.CascadeClassifier('C:/Users/aa/Desktop/aaa/haarcascade_frontalface_default.xml') #文件路径
while(1):
ret,frame = cap.read()
gray = cv2.cvtColor(frame,cv2.COLOR_RGB2GRAY) #把图片变成灰度图片,提高性能。
# 在尺度空间对图片进行人脸检测,第一个参数是哪个图片,第二个参数是向上或向下的尺度变化,是原来尺度的1.1倍,第三个参数是在相邻的几个人脸检测矩形框内出现就认定成人脸,这里是在相邻的3个人脸检测框内出现,如果图片比较模糊的话建议降低一点
faces = face.detectMultiScale(gray,1.1,3,0,(200,200))
for (x,y,w,h) in faces:
# rectangle参数说明,要绘制的目标图像,矩形的第一个顶点,矩形对角线上的另一个顶点,线条的颜色,线条的宽度
img = cv2.rectangle(frame,(x,y),(x+w,y+h),(255,255,0),2)
gray_roi = gray[y:y+h,x:x+h]
cv2.imwrite('face.jpg',gray_roi) #保存图片
print('Image has saved')
cv2.imshow('摄像头',frame) #输出结果图
if cv2.waitKey(1) & 0xFF == ord('q'): #键盘q终止程序
break
cap.release() #释放cap
cv2.destroyAllWindows() #正常关闭绘图窗口
四、测试: