Python OpenCV调用摄像头检测人脸并截图


Posted in Python onAugust 20, 2020

本文实例为大家分享了Python OpenCV调用摄像头检测人脸并截图的具体代码,供大家参考,具体内容如下

注意:需要在python中安装OpenCV库,同时需要下载OpenCV人脸识别模型haarcascade_frontalface_alt.xml,模型可在OpenCV-PCA-KNN-SVM_face_recognition中下载。

使用OpenCV调用摄像头检测人脸并连续截图100张

#-*- coding: utf-8 -*-
# import 进openCV的库
import cv2

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

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

 #视频来源,可以来自一段已存好的视频,也可以直接来自USB摄像头
 cap = cv2.VideoCapture(camera_idx)

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

 #识别出人脸后要画的边框的颜色,RGB格式, color是一个不可增删的数组
 color = (0, 255, 0)

 num = 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

  #将当前帧保存为图片
  img_name = "%s/%d.jpg" % (path_name, num)
  #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])

  num += 1
  if num > (catch_pic_num): #如果超过指定最大保存数量退出循环
   break

  #画出矩形框
  cv2.rectangle(frame, (x - 10, y - 10), (x + w + 10, y + h + 10), color, 2)

  #显示当前捕捉到了多少人脸图片了,这样站在那里被拍摄时心里有个数,不用两眼一抹黑傻等着
  font = cv2.FONT_HERSHEY_SIMPLEX
  cv2.putText(frame,'num:%d/100' % (num),(x + 30, y + 30), font, 1, (255,0,255),4)

  #超过指定最大保存数量结束程序
 if num > (catch_pic_num): break

 #显示图像
 cv2.imshow(window_name, frame)
 c = cv2.waitKey(10)
 if c & 0xFF == ord('q'):
  break

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

if __name__ == '__main__':
 # 连续截100张图像,存进image文件夹中
 CatchPICFromVideo("get face", 0, 99, "/image")

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

Python 相关文章推荐
python监控网卡流量并使用graphite绘图的示例
Apr 27 Python
详细解析Python当中的数据类型和变量
Apr 25 Python
Python排序算法实例代码
Aug 10 Python
python中验证码连通域分割的方法详解
Jun 04 Python
python requests post多层字典的方法
Dec 27 Python
解决PySide+Python子线程更新UI线程的问题
Jan 11 Python
Python随机函数库random的使用方法详解
Aug 21 Python
python序列类型种类详解
Feb 26 Python
基于Python组装jmx并调用JMeter实现压力测试
Nov 03 Python
django学习之ajax post传参的2种格式实例
May 14 Python
python异步的ASGI与Fast Api实现
Jul 16 Python
Python 的 sum() Pythonic 的求和方法详细
Oct 16 Python
使用PYTHON解析Wireshark的PCAP文件方法
Jul 23 #Python
Django 静态文件配置过程详解
Jul 23 #Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
Jul 23 #Python
pandas通过字典生成dataframe的方法步骤
Jul 23 #Python
Python基于OpenCV实现人脸检测并保存
Jul 23 #Python
python 读取修改pcap包的例子
Jul 23 #Python
Django 用户认证组件使用详解
Jul 23 #Python
You might like
一步一步学习PHP(6) 面向对象
2010/02/16 PHP
php将csv文件导入到mysql数据库的方法
2014/12/24 PHP
php截取html字符串及自动补全html标签的方法
2015/01/15 PHP
php无序树实现方法
2015/07/28 PHP
PHP设计模式之简单投诉页面实例
2016/02/24 PHP
laravel7学习之无限级分类的最新实现方法
2020/09/30 PHP
理解JavaScript变量作用域更轻松
2009/10/25 Javascript
JS input文本框禁用右键和复制粘贴功能的代码
2010/04/15 Javascript
javascript XMLHttpRequest对象全面剖析
2010/04/24 Javascript
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
在chrome浏览器中,防止input[text]和textarea在聚焦时出现黄色边框的解决方法
2011/05/24 Javascript
JS判断元素为数字的奇异写法分享
2012/08/01 Javascript
jquery交替变换颜色的三种方法 实例代码
2013/11/19 Javascript
使用原生js实现页面蒙灰(mask)效果示例代码
2014/06/20 Javascript
JS实现的数组去除重复数据算法小结
2017/11/17 Javascript
利用vue.js实现被选中状态的改变方法
2018/02/08 Javascript
详解JS转换数值函数Number()、parseInt()、parseFloat()
2018/08/24 Javascript
微信小程序页面滚动到指定位置代码实例
2019/09/07 Javascript
vuex actions异步修改状态的实例详解
2019/11/06 Javascript
京东优选小程序的实现代码示例
2020/02/25 Javascript
Python冒泡排序注意要点实例详解
2016/09/09 Python
python数据封装json格式数据
2018/03/04 Python
python中调试或排错的五种方法示例
2019/09/12 Python
tensorflow 实现数据类型转换
2020/02/17 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
2020/02/29 Python
python实现FTP循环上传文件
2020/03/20 Python
Python 按比例获取样本数据或执行任务的实现代码
2020/12/03 Python
利用CSS3的transition属性实现滑动效果
2015/08/05 HTML / CSS
皇马官方商城:Real Madrid Store
2016/09/02 全球购物
Orlebar Brown官网:设计师泳裤和泳装
2020/12/08 全球购物
意大利辅助药品、药物和补品在线销售:FarmaEurope
2020/04/29 全球购物
师范院校学生自荐信范文
2013/12/27 职场文书
合伙开公司协议书范本
2014/10/28 职场文书
给老师的一封感谢信
2015/01/20 职场文书
祝福语集锦:送给毕业同学祝福语
2019/11/21 职场文书
Python语言内置数据类型
2022/02/24 Python