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的微信聊天机器人示例代码
Mar 03 Python
Python编程实现删除VC临时文件及Debug目录的方法
Mar 22 Python
Python正则表达式常用函数总结
Jun 24 Python
python 搭建简单的http server,可直接post文件的实例
Jan 03 Python
Python爬虫实战之12306抢票开源
Jan 24 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
Aug 27 Python
Python hashlib模块加密过程解析
Nov 05 Python
python实现IOU计算案例
Apr 12 Python
python中format函数如何使用
Jun 22 Python
Python图像读写方法对比
Nov 16 Python
Python可视化学习之matplotlib内置单颜色
Feb 24 Python
Python利用capstone实现反汇编
Apr 06 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 - Html Transfer Code
2006/10/09 PHP
PHP生成唯一订单号
2015/07/05 PHP
yii2使用GridView实现数据全选及批量删除按钮示例
2017/03/01 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
2017/07/04 PHP
实现php删除链表中重复的结点
2018/09/27 PHP
Jquery 自定义动画概述及示例
2013/03/29 Javascript
js绑定事件this指向发生改变的问题解决方法
2013/04/23 Javascript
Javascript添加监听与删除监听用法详解
2014/12/19 Javascript
解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法
2015/12/03 Javascript
JavaScript中文件上传API详解
2016/04/01 Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
2016/04/29 Javascript
基于bootstrap实现广告轮播带图片和文字效果
2016/07/22 Javascript
Bootstrap栅格系统学习笔记
2016/11/25 Javascript
详解vue组件基础
2018/05/04 Javascript
vue源码中的检测方法的实现
2019/09/26 Javascript
vue-cli4使用全局less文件中的变量配置操作
2020/10/21 Javascript
[01:07]DOTA2次级职业联赛 - Fpb战队宣传片
2014/12/01 DOTA
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
Python模块学习 datetime介绍
2012/08/27 Python
python计算最大优先级队列实例
2013/12/18 Python
Python中AND、OR的一个使用小技巧
2015/02/18 Python
利用Python中unittest实现简单的单元测试实例详解
2017/01/09 Python
python操作xlsx文件的包openpyxl实例
2018/05/03 Python
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
2019/01/10 Python
django页面跳转问题及注意事项
2019/07/18 Python
Python列表元素常见操作简单示例
2019/10/25 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
2020/02/17 Python
宣传策划类求职信范文
2014/01/31 职场文书
四年级学生评语大全
2014/04/21 职场文书
预备党员期盼十八届四中全会召开思想汇报
2014/10/17 职场文书
幼儿教师辞职信范文
2015/03/02 职场文书
2015年十一国庆节演讲稿
2015/03/20 职场文书
公司联欢会主持词
2015/07/04 职场文书
房屋买卖定金协议书
2016/03/21 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书
SQL中的三种去重方法小结
2021/11/01 SQL Server