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脚本
Sep 01 Python
Python实现分割文件及合并文件的方法
Jul 10 Python
Ruby使用eventmachine为HTTP服务器添加文件下载功能
Apr 20 Python
详解Python的Flask框架中的signals信号机制
Jun 13 Python
python 使用pandas计算累积求和的方法
Feb 08 Python
python按键按住不放持续响应的实例代码
Jul 17 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
Nov 28 Python
Python中顺序表原理与实现方法详解
Dec 03 Python
Pycharm小白级简单使用教程
Jan 08 Python
Python 如何实现数据库表结构同步
Sep 29 Python
详解python3类型注释annotations实用案例
Jan 20 Python
python中的None与NULL用法说明
May 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
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
PHP CURL获取返回值的方法
2014/05/04 PHP
PHP小教程之实现双向链表
2014/06/12 PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
2014/06/12 PHP
MyEclipse常用配置图文教程
2014/09/11 PHP
php简单实现sql防注入的方法
2016/04/22 PHP
PHP新特性详解之命名空间、性状与生成器
2017/07/18 PHP
Laravel框架用户登陆身份验证实现方法详解
2017/09/14 PHP
JMenuTab简单使用说明
2008/03/13 Javascript
JQuery入门——事件切换之toggle()方法应用介绍
2013/02/05 Javascript
21个JavaScript事件(Events)属性汇总
2014/12/02 Javascript
jQuery使用height()获取高度需要注意的地方
2014/12/13 Javascript
Bootstrap选项卡学习笔记分享
2017/02/13 Javascript
node.js 核心http模块,起一个服务器,返回一个页面的实例
2017/09/11 Javascript
利用js编写网页进度条效果
2017/10/08 Javascript
详解Vue CLI3 多页应用实践和源码设计
2018/08/30 Javascript
Vue从TodoList中学父子组件通信
2019/02/05 Javascript
elementui之el-tebs浏览器卡死的问题和使用报错未注册问题
2019/07/06 Javascript
js+html实现点名系统功能
2019/11/05 Javascript
JS实现iframe中子父页面跨域通讯的方法分析
2020/03/10 Javascript
详解elementUI中input框无法输入的问题
2020/04/27 Javascript
[01:13:01]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第三场
2018/04/05 DOTA
Python中执行存储过程及获取存储过程返回值的方法
2017/10/07 Python
python 中字典嵌套列表的方法
2018/07/03 Python
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
在spyder IPython console中,运行代码加入参数的实例
2020/04/20 Python
服务理念标语
2014/06/18 职场文书
我的中国梦演讲稿小学篇
2014/08/19 职场文书
2014社会治安综合治理工作总结
2014/12/04 职场文书
烟台的海导游词
2015/02/02 职场文书
2016形势与政策学习心得体会
2016/01/12 职场文书
深入理解python协程
2021/06/15 Python
python中的装饰器该如何使用
2021/06/18 Python
Pycharm连接远程服务器并远程调试的全过程
2021/06/24 Python
python geopandas读取、创建shapefile文件的方法
2021/06/29 Python
python双向链表实例详解
2022/05/25 Python