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正则表达式匹配ip地址实例
Oct 09 Python
六个窍门助你提高Python运行效率
Jun 09 Python
利用Python开发微信支付的注意事项
Aug 19 Python
python写入并获取剪切板内容的实例
May 31 Python
深入浅析Python中list的复制及深拷贝与浅拷贝
Sep 03 Python
python使用KNN算法识别手写数字
Apr 25 Python
python实现的自动发送消息功能详解
Aug 15 Python
python实现机器人卡牌
Oct 06 Python
如何基于Python制作有道翻译小工具
Dec 16 Python
Python通过两个dataframe用for循环求笛卡尔积
Apr 29 Python
使用Python实现批量ping操作方法
May 06 Python
Matplotlib自定义坐标轴刻度的实现示例
Jun 18 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
web目录下不应该存在多余的程序(安全考虑)
2012/05/09 PHP
ThinkPHP实现二级循环读取的方法
2014/11/03 PHP
php基础设计模式大全(注册树模式、工厂模式、单列模式)
2015/08/31 PHP
PHP创建word文档的方法(平台无关)
2016/03/29 PHP
yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
2016/04/20 PHP
iOS+PHP注册登录系统 PHP部分(上)
2016/12/26 PHP
php实现生成code128条形码的方法详解
2017/07/19 PHP
php实现的简单多进程服务器类完整示例
2020/02/01 PHP
获取服务器传来的数据 用JS去空格的正则表达式
2012/03/26 Javascript
什么是json和jsonp,jQuery json实例详详细说明
2012/12/11 Javascript
在JS数组特定索引处指定位置插入元素
2014/07/27 Javascript
如何通过js实现图片预览功能【附实例代码】
2016/03/30 Javascript
利用JS判断鼠标移入元素的方向
2016/12/11 Javascript
JS中用try catch对代码运行的性能影响分析
2016/12/26 Javascript
基于AngularJS的简单使用详解
2017/09/10 Javascript
关于layui表单中按钮自动提交的解决方法
2019/09/09 Javascript
[57:22]完美世界DOTA2联赛PWL S2 FTD vs PXG 第二场 11.27
2020/12/01 DOTA
python求质数的3种方法
2018/09/28 Python
python遍历文件夹找出文件夹后缀为py的文件方法
2018/10/21 Python
Python将8位的图片转为24位的图片实现方法
2018/10/24 Python
python实现回旋矩阵方式(旋转矩阵)
2019/12/04 Python
Python 实现自动完成A4标签排版打印功能
2020/04/09 Python
如何基于python对接钉钉并获取access_token
2020/04/21 Python
美国迪克体育用品商店:DICK’S Sporting Goods
2018/07/24 全球购物
开普敦通行证:Cape Town Pass
2019/07/18 全球购物
历史学专业个人的自我评价
2013/10/13 职场文书
总务岗位职责
2013/11/19 职场文书
军校本科大学生自我评价
2014/01/14 职场文书
信用社员工先进事迹材料
2014/02/04 职场文书
周年庆典主持词
2014/04/02 职场文书
《第一朵杏花》教学反思
2014/04/16 职场文书
开学典礼策划方案
2014/05/28 职场文书
中学生逃课检讨书
2015/02/17 职场文书
升学宴学生致辞
2015/09/29 职场文书
Python实现Excel文件的合并(以新冠疫情数据为例)
2022/03/20 Python
【海涛dota解说】DCG联赛第一周 LGD VS DH
2022/04/01 DOTA