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 自动安装 Rising 杀毒软件
Apr 24 Python
可用于监控 mysql Master Slave 状态的python代码
Feb 10 Python
Python模拟用户登录验证
Sep 11 Python
Django中的CBV和FBV示例介绍
Feb 25 Python
Python动态生成多维数组的方法示例
Aug 09 Python
python读取有密码的zip压缩文件实例
Feb 08 Python
python opencv minAreaRect 生成最小外接矩形的方法
Jul 01 Python
python实现京东订单推送到测试环境,提供便利操作示例
Aug 09 Python
对django layer弹窗组件的使用详解
Aug 31 Python
Python面向对象封装操作案例详解 II
Jan 02 Python
python中的被动信息搜集
Apr 29 Python
Python实现滑雪小游戏
Sep 25 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
gd库图片下载类实现下载网页所有图片的php代码
2012/08/20 PHP
PHP使用ob_start生成html页面的方法
2014/11/07 PHP
php使用递归函数实现数字累加的方法
2015/03/16 PHP
PHP中include/require/include_once/require_once使用心得
2016/08/28 PHP
PHP常用日期加减计算方法实例小结
2018/07/31 PHP
PHP PDOStatement::rowCount讲解
2019/02/01 PHP
laravel5.6 框架邮件队列database驱动简单demo示例
2020/01/26 PHP
JS代码判断IE6,IE7,IE8,IE9的函数代码
2013/08/02 Javascript
jquery对象和javascript对象即DOM对象相互转换
2014/08/07 Javascript
javascript实现简单加载随机色方块
2015/12/25 Javascript
关于安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
2016/05/17 Javascript
Bootstrap开关(switch)控件学习笔记分享
2016/05/30 Javascript
原生js实现日期计算器功能
2017/02/17 Javascript
理解Koa2中的async&await的用法
2018/02/05 Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
2018/05/18 Javascript
node中实现删除目录的几种方法
2019/06/24 Javascript
js实现上下左右键盘控制div移动
2020/01/16 Javascript
原生js实现点击按钮复制内容到剪切板
2020/11/19 Javascript
[01:11:21]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第一场 3月6日
2021/03/11 DOTA
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
2018/06/13 Python
python实现多层感知器MLP(基于双月数据集)
2019/01/18 Python
TensorFlow梯度求解tf.gradients实例
2020/02/04 Python
pycharm 设置项目的根目录教程
2020/02/12 Python
python 获取当前目录下的文件目录和文件名实例代码详解
2020/03/10 Python
python接入支付宝的实例操作
2020/07/20 Python
浅谈amaze-ui中datepicker和datetimepicker注意的几点
2020/08/21 HTML / CSS
三下乡活动方案
2014/01/31 职场文书
幼儿园教师节活动方案
2014/02/02 职场文书
《穷人》教学反思
2014/04/08 职场文书
党员评议思想汇报
2014/10/08 职场文书
2014年学生会生活部工作总结
2014/11/07 职场文书
2014年妇幼保健工作总结
2014/12/08 职场文书
思想政治表现评语
2015/01/04 职场文书
2015年度个人思想工作总结
2015/04/08 职场文书
反腐倡廉影片观后感
2015/06/08 职场文书
vue.js 使用原生js实现轮播图
2022/04/26 Vue.js