python 做人脸检测

import cv2
# pip install opencv
import numpy as np
import os,dlib,glob,numpy
from skimage import io
#使用Haar级联分类做人脸检测
face_cascade=cv2.CascadeClassifier(r"D:\anaconda\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml")
eye_cascade = cv2.CascadeClassifier(r"D:\anaconda\Lib\site-packages\cv2\data\haarcascade_eye.xml")
# 路径是自己opencv中xml的位置

faces_folder_path ='train_images'
save_path='kuang'+'\\'  #这里将标记好的图片放在kuang这个文件下
candidate=[]
for f in glob.glob(os.path.join(faces_folder_path,"*.jpg")):
    img = io.imread(f)
    name=f.split('\\')[-1]
    candidate.append(f.split('\\')[-1].split('.')[0])
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    # 检测脸
    faces = face_cascade.detectMultiScale(gray, 1.3,5)
    for (x, y, w, h) in faces:
        img = cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)
        roi_gray = gray[y: y + h, x: x + w]
        roi_color = img[y: y + h, x: x + w]
        eyes = eye_cascade.detectMultiScale(roi_gray)
        for(ex, ey, ew, eh) in eyes:
            cv2.rectangle(roi_color, (ex, ey), (ex + ew, ey + eh), (0, 255, 0), 2)
	cv2.imencode('.jpg', img)[1].tofile(save_path+name) #避免输出的图片出现中文乱码
结果:
   

```python
#cv2.imwrite(save_path+name, img) 保存图片的中文名字会出现乱码

python 做人脸检测_第1张图片

你可能感兴趣的:(python,人脸识别,人脸检测)