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的id()函数介绍
Feb 10 Python
python BeautifulSoup使用方法详解
Nov 21 Python
天翼开放平台免费短信验证码接口使用实例
Dec 18 Python
35个Python编程小技巧
Apr 01 Python
python搜索指定目录的方法
Apr 29 Python
运行django项目指定IP和端口的方法
May 14 Python
python2.7 安装pip的方法步骤(管用)
May 05 Python
将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例
Jan 04 Python
解决echarts中饼图标签重叠的问题
May 16 Python
keras topN显示,自编写代码案例
Jul 03 Python
Python 把两层列表展开平铺成一层(5种实现方式)
Apr 07 Python
Python 如何实现文件自动去重
Jun 02 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
php中的实现trim函数代码
2007/03/19 PHP
php学习笔记 数组遍历实现代码
2011/06/09 PHP
setcookie中Cannot modify header information-headers already sent by错误的解决方法详解
2013/05/08 PHP
Yii2搭建后台并实现rbac权限控制完整实例教程
2016/04/28 PHP
北京奥运官方网站幻灯切换效果flash版打包下载
2008/01/30 Javascript
吐槽一下我所了解的Node.js
2014/10/08 Javascript
JavaScript函数作用域链分析
2015/02/13 Javascript
js预加载图片方法汇总
2015/06/15 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(一)
2016/02/16 Javascript
JS使用onerror捕获异常示例
2016/08/03 Javascript
用nodejs的实现原理和搭建服务器(动态)
2016/08/10 NodeJs
详解Vue2.X的路由管理记录之 钩子函数(切割流水线)
2017/05/02 Javascript
AngularJS 验证码60秒倒计时功能的实现
2017/06/05 Javascript
JS简单实现滑动加载数据的方法示例
2017/10/18 Javascript
js中apply()和call()的区别与用法实例分析
2018/08/14 Javascript
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
layui实现左侧菜单点击右侧内容区显示
2019/07/26 Javascript
微信小程序canvas绘制圆角base64图片的实现
2019/08/18 Javascript
JS实现图片幻灯片效果代码实例
2020/05/21 Javascript
JavaScript检测是否开启了控制台(F12调试工具)
2020/10/02 Javascript
Vue项目利用axios请求接口下载excel
2020/11/17 Vue.js
Python中的匿名函数使用简介
2015/04/27 Python
Python控制Firefox方法总结
2019/06/03 Python
GDAL 矢量属性数据修改方式(python)
2020/03/10 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
2021/02/07 Python
HTML5 textarea高度自适应的两种方案
2020/04/08 HTML / CSS
SIXPAD智能健身仪英国官网:革命性的训练装备品牌
2018/09/27 全球购物
经理管理专业自荐信范文
2013/12/31 职场文书
总经理的岗位职责
2014/02/23 职场文书
供电工程专业求职信
2014/08/09 职场文书
工程索赔意向书
2014/08/30 职场文书
实习单位鉴定意见
2015/06/04 职场文书
2015年幼儿园国庆节活动总结
2015/07/30 职场文书
小学生纪律委员竞选稿
2015/11/19 职场文书
Python操作CSV格式文件的方法大全
2021/07/15 Python
Python可视化学习之seaborn绘制矩阵图详解
2022/02/24 Python