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 相关文章推荐
pytyon 带有重复的全排列
Aug 13 Python
Python存取XML的常见方法实例分析
Mar 21 Python
使用实现pandas读取csv文件指定的前几行
Apr 20 Python
Sanic框架请求与响应实例分析
Jul 16 Python
python异步实现定时任务和周期任务的方法
Jun 29 Python
Pandas中resample方法详解
Jul 02 Python
Pytorch基本变量类型FloatTensor与Variable用法
Jan 08 Python
python可以用哪些数据库
Jun 22 Python
完美解决keras 读取多个hdf5文件进行训练的问题
Jul 01 Python
python单元测试框架pytest的使用示例
Oct 07 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
Nov 28 Python
Python基本的内置数据类型及使用方法
Apr 13 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获取当前网址url并替换参数或网址的方法
2010/06/06 PHP
php preg_replace替换实例讲解
2013/11/04 PHP
PHP入门之常量简介和系统常量
2014/05/12 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
2020/07/21 PHP
tp5 sum某个字段相加得到总数的例子
2019/10/18 PHP
jQuery中trigger()方法用法实例
2015/01/19 Javascript
探索angularjs+requirejs全面实现按需加载的套路
2016/02/26 Javascript
原生js编写autoComplete插件
2016/04/13 Javascript
jQuery中iframe的操作(点击按钮新增窗口)
2016/04/20 Javascript
jQuery的事件预绑定
2016/12/05 Javascript
jQuery插件HighCharts绘制2D带Label的折线图效果示例【附demo源码下载】
2017/03/08 Javascript
node简单实现一个更改头像功能的示例
2017/12/29 Javascript
详解vue axios用post提交的数据格式
2018/08/07 Javascript
基于vue手写tree插件的那点事儿
2019/08/20 Javascript
jdk1.8+vue elementui实现多级菜单功能
2020/09/24 Javascript
ES11屡试不爽的新特性,你用上了几个
2020/10/21 Javascript
简单谈谈offsetleft、offsetTop和offsetParent
2020/12/04 Javascript
vue自定义组件实现双向绑定
2021/01/13 Vue.js
python多线程编程方式分析示例详解
2013/12/06 Python
Python实现将DOC文档转换为PDF的方法
2015/07/25 Python
python UNIX_TIMESTAMP时间处理方法分析
2016/04/18 Python
pandas修改DataFrame列名的实现方法
2019/02/22 Python
python Django中models进行模糊查询的示例
2019/07/18 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
2020/04/17 Python
ITK 实现多张图像转成单个nii.gz或mha文件案例
2020/07/01 Python
Python系统公网私网流量监控实现流程
2020/11/23 Python
推荐10个CSS3 制作的创意下拉菜单效果
2014/02/11 HTML / CSS
华为慧通面试题
2012/09/11 面试题
生物化工专业个人自荐信
2013/09/26 职场文书
财务部经理岗位职责
2014/02/03 职场文书
怎样填写就业意向
2014/04/02 职场文书
领导班子四风表现材料
2014/08/23 职场文书
行政复议决定书
2015/06/24 职场文书
你会写请假条吗?
2019/06/26 职场文书
浅谈mysql返回Boolean类型的几种情况
2021/06/04 MySQL
Python实现将多张图片合成MP4视频并加入背景音乐
2022/04/28 Python