python+opencv实现的简单人脸识别代码示例

 更新时间:2017年11月14日 09:32:38   作者:决心1119  
这篇文章主要介绍了图像识别 python+opencv的简单人脸识别,具有一定参考价值,需要的朋友可以参考下。

#
源码如下:

#!/usr/bin/env python
#coding=utf-8
import os
from PIL import Image, ImageDraw
import cv
def detect_object(image):
 '''检测图片,获取人脸在图片中的坐标'''
 grayscale = cv.CreateImage((image.width, image.height), 8, 1)
 cv.CvtColor(image, grayscale, cv.CV_BGR2GRAY)
 cascade = cv.Load("/opt/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt_tree.xml")
 rect = cv.HaarDetectObjects(grayscale, cascade, cv.CreateMemStorage(), 1.1, 2,
  cv.CV_HAAR_DO_CANNY_PRUNING, (20,20))
 result = []
 for r in rect:
  result.append((r[0][0], r[0][1], r[0][0]+r[0][2], r[0][1]+r[0][3]))
 return result
def process(infile):
 '''在原图上框出头像并且截取每个头像到单独文件夹'''
 image = cv.LoadImage(infile);
 if image:
  faces = detect_object(image)
 im = Image.open(infile)
 path = os.path.abspath(infile)
 save_path = os.path.splitext(path)[0]+"_face"
 try:
  os.mkdir(save_path)
 except:
  pass
 if faces:
  draw = ImageDraw.Draw(im)
  count = 0
  for f in faces:
   count += 1
   draw.rectangle(f, outline=(255, 0, 0))
  drow_save_path = os.path.join(save_path,"out.jpg")
  im.save(drow_save_path, "JPEG", quality=80)
 else:
  print "Error: cannot detect faces on %s" % infile
if __name__ == "__main__":
 process("/Users/zhangdebin/Documents/checkFace2.jpg")

示例图片1:

可以看出,对于比较干净的人脸头像,使用opencv库haarcascade_frontalface_alt_tree.xml的识别精度很高(这张达到了100%),同时,对于表情变化的人脸也有很强的鲁棒性。

示例图片2:

但是,对于上传的比较随意的头像照片,比如示例图片2这些有帽子、眼镜遮挡的人脸图片,识别效果就会很差,本组只有唯一一个没有帽子遮挡的人脸被识别成功

本次只是简单的测试了下,python使用opencv库的人脸特征进行人脸识别的效果,仅供初学参考。

总结

以上就是本文关于python+opencv实现的简单人脸识别代码示例的全部内容,希望对大家有所帮助,感兴趣的朋友可以参阅本站:

python图像常规操作

在Python web中实现验证码图片代码分享

Python生成数字图片代码分享

如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关文章

  • python 以16进制打印输出的方法

    python 以16进制打印输出的方法

    今天小编就为大家分享一篇python 以16进制打印输出的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Python字符串中添加、插入特定字符的方法

    Python字符串中添加、插入特定字符的方法

    这篇文章主要介绍了Python字符串中添加、插入特定字符的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • Python猫眼电影最近上映的电影票房信息

    Python猫眼电影最近上映的电影票房信息

    这篇文章主要介绍了Python猫眼电影最近上映的电影票房信息,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • python自动化工具日志查询分析脚本代码实现

    python自动化工具日志查询分析脚本代码实现

    这篇文章主要介绍了python日志查询分析脚本代码的实现,分为受控节点和主控节点,大家参考使用吧
    2013-11-11
  • python实现简易猜数小游戏

    python实现简易猜数小游戏

    大家好,本篇文章主要讲的是python实现简易猜数小游戏,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2022-01-01
  • Python读取csv文件做K-means分析详情

    Python读取csv文件做K-means分析详情

    这篇文章主要介绍了Python读取csv文件做K-means分析详情,基于时间序列的分析2D读取时间列和高程做一下分析。下文更多详细介绍需要的小伙伴可以参考一下
    2022-03-03
  • python 录制系统声音的示例

    python 录制系统声音的示例

    这篇文章主要介绍了python 录制系统声音的示例,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-12-12
  • pygame画点线方法详解

    pygame画点线方法详解

    这篇文章主要介绍了pygame画点线的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-11-11
  • Python数据类型中的“冒号“[::]——分片与步长操作示例

    Python数据类型中的“冒号“[::]——分片与步长操作示例

    这篇文章主要介绍了Python数据类型中的“冒号“[::]——分片与步长操作,结合实例形式分析了Python基本数据类型中的分片与步长使用方法及相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • python时间序列数据转为timestamp格式的方法

    python时间序列数据转为timestamp格式的方法

    这篇文章主要介绍了python时间序列数据转为timestamp格式的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08

最新评论