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


Posted in Python onNovember 14, 2017

#
源码如下:

#!/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:

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

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

示例图片2:

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

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

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

总结

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

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

Python 相关文章推荐
Python中的测试模块unittest和doctest的使用教程
Apr 14 Python
Python入门教程之运算符与控制流
Aug 17 Python
Python实现的自定义多线程多进程类示例
Mar 23 Python
python 通过字符串调用对象属性或方法的实例讲解
Apr 21 Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
Jul 11 Python
Python实现快速傅里叶变换的方法(FFT)
Jul 21 Python
详解Python是如何实现issubclass的
Jul 24 Python
对Python中一维向量和一维向量转置相乘的方法详解
Aug 26 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
Sep 11 Python
Python实现打印实心和空心菱形
Nov 23 Python
Pytorch.nn.conv2d 过程验证方式(单,多通道卷积过程)
Jan 03 Python
python实现图书馆抢座(自动预约)功能的示例代码
Sep 29 Python
解读! Python在人工智能中的作用
Nov 14 #Python
python利用有道翻译实现"语言翻译器"的功能实例
Nov 14 #Python
TensorFlow在MAC环境下的安装及环境搭建
Nov 14 #Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
Nov 14 #Python
Python中import机制详解
Nov 14 #Python
AI人工智能 Python实现人机对话
Nov 13 #Python
Python编程实现蚁群算法详解
Nov 13 #Python
You might like
使用Curl进行抓取远程内容时url中文编码问题示例探讨
2013/10/29 PHP
PHP延迟静态绑定示例分享
2014/06/22 PHP
PHP生成plist数据的方法
2015/06/16 PHP
PHP中16个高危函数整理
2019/09/19 PHP
浅谈laravel5.5 belongsToMany自身的正确用法
2019/10/17 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
extjs 列表框(multiselect)的动态添加列表项的方法
2009/07/31 Javascript
JQuery FlexiGrid的asp.net完美解决方案 dotNetFlexGrid-.Net原生的异步表格控件
2010/09/12 Javascript
IE8对JS通过属性和数组遍历解析不一样的地方探讨
2013/05/06 Javascript
Node.js抓取中文网页乱码问题和解决方法
2015/02/10 Javascript
JavaScript中setUTCFullYear()方法的使用简介
2015/06/12 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
2015/12/25 Javascript
nodejs基础知识
2017/02/03 NodeJs
浅谈原生JS中的延迟脚本和异步脚本
2017/07/12 Javascript
NodeJS http模块用法示例【创建web服务器/客户端】
2019/11/05 NodeJs
vue 中几种传值方法(3种)
2019/11/12 Javascript
VUEX-action可以修改state吗
2019/11/19 Javascript
Vue中多元素过渡特效的解决方案
2020/02/05 Javascript
Linux中安装Python的交互式解释器IPython的教程
2016/06/13 Python
浅谈五大Python Web框架
2017/03/20 Python
Python中反射和描述器总结
2018/09/23 Python
Django之模型层多表操作的实现
2019/01/08 Python
对python中if语句的真假判断实例详解
2019/02/18 Python
Python3实现从排序数组中删除重复项算法分析
2019/04/03 Python
Python StringIO如何在内存中读写str
2020/01/07 Python
tensorflow 重置/清除计算图的实现
2020/01/19 Python
如何在VSCode下使用Jupyter的教程详解
2020/07/13 Python
GEOX鞋美国官方网站:意大利会呼吸的鞋
2017/07/12 全球购物
3个CCIE对一个工程师的面试题
2012/05/06 面试题
教育学专业毕业生的自我评价
2013/11/21 职场文书
大学校园毕业自我鉴定
2014/01/15 职场文书
安全资金保障制度
2014/01/23 职场文书
物业经理自我鉴定
2014/03/03 职场文书
社区学习雷锋活动总结
2014/04/25 职场文书
保研推荐信格式
2015/03/25 职场文书
借条格式范本
2015/05/25 职场文书