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中__init__和__new__的区别详解
Jul 09 Python
python利用matplotlib库绘制饼图的方法示例
Dec 18 Python
Python 装饰器实现DRY(不重复代码)原则
Mar 05 Python
Django objects的查询结果转化为json的三种方式的方法
Nov 07 Python
详解重置Django migration的常见方式
Feb 15 Python
深入浅析python3中的unicode和bytes问题
Jul 03 Python
通过python扫描二维码/条形码并打印数据
Nov 14 Python
python 实现一个反向单位矩阵示例
Nov 29 Python
pytorch 模型的train模式与eval模式实例
Feb 20 Python
Python实现初始化不同的变量类型为空值
Jun 02 Python
Python实现文件压缩和解压的示例代码
Aug 12 Python
python单元测试之pytest的使用
Jun 07 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自动加载的两种实现方法
2010/06/21 PHP
一个PHP实现的轻量级简单爬虫
2015/07/08 PHP
PHP生成可点击刷新的验证码简单示例
2016/05/13 PHP
参考:关于Javascript中实现暂停的几篇文章
2007/03/04 Javascript
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
基于JQuery 的消息提示框效果代码
2011/07/31 Javascript
js单例模式详解实例
2013/11/21 Javascript
JavaScript中property和attribute的区别详细介绍
2015/03/03 Javascript
使用window.prompt()实现弹出用户输入的对话框
2015/04/13 Javascript
EasyUI加载完Html内容样式渲染完成后显示
2016/07/25 Javascript
jQuery simpleModal插件的使用介绍
2016/08/30 Javascript
JavaScript中const、var和let区别浅析
2016/10/11 Javascript
Vue.js学习笔记之修饰符详解
2017/07/25 Javascript
Vue 路由 过渡动效 数据获取方法
2018/07/31 Javascript
javascript动态创建对象的属性详解
2018/11/07 Javascript
js中对象和面向对象与Json介绍
2019/01/21 Javascript
webpack中如何加载静态文件的方法步骤
2019/05/18 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
2019/09/21 Javascript
js刷新页面location.reload()用法详解
2019/12/09 Javascript
使用python提取html文件中的特定数据的实现代码
2013/03/24 Python
pyqt和pyside开发图形化界面
2014/01/22 Python
python中的字典操作及字典函数
2018/01/03 Python
使用Python 统计高频字数的方法
2019/01/31 Python
python实现跨excel sheet复制代码实例
2020/03/03 Python
哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程
2020/05/07 Python
Python Sqlalchemy如何实现select for update
2020/10/12 Python
Python通过队列来实现进程间通信的示例
2020/10/14 Python
使用纯HTML5编写一款网页上的时钟的代码分享
2015/11/16 HTML / CSS
Lacoste澳大利亚官网:服装、鞋类及配饰
2018/11/14 全球购物
Puma印度官网:德国运动品牌
2019/10/06 全球购物
应用服务器有那些
2012/01/19 面试题
生物科学专业职业规划书范文
2014/02/11 职场文书
《毛主席在花山》教学反思
2014/04/20 职场文书
公共场所标语
2014/06/30 职场文书
关于安全的广播稿
2014/10/23 职场文书
幼儿园小班教师随笔
2015/08/14 职场文书