代码示例:
import cv2 import os
path_to_images = '/path/to/images/folder' img_folder = os.listdir(path_to_images) img_list = [os.path.join(path_to_images, img) for img in img_folder]
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
hog = cv2.HOGDescriptor() hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())
for img_path in img_list: img = cv2.imread(img_path) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 检测人脸
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
# 检测头部
(h, w) = img.shape[:2]
rects, weights = hog.detectMultiScale(gray, winStride=(4, 4), padding=(8, 8), scale=1.05)
# 结合结果,确定裁剪区域并保存
for (x, y, w, h) in faces: