Python人脸识别初探


Posted in Python onDecember 21, 2017

本文实例为大家分享了Python人脸识别的具体代码,供大家参考,具体内容如下

1.利用opencv库

sudo apt-get install libopencv-*
sudo apt-get install python-opencv
sudo apt-get install python-numpy

2 .Python实现

import os
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("/usr/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))
       a=im.crop(f)
       file_name=os.path.join(save_path,str(count)+".jpg")
       a.save(file_name)
    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("test3.jpg")

3.效果对比

Python人脸识别初探

4.参考资料

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python基于回溯法子集树模板解决0-1背包问题实例
Sep 02 Python
Python金融数据可视化汇总
Nov 17 Python
python url 参数修改方法
Dec 26 Python
Python线程池模块ThreadPoolExecutor用法分析
Dec 28 Python
Python字符串的一些操作方法总结
Jun 10 Python
python 求1-100之间的奇数或者偶数之和的实例
Jun 11 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
Jul 03 Python
Python学习笔记之Zip和Enumerate用法实例分析
Aug 14 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
May 13 Python
详解python datetime模块
Aug 17 Python
Django-silk性能测试工具安装及使用解析
Nov 28 Python
Python基础之元组与文件知识总结
May 19 Python
python中判断文件编码的chardet(实例讲解)
Dec 21 #Python
python 设置文件编码格式的实现方法
Dec 21 #Python
Python+OpenCV人脸检测原理及示例详解
Oct 19 #Python
Python 查看文件的编码格式方法
Dec 21 #Python
python利用OpenCV2实现人脸检测
Apr 16 #Python
Python判断文件和字符串编码类型的实例
Dec 21 #Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
Dec 21 #Python
You might like
SONY SRF-M100的电路分析
2021/03/02 无线电
php,ajax实现分页
2008/03/27 PHP
php中使用explode查找某个字符是否存在的方法
2011/07/12 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
2014/04/08 PHP
一款简单实用的php操作mysql数据库类
2014/12/08 PHP
yii2实现 "上一篇,下一篇" 功能的代码实例
2017/02/04 PHP
PHP实现文件上传功能实例代码
2017/05/18 PHP
PHP生成图表pChart的示例解析
2020/07/31 PHP
传智播客学习之JavaScript基础篇
2009/11/13 Javascript
Jquery中获取iframe的代码
2011/01/11 Javascript
js调用activeX获取u盘序列号的代码
2011/11/21 Javascript
js全屏显示显示代码的三种方法
2013/11/11 Javascript
基于iframe实现类似于ajax的页面无刷新
2014/05/31 Javascript
8个超实用的jQuery功能代码分享
2015/01/08 Javascript
js全选实现和判断是否有复选框选中的方法
2015/02/17 Javascript
JavaScript中DOM详解
2015/04/13 Javascript
js实时获取并显示当前时间的方法
2015/07/31 Javascript
JavaScript模拟push
2016/03/06 Javascript
jQuery javascript获得网页的高度与宽度的实现代码
2016/04/26 Javascript
Vue.extend构造器的详解
2017/07/17 Javascript
基于vue-ssr的静态网站生成器VuePress 初体验
2018/04/17 Javascript
JS如何获取地址栏的参数实例讲解
2018/10/06 Javascript
vue的keep-alive用法技巧
2019/08/15 Javascript
使用next.js开发网址缩短服务的方法
2020/06/17 Javascript
python中退出多层循环的方法
2018/11/27 Python
python+pyqt5实现24点小游戏
2019/01/24 Python
浅谈pyqt5中信号与槽的认识
2019/02/17 Python
对python中的float除法和整除法的实例详解
2019/07/20 Python
pandas如何处理缺失值
2019/07/31 Python
前端H5 Video常见使用场景简介
2020/08/21 HTML / CSS
小学学习雷锋活动总结
2014/07/03 职场文书
小班下学期个人总结
2015/02/12 职场文书
巴黎圣母院读书笔记
2015/06/26 职场文书
golang 接口嵌套实现复用的操作
2021/04/29 Golang
Java实现聊天机器人完善版
2021/07/04 Java/Android
MySQL自定义函数及触发器
2022/08/05 MySQL