Python基于OpenCV实现人脸检测并保存


Posted in Python onJuly 23, 2019

本文实例为大家分享了Python基于OpenCV实现人脸检测,并保存的具体代码,供大家参考,具体内容如下

安装opencv

如果安装了pip的话,Opencv的在windows的安装可以直接通过cmd命令pip install opencv-python(只需要主要模块),也可以输入命令pip install opencv-contrib-python(如果需要main模块和contrib模块)
详情可以点击此处

导入opencv

import cv2

所有包都包含haarcascade文件。这个文件很重要!!!
cv2.data.haarcascades可以用作数据文件夹的快捷方式。例如:

cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_frontalface_default.xml")

代码

#-*- coding: utf-8 -*-
# import openCV的库
import cv2
import os, math, operator
from PIL import Image
from functools import reduce


###调用电脑摄像头检测人脸并截图

def CatchPICFromVideo(window_name, path_name):
 cv2.namedWindow(window_name)

 #电脑摄像头
 cap = cv2.VideoCapture(0)

 #告诉OpenCV使用人脸识别分类器
 classfier = cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_frontalface_default.xml")

 #检测人脸后要画的边框的颜色
 color = (0, 255, 0)

 while cap.isOpened():
 ok, frame = cap.read() #读取一帧数据
 if not ok:
  break

 grey = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) #将当前桢图像转换成灰度图像

 #人脸检测,1.2和2分别为图片缩放比例和需要检测的有效点数
 faceRects = classfier.detectMultiScale(grey, scaleFactor = 1.2, minNeighbors = 3, minSize = (32, 32))
 if len(faceRects) > 0:  #大于0则检测到人脸
  for faceRect in faceRects: #单独框出每一张人脸
  x, y, w, h = faceRect

   #画出矩形框
  cv2.rectangle(frame, (x - 10, y - 10), (x + w + 10, y + h + 10), color, 2)
  
  k = cv2.waitKey(100) #每0.1秒读一次键盘
  if k == ord("z") or k == ord("Z"): #如果输入z
   #将当前帧保存为图片
   img_name = path_name
   print(img_name)
   image = frame[y - 10: y + h + 10, x - 10: x + w + 10]
   cv2.imwrite(img_name, image,[int(cv2.IMWRITE_PNG_COMPRESSION), 9])
   break 
   
 #显示图像
 cv2.imshow(window_name, frame)
 #退出摄像头界面
 c = cv2.waitKey(100)
 if c == ord("q") or c == ord("Q"): 
  break

 #释放摄像头并销毁所有窗口
 cap.release()
 cv2.destroyAllWindows()


os.system("cls") #清屏
recogname = "recogface.jpg" #预存的人脸文件
CatchPICFromVideo("get face",recogname)

功能:

虽然能框住人脸,但是效率还不是很高。
按Z或z可以将框住的人脸截取保存

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

Python 相关文章推荐
Python语法快速入门指南
Oct 12 Python
12步教你理解Python装饰器
Feb 25 Python
Python中字符串的格式化方法小结
May 03 Python
python构建自定义回调函数详解
Jun 20 Python
python 实现登录网页的操作方法
May 11 Python
对numpy中的数组条件筛选功能详解
Jul 02 Python
使用python将时间转换为指定的格式方法
Nov 12 Python
python基于paramiko将文件上传到服务器代码实现
Jul 08 Python
Python使用enumerate获取迭代元素下标
Feb 03 Python
Python基于Twilio及腾讯云实现国际国内短信接口
Jun 18 Python
Python使用DFA算法过滤内容敏感词
Apr 22 Python
Python中使用tkFileDialog实现文件选择、保存和路径选择
May 20 Python
python 读取修改pcap包的例子
Jul 23 #Python
Django 用户认证组件使用详解
Jul 23 #Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
Jul 23 #Python
利用Python库Scapy解析pcap文件的方法
Jul 23 #Python
python3.x提取中文的正则表达式示例代码
Jul 23 #Python
Python Pandas 箱线图的实现
Jul 23 #Python
Django 开发调试工具 Django-debug-toolbar使用详解
Jul 23 #Python
You might like
PHP4之COOKIE支持详解
2006/10/09 PHP
Yii1.1中通过Sql查询进行的分页操作方法
2017/03/16 PHP
基于php双引号中访问数组元素报错的解决方法
2018/02/01 PHP
PDO::inTransaction讲解
2019/01/28 PHP
对字符串进行HTML编码和解码的JavaScript函数
2010/02/01 Javascript
最短的javascript:地址栏载入脚本代码
2011/10/13 Javascript
js 连接数据库如何操作数据库中的数据
2012/11/23 Javascript
jquery中对于批量deferred的处理方法
2014/01/22 Javascript
js取整数、取余数的方法
2014/05/11 Javascript
jquery 中ajax执行的优先级
2015/06/22 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
Bootstrap登陆注册页面开发教程
2016/07/12 Javascript
JavaScript面试题(指针、帽子和女朋友)
2016/11/23 Javascript
解决ajax不能访问本地文件问题(利用js跨域原理)
2017/01/24 Javascript
如何实现小程序与小程序之间的跳转
2020/11/04 Javascript
Python运算符重载用法实例分析
2015/06/01 Python
浅谈Python中的zip()与*zip()函数详解
2018/02/24 Python
简单实现Python爬取网络图片
2018/04/01 Python
pycharm远程linux开发和调试代码的方法
2018/07/17 Python
python3安装crypto出错及解决方法
2019/07/30 Python
在PyTorch中Tensor的查找和筛选例子
2019/08/18 Python
pandas分组聚合详解
2020/04/10 Python
详解如何用canvas画一个微笑的表情
2019/03/14 HTML / CSS
HTML5单页面手势滑屏切换原理
2016/03/21 HTML / CSS
Forever 21美国官网:美国标志性快时尚品牌
2017/02/20 全球购物
捷克时尚网上商店:OTTO
2018/03/15 全球购物
安全的后院和健身蹦床:JumpSport
2019/07/15 全球购物
捷克家电和家具购物网站:OKAY.cz
2020/07/23 全球购物
物流专业大学生职业生涯规划书范文
2014/01/15 职场文书
技校个人求职信范文
2014/01/25 职场文书
教师自我鉴定范文
2014/03/20 职场文书
市场营销专业毕业生求职信
2014/03/26 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
大学学生会主席竞选稿
2015/11/19 职场文书
MySQL Threads_running飙升与慢查询的相关问题解决
2021/05/08 MySQL
python 实现体质指数BMI计算
2021/05/26 Python