当前位置:Gxlcms > Python > python获取人脸的代码分享

python获取人脸的代码分享

时间:2021-07-01 10:21:17 帮助过:65人阅读

本文主要和大家分享python获取人脸的代码分享,希望大家根据本文能完成python获取人脸的功能。

usage: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 -*-

相关推荐:

实例详解Python人脸识别

JavaScript人脸检测的实现方法

python中使用OpenCV进行人脸检测的例子

以上就是python获取人脸的代码分享的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行