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操作gmail实例
Jan 14 Python
Python最基本的数据类型以及对元组的介绍
Apr 14 Python
Python使用cookielib模块操作cookie的实例教程
Jul 12 Python
python 读取DICOM头文件的实例
May 07 Python
简单谈谈python基本数据类型
Sep 26 Python
python得到单词模式的示例
Oct 15 Python
Python魔法方法详解
Feb 13 Python
python把转列表为集合的方法
Jun 28 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
Oct 16 Python
opencv中图像叠加/图像融合/按位操作的实现
Apr 01 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
May 22 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
Jun 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
用PHP 4.2书写安全的脚本
2006/10/09 PHP
PHP中break及continue两个流程控制指令区别分析
2011/04/18 PHP
记录PHP错误日志 display_errors与log_errors的区别
2012/10/09 PHP
使用ltrace工具跟踪PHP库函数调用的方法
2016/04/25 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
按给定几率进行随机抽取的js代码
2010/12/28 Javascript
window.requestAnimationFrame是什么意思,怎么用
2013/01/13 Javascript
Javascript 绘制 sin 曲线过程附图
2014/08/21 Javascript
简述JavaScript中正则表达式的使用方法
2015/06/15 Javascript
jQuery插件EasyUI获取当前Tab中iframe窗体对象的方法
2016/08/05 Javascript
从零学习node.js之详解异步控制工具async(八)
2017/02/27 Javascript
jQuery使用动画队列自定义动画操作示例
2018/06/16 jQuery
详解Vue中使用Echarts的两种方式
2018/07/03 Javascript
JS的Ajax与后端交互数据的实例
2018/08/08 Javascript
vue-cli中实现响应式布局的方法
2021/03/02 Vue.js
MySQLdb ImportError: libmysqlclient.so.18解决方法
2014/08/21 Python
查看Python安装路径以及安装包路径小技巧
2015/04/28 Python
简单介绍Python的Django框架的dj-scaffold项目
2015/05/30 Python
Python验证企业工商注册码
2015/10/25 Python
python 平衡二叉树实现代码示例
2018/07/07 Python
Python3.6.x中内置函数总结及讲解
2019/02/22 Python
python使用phoenixdb操作hbase的方法示例
2019/02/28 Python
Python numpy数组转置与轴变换
2019/11/15 Python
python3爬取torrent种子链接实例
2020/01/16 Python
详解pandas中iloc, loc和ix的区别和联系
2020/03/09 Python
HTML5图片预览实例分享
2014/06/04 HTML / CSS
意大利包包和行李箱销售网站:Bagaglio.it
2021/03/02 全球购物
法人代表任命书范本
2014/06/05 职场文书
党员干部反四风对照检查材料思想汇报
2014/09/14 职场文书
2014年保安个人工作总结
2014/11/13 职场文书
警示教育片观后感
2015/06/17 职场文书
运动会闭幕式致辞
2015/07/29 职场文书
python编写函数注意事项总结
2021/03/29 Python
opencv检测动态物体的实现
2021/07/21 Python
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
2021/10/16 Python
python如何为list实现find方法
2022/05/30 Python