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文件操作基本流程代码实例
Dec 11 Python
Python http接口自动化测试框架实现方法示例
Dec 06 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
Apr 30 Python
python循环输出三角形图案的例子
Nov 22 Python
pytorch 实现打印模型的参数值
Dec 30 Python
详解Python3 中的字符串格式化语法
Jan 15 Python
Django操作session 的方法
Mar 09 Python
python安装cx_Oracle和wxPython的方法
Sep 14 Python
如何快速一次性卸载所有python包(第三方库)呢
Oct 20 Python
Django用户认证系统如何实现自定义
Nov 12 Python
python 使用cycle构造无限循环迭代器
Dec 02 Python
Python实现socket库网络通信套接字
Jun 04 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和js如何通过json互相传递数据相关问题探讨
2013/02/26 PHP
php xml常用函数的集合(比较详细)
2013/06/06 PHP
php基于websocket搭建简易聊天室实践
2016/10/24 PHP
JavaScript中使用replace结合正则实现replaceAll的效果
2010/06/04 Javascript
javascript string字符串优化问题
2011/07/31 Javascript
js处理表格对table进行修饰
2014/05/26 Javascript
Node.js中对通用模块的封装方法
2014/06/06 Javascript
js代码实现的加入收藏效果并兼容主流浏览器
2014/06/23 Javascript
js正则表达式中exec用法实例
2015/07/23 Javascript
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
2016/07/09 Javascript
springMVC结合AjaxForm上传文件
2016/07/12 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
2016/09/04 Javascript
JS中setTimeout和setInterval的最大延时值详解
2017/02/13 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
详解ES7 Decorator 入门解析
2019/02/18 Javascript
微信小程序使用wx.request请求服务器json数据并渲染到页面操作示例
2019/03/30 Javascript
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
在vue项目中封装echarts的步骤
2020/12/25 Vue.js
Python实现读取目录所有文件的文件名并保存到txt文件代码
2014/11/22 Python
python使用分治法实现求解最大值的方法
2015/05/12 Python
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
python 数据清洗之数据合并、转换、过滤、排序
2017/02/12 Python
对python中return和print的一些理解
2017/08/18 Python
超简单的Python HTTP服务
2019/07/22 Python
关于python中plt.hist参数的使用详解
2019/11/28 Python
Python基于Tensor FLow的图像处理操作详解
2020/01/15 Python
Python爬虫爬取ts碎片视频+验证码登录功能
2021/02/22 Python
德国旅行、体验和活动的预订平台:Watado
2019/12/04 全球购物
什么是ESB?请介绍一下ESB?
2015/05/27 面试题
白酒市场营销方案
2014/02/25 职场文书
会计岗位职责
2015/02/03 职场文书
党员转正意见怎么写
2015/06/03 职场文书
餐厅营销的秘密:为什么老顾客会流水?
2019/08/08 职场文书
详解MySQL多版本并发控制机制(MVCC)源码
2021/06/23 MySQL
MySQL数据库如何给表设置约束详解
2022/03/13 MySQL
使用ICOM IC-R9500接收机同时测评十台收音机中波接收性能
2022/05/10 无线电