最近想做个人脸识别的测试,主要是来识别自己的脸,那么在这之前就必须准备我自己的人脸数据集。自己一张一张拍照片肯定是不好的,直接让电脑自己来生成数据集。
现在网上已经有很多检测人脸的代码了,并不复杂,基本上都是固定动作,我们直接拿这些代码稍加修改就可以了。
# -*- coding: utf-8 -*-
"""
Created on Sat Apr 2 00:30:30 2022
@author: 2540817538(有问题请联系此QQ)
"""
import cv2
#调用分类器,都是一些现成的,如果实在找不到路径可以直接用下面的网盘链接下载
face_cascade = cv2.CascadeClassifier("C:/Users/25408/anaconda3/pkgs/libopencv-4.0.1-hbb9e17c_0/Library/etc/haarcascades/haarcascade_frontalface_default.xml")
cap=cv2.VideoCapture(0)
count=0
num=int(input('想要多少张人脸照片'))
while True:
ret,img=cap.read()
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray,1.3,5)
for faceRect in faces:
#x,y是左上角的坐标,w是宽,h是高
x,y,w,h = faceRect
#绘制矩形框框住人脸
cv2.rectangle(img, (x, y), (x+w, y+w), (255, 0, 0))
count=count+1
if (count<num):
#将人脸截取下来并保存,自己设置保存地址
cv2.imwrite("E:\\sptp\\"+str('face')+'.'+str(count)+'.jpg',gray[y:y+h,x:x+w])
cv2.imshow("img",img)
if cv2.waitKey(1) & 0xFF == ord('q') :
#键盘输入q退出
break
cap.release()
cv2.destroyAllWindows()
分类器文件链接:https://pan.baidu.com/s/1Q6cQipb7QWb3f2_vQgGWEQ
提取码:xbxt
人脸检测效果:
数据集制作情况:
有了人脸数据集,就可以进行后面的步骤了。
文章评论