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+selenium开发环境搭建图文教程
Aug 11 Python
深入浅析Python的类
Jun 22 Python
Python 字符串与二进制串的相互转换示例
Jul 23 Python
Python基于SMTP协议实现发送邮件功能详解
Aug 14 Python
Python函数中不定长参数的写法
Feb 13 Python
Apache,wsgi,django 程序部署配置方法详解
Jul 01 Python
Django项目使用ckeditor详解(不使用admin)
Dec 17 Python
关于Keras模型可视化教程及关键问题的解决
Jan 24 Python
Python tkinter实现简单加法计算器代码实例
May 13 Python
解决python中import文件夹下面py文件报错问题
Jun 01 Python
python中pyplot基础图标函数整理
Nov 10 Python
python语言中pandas字符串分割str.split()函数
Aug 05 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
一漂亮的PHP图片验证码实例
2014/03/21 PHP
Joomla开启SEF的方法
2016/05/04 PHP
SAE实时日志接口SDK用法示例
2016/10/09 PHP
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
2007/01/22 Javascript
网络图片延迟加载实现代码 超越jquery控件
2010/03/27 Javascript
一个JQuery写的点击上下滚动的小例子
2011/08/27 Javascript
深入理解JavaScript系列(13) This? Yes,this!
2012/01/18 Javascript
深入理解javascript学习笔记(一) 编写高质量代码
2012/08/09 Javascript
addEventListener和attachEvent二者绑定的执行函数中的this不相同
2012/12/09 Javascript
javascript中普通函数的使用介绍
2013/12/19 Javascript
Javascript中的异步编程规范Promises/A详细介绍
2014/06/06 Javascript
jQuery异步获取json数据方法汇总
2014/12/22 Javascript
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
jQuery EasyUI中的日期控件DateBox修改方法
2016/11/09 Javascript
微信小程序 devtool隐藏的秘密
2017/01/21 Javascript
nodejs更改项目端口号的方法
2018/05/13 NodeJs
基于layui轮播图满屏是高度自适应的解决方法
2019/09/16 Javascript
封装 axios+promise通用请求函数操作
2020/08/11 Javascript
Python实现将xml导入至excel
2015/11/20 Python
Python中强大的命令行库click入门教程
2016/12/26 Python
python使用matplotlib绘图时图例显示问题的解决
2017/04/27 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
2019/01/29 Python
详解js文件通过python访问数据库方法
2019/03/03 Python
Django对models里的objects的使用详解
2019/08/17 Python
python为QT程序添加图标的方法详解
2020/03/09 Python
模具专业推荐信
2013/10/30 职场文书
动物科学专业毕业生的自我评价
2013/11/29 职场文书
如何填写个人简历自我评价
2013/12/10 职场文书
军人离婚协议书样本
2014/10/21 职场文书
幼儿教师个人总结
2015/02/05 职场文书
2015年客房服务员工作总结
2015/05/15 职场文书
黑暗中的舞者观后感
2015/06/18 职场文书
廉洁自律证明
2015/06/24 职场文书
初中英语教师个人工作总结2015
2015/07/21 职场文书
Ubuntu安装Mysql+启用远程连接的完整过程
2022/06/21 Servers