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 26 Python
Python 功能和特点(新手必学)
Dec 30 Python
python绘制条形图方法代码详解
Dec 19 Python
python如何为创建大量实例节省内存
Mar 20 Python
python list是否包含另一个list所有元素的实例
May 04 Python
使用django-guardian实现django-admin的行级权限控制的方法
Oct 30 Python
python ipset管理 增删白名单的方法
Jan 14 Python
python实现网页自动签到功能
Jan 21 Python
使用pyinstaller打包PyQt4程序遇到的问题及解决方法
Jun 24 Python
python 实现单例模式的5种方法
Sep 23 Python
接口自动化多层嵌套json数据处理代码实例
Nov 20 Python
Pygame Time时间控制的具体使用详解
Nov 17 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
CI框架中libraries,helpers,hooks文件夹详细说明
2014/06/10 PHP
PHP实现截取中文字符串不出现?号的解决方法
2016/12/29 PHP
监控 url fragment变化的js代码
2010/04/19 Javascript
JavaScript Date对象 日期获取函数
2010/12/19 Javascript
EASYUI TREEGRID异步加载数据实现方法
2012/08/22 Javascript
浅谈jquery事件处理
2015/04/24 Javascript
js限制文本框只能输入中文的方法
2015/08/11 Javascript
轻松学习jQuery插件EasyUI EasyUI实现树形网络基本操作(2)
2015/11/30 Javascript
带有定位当前位置的百度地图前端web api实例代码
2016/06/21 Javascript
JS实现点击事件统计的简单实例
2016/07/10 Javascript
ExtJs的Ext.Ajax.request实现waitMsg等待提示效果
2017/06/14 Javascript
微信小程序radio组件使用详解
2018/01/31 Javascript
解决vue处理axios post请求传参的问题
2018/03/05 Javascript
vue组件name的作用小结
2018/05/23 Javascript
基于Vue实现可以拖拽的树形表格实例详解
2018/10/18 Javascript
微信小程序位置授权处理方法
2019/06/13 Javascript
vuex存储token示例
2019/11/11 Javascript
纯js+css实现仿移动端淘宝网站的弹出详情框功能
2019/12/29 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
2020/11/09 Javascript
Python实现的批量下载RFC文档
2015/03/10 Python
Python双精度浮点数运算并分行显示操作示例
2017/07/21 Python
Python使用base64模块进行二进制数据编码详解
2018/01/11 Python
DataFrame中去除指定列为空的行方法
2018/04/08 Python
python画双y轴图像的示例代码
2019/07/07 Python
python logging日志模块原理及操作解析
2019/10/12 Python
Python如何使用BeautifulSoup爬取网页信息
2019/11/26 Python
Python 动态变量名定义与调用方法
2020/02/09 Python
Python持续监听文件变化代码实例
2020/07/22 Python
python中pathlib模块的基本用法与总结
2020/08/17 Python
PyChon中关于Jekins的详细安装(推荐)
2020/12/28 Python
HTML5进阶段内联标签汇总(小篇)
2016/07/13 HTML / CSS
美国复古街头服饰精品店:Need Supply Co.
2017/02/22 全球购物
白莲教口号
2014/06/18 职场文书
七一建党节演讲稿
2014/09/11 职场文书
房屋出租协议书范本(标准版)
2014/09/24 职场文书
Python list去重且保持原顺序不变的方法
2021/04/03 Python