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中字典dict常用操作方法实例总结
Apr 04 Python
Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法
May 20 Python
详细讲解Python中的文件I/O操作
May 24 Python
使用python实现接口的方法
Jul 07 Python
python编写简易聊天室实现局域网内聊天功能
Jul 28 Python
numpy给array增加维度np.newaxis的实例
Nov 01 Python
python运行时强制刷新缓冲区的方法
Jan 14 Python
Python实战之制作天气查询软件
May 14 Python
PyQt4 treewidget 选择改变颜色,并设置可编辑的方法
Jun 17 Python
Pandas中resample方法详解
Jul 02 Python
python:目标检测模型预测准确度计算方式(基于IoU)
Jan 18 Python
以SQLite和PySqlite为例来学习Python DB API
Feb 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 判断访客是否为搜索引擎蜘蛛的函数代码
2011/07/29 PHP
php求正负数数组中连续元素最大值示例
2014/04/11 PHP
CI框架扩展系统核心类的方法分析
2016/05/23 PHP
php实现文件与16进制相互转换的方法示例
2017/02/16 PHP
PHP实现生成推广海报的方法详解
2018/03/14 PHP
定义JavaScript二维数组采用定义数组的数组来实现
2012/12/09 Javascript
js日期相关函数总结分享
2013/10/15 Javascript
javascript checkbox/radio onchange不能兼容ie8处理办法
2017/06/13 Javascript
深入浅析Vue不同场景下组件间的数据交流
2017/08/15 Javascript
关于定制FileField中的上传文件名称问题
2017/08/22 Javascript
vue修改对象的属性值后页面不重新渲染的实例
2018/08/09 Javascript
Vue常用的全选/反选的示例代码
2020/02/19 Javascript
搭建vscode+vue环境的详细教程
2020/08/31 Javascript
[51:53]完美世界DOTA2联赛循环赛 LBZS vs DM BO2第二场 11.01
2020/11/02 DOTA
[53:10]完美世界DOTA2联赛决赛日 FTD vs GXR 第二场 11.08
2020/11/11 DOTA
Python中使用支持向量机(SVM)算法
2017/12/26 Python
书单|人生苦短,你还不用python!
2017/12/29 Python
python编程使用协程并发的优缺点
2018/09/20 Python
pandas按行按列遍历Dataframe的几种方式
2019/10/23 Python
python 创建一维的0向量实例
2019/12/02 Python
Win下PyInstaller 安装和使用教程
2019/12/25 Python
pytorch sampler对数据进行采样的实现
2019/12/31 Python
澳大利亚二手奢侈品网站:Modsie
2019/09/23 全球购物
采购主管的岗位职责
2013/12/17 职场文书
综合办公室个人的自我评价
2013/12/22 职场文书
药学专业个人的自我评价
2013/12/31 职场文书
社区学习十八大感想
2014/01/22 职场文书
安全生产检查通报
2014/01/29 职场文书
志愿者服务感言
2014/02/27 职场文书
婚礼主持结束词
2014/03/13 职场文书
个人委托书范本
2014/04/02 职场文书
单位工作证明范文
2014/09/14 职场文书
2014年护士个人工作总结
2014/11/11 职场文书
运动会开幕式通讯稿
2015/07/18 职场文书
MySQL 使用SQL语句修改表名的实现
2021/04/07 MySQL
Python3.8官网文档之类的基础语法阅读
2021/09/04 Python