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 相关文章推荐
pandas 选择某几列的方法
Jul 03 Python
win7下python3.6安装配置方法图文教程
Jul 31 Python
numpy添加新的维度:newaxis的方法
Aug 02 Python
django与小程序实现登录验证功能的示例代码
Feb 19 Python
Python为何不能用可变对象作为默认参数的值
Jul 01 Python
Python 中的 global 标识对变量作用域的影响
Aug 12 Python
关于pytorch中网络loss传播和参数更新的理解
Aug 20 Python
python数据预处理 :数据共线性处理详解
Feb 24 Python
Python3实现个位数字和十位数字对调, 其乘积不变
May 03 Python
Python使用itcaht库实现微信自动收发消息功能
Jul 13 Python
基于注解实现 SpringBoot 接口防刷的方法
Mar 02 Python
Python中使用ipython的详细教程
Jun 22 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
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
2019/10/09 PHP
qTip 基于JQuery的Tooltip插件[兼容性好]
2010/09/01 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
快速解决FusionCharts联动的中文乱码问题
2013/12/04 Javascript
JS比较2个日期间隔的示例代码
2014/04/15 Javascript
JavaScript使用setTimeout实现延迟弹出警告框的方法
2015/04/07 Javascript
javascript实现table表格隔行变色的方法
2015/05/13 Javascript
angularjs学习笔记之双向数据绑定
2015/09/26 Javascript
浅谈JavaScript变量的自动转换和语句
2016/06/12 Javascript
使用snowfall.jquery.js实现爱心满屏飞的效果
2017/01/05 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
2017/02/14 Javascript
node.js 中间件express-session使用详解
2017/05/20 Javascript
微信小程序滚动Tab实现左右可滑动切换
2017/08/17 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
2018/01/18 Javascript
vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法
2018/08/22 Javascript
关于AngularJS中ng-repeat不更新视图的解决方法
2018/09/30 Javascript
[40:12]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python实现的Kmeans++算法实例
2014/04/26 Python
浅谈python socket函数中,send与sendall的区别与使用方法
2017/05/09 Python
Python中的TCP socket写法示例
2018/05/11 Python
python 实现二维列表转置
2019/12/02 Python
Python enumerate内置库用法解析
2020/02/24 Python
为什么是 Python -m
2020/06/19 Python
Python3爬虫里关于Splash负载均衡配置详解
2020/07/10 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
2020/07/30 Python
HTML5通过navigator.mediaDevices.getUserMedia调用手机摄像头问题
2020/04/27 HTML / CSS
意大利包包和行李箱销售网站:Bagaglio.it
2021/03/02 全球购物
应届生会计电算化求职信
2013/10/03 职场文书
高中的职业生涯规划书
2013/12/28 职场文书
房地产营销策划方案
2014/02/08 职场文书
四年大学自我鉴定
2014/02/17 职场文书
制作部班长职位说明书
2014/02/26 职场文书
食品流通安全承诺书
2014/05/22 职场文书
Python Numpy之linspace用法说明
2021/04/17 Python
Python基础之教你怎么在M1系统上使用pandas
2021/05/08 Python
解析mybatis-plus中的resultMap简单使用
2021/11/23 Java/Android