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中endswith()函数的基本使用
Apr 07 Python
Django中实现点击图片链接强制直接下载的方法
May 14 Python
浅谈python中的数字类型与处理工具
Aug 02 Python
Jupyter中直接显示Matplotlib的图形方法
May 24 Python
selenium3+python3环境搭建教程图解
Dec 07 Python
python编写猜数字小游戏
Oct 06 Python
python返回数组的索引实例
Nov 28 Python
Python实现冒泡排序算法的完整实例
Nov 04 Python
Django搭建项目实战与避坑细节详解
Dec 06 Python
selenium+headless chrome爬虫的实现示例
Jan 08 Python
Python日志打印里logging.getLogger源码分析详解
Jan 17 Python
Pytorch中的数据集划分&正则化方法
May 27 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递归返回值时出现的问题解决办法
2013/02/19 PHP
PHP中is_file不能替代file_exists的理由
2014/03/04 PHP
PHP+Redis开发的书签案例实战详解
2019/07/09 PHP
TP框架实现上传一张图片和批量上传图片的方法分析
2020/04/23 PHP
jQuery 1.5 源码解读 面向中高阶JSER
2011/04/05 Javascript
Jquery 切换不同图片示例代码
2013/12/05 Javascript
JavaScript函数定义的常见注意事项小结
2014/09/16 Javascript
45个JavaScript编程注意事项、技巧大全
2015/02/11 Javascript
JavaScript实现的一个倒计时的类
2015/03/12 Javascript
javascript 中的 delete及delete运算符
2015/11/15 Javascript
js实现的下拉框二级联动效果
2016/04/30 Javascript
JS实现物体带缓冲的间歇运动效果示例
2016/12/22 Javascript
纯JS单页面赛车游戏制作代码分享
2017/03/03 Javascript
js实现颜色阶梯渐变效果(Gradient算法)
2017/03/21 Javascript
详解Immutable及 React 中实践
2018/03/01 Javascript
webpack@v4升级踩坑(小结)
2018/10/08 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
2018/10/09 Javascript
基于Vue-cli快速搭建项目的完整步骤
2018/11/03 Javascript
JavaScript遍历数组的方法代码实例
2020/01/14 Javascript
vue框架中props的typescript用法详解
2020/02/17 Javascript
vue 实现把路由单独分离出来
2020/08/13 Javascript
深入理解Django自定义信号(signals)
2018/10/15 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
2019/08/09 Python
python实现ip地址查询经纬度定位详解
2019/08/30 Python
tensorflow 实现自定义梯度反向传播代码
2020/02/10 Python
Python Switch Case三种实现方法代码实例
2020/06/18 Python
python实现将中文日期转换为数字日期
2020/07/14 Python
酒店执行总经理岗位职责
2013/12/15 职场文书
环保倡议书100字
2014/05/15 职场文书
经典演讲稿开场白
2014/08/25 职场文书
支部书记四风对照材料
2014/08/28 职场文书
股份合作协议书
2014/09/10 职场文书
幼儿园大班毕业评语
2014/12/31 职场文书
滴水洞导游词
2015/02/10 职场文书
2016国庆节67周年寄语
2015/12/07 职场文书
ztree+ajax实现文件树下载功能
2021/05/18 Javascript