Cet article partage principalement avec vous le partage de code de python pour obtenir des visages. J'espère que tout le monde pourra compléter la fonction de python pour obtenir des visages sur la base de cet article.
utilisation : python getface.py src out
# -*- codeing: utf-8 -*- import sys import os import cv2 import dlib input_dir = sys.argv[1] output_dir = sys.argv[2] print(input_dir) print(output_dir) size = 64 if not os.path.exists(output_dir): os.makedirs(output_dir) # 使用dlib自带的frontal_face_detector作为我们的特征提取器 detector = dlib.get_frontal_face_detector() index = 1 for (path, dirnames, filenames) in os.walk(input_dir): for filename in filenames: if filename.endswith('.jpg'): print('Being processed picture %s' % index) img_path = path + '/' + filename # 从文件读取图片 img = cv2.imread(img_path) # 转为灰度图片 gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 使用detector进行人脸检测 dets为返回的结果 dets = detector(gray_img, 1) # 使用enumerate 函数遍历序列中的元素以及它们的下标 # 下标i即为人脸序号 # left:人脸左边距离图片左边界的距离 ;right:人脸右边距离图片左边界的距离 # top:人脸上边距离图片上边界的距离 ;bottom:人脸下边距离图片上边界的距离 for i, d in enumerate(dets): x1 = d.top() if d.top() > 0 else 0 y1 = d.bottom() if d.bottom() > 0 else 0 x2 = d.left() if d.left() > 0 else 0 y2 = d.right() if d.right() > 0 else 0 # img[y:y+h,x:x+w] face = img[x1:y1, x2:y2] # 调整图片的尺寸 face = cv2.resize(face, (size, size)) #cv2.imshow('image', face) # 保存图片 cv2.imwrite(output_dir + '/' + str(index) + '.jpg', face) index += 1 key = cv2.waitKey(30) & 0xff if key == 27: sys.exit(0) # -*- codeing: utf-8 -*-
Recommandations associées :
Exemple détaillé de reconnaissance faciale Python
Méthode d'implémentation de détection de visage en JavaScript
Exemple d'utilisation d'OpenCV pour la détection de visage en python
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!