python获取人脸的代码分享


本文摘自php中文网,作者小云云,侵删。

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

usage:python getface.py src out

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

# -*- 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获取人脸的代码分享的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python实现购物车程序

Python实现有序字典的详细介绍(附代码)

编写专属的Python模块

Python中的列表与元组有什么区别?一文搞懂元组与列表的异同点

Python模块之time模块介绍

详解Python中for循环的工作原理

Python中如何django使用haystack:全文检索的框架的实例讲解

Python是干什么的

Python如何处理表格?

Python的format函数是什么意思

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...