Maison  >  Article  >  développement back-end  >  partage de code python pour obtenir des visages

partage de code python pour obtenir des visages

小云云
小云云original
2018-03-30 16:53:141666parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn