简洁的代码完成人脸识别,本文用到的人脸识别分类器在opencv-python的安装目录下可以找到,文件名haarcascade_frontalface_alt2.xml
上代码
import cv2
def getFaceIDimg(img):
cv2.namedWindow('1')
num = 0
frame = cv2.imread(img)
gray = cv2.cvtColor(frame,cv2.COLOR_RGB2GRAY)#灰度化,如果此行出现问题可使用cv2.imread(img,0)直接以灰度化读取
cv2.imshow('1',frame)
#加载分类器
classifier = cv2.CascadeClassifier('123.xml')
判断图片中人脸数量
faces = classifier.detectMultiScale(gray,scaleFactor=1.2,minNeighbors=1,minSize=(32,32))
for face in faces:
x,y,w,h, = face
image = frame[y:y+h,x:x+w]
#注意!此处采用绝对路径
cv2.imwrite('C:/Users/SLH/Desktop/data/{}.jpg'.format(num),image)
num+=1
cv2.waitKey(10)
cv2.destroyAllWindows()
if __name__ == '__main__':
getFaceIDimg('zb2.jpg')
OK,这样我们就能识别照片中的人脸啦。