python code sharing for getting faces

小云云
Release: 2018-03-30 16:53:14
Original
1674 people have browsed it

This article mainly shares with you the code sharing of python to obtain faces. I hope that everyone can complete the function of python to obtain faces based on this article.

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 -*-
Copy after login

Related recommendations:

Example detailed explanation of Python face recognition

Implementation method of face detection in JavaScript

Example of using OpenCV for face detection in python

The above is the detailed content of python code sharing for getting faces. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template