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实现excel转sqlite的方法
Jul 17 Python
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
Dec 14 Python
利用python实现简单的邮件发送客户端示例
Dec 23 Python
Python标准库笔记struct模块的使用
Feb 22 Python
Python读取YUV文件,并显示的方法
Dec 04 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
Mar 27 Python
python程序快速缩进多行代码方法总结
Jun 23 Python
pytorch方法测试详解——归一化(BatchNorm2d)
Jan 15 Python
python画图常规设置方式
Mar 05 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
Jun 27 Python
接口自动化多层嵌套json数据处理代码实例
Nov 20 Python
python爬虫工具例举说明
Nov 30 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中feof()函数实例测试
2014/08/23 PHP
php实现比较两个字符串日期大小的方法
2015/05/12 PHP
php简单复制文件的方法
2016/05/09 PHP
extJs 常用到的增,删,改,查操作代码
2009/12/28 Javascript
从面试题学习Javascript 面向对象(创建对象)
2012/03/30 Javascript
Jquery颜色选择器ColorPicker实现代码
2012/11/14 Javascript
node.js中的querystring.stringify方法使用说明
2014/12/10 Javascript
JS获取表格内指定单元格html内容的方法
2015/03/31 Javascript
jQuery实现鼠标经过弹出提示信息的地图热点效果
2015/08/07 Javascript
javascript 中的console.log和弹出窗口alert
2016/08/30 Javascript
纯JS打造网页中checkbox和radio的美化效果
2016/10/13 Javascript
详解jQuery插件开发方式
2016/11/22 Javascript
JS实现微信弹出搜索框 多条件查询功能
2016/12/13 Javascript
微信小程序 基础知识css样式media标签
2017/02/15 Javascript
JavaScript中最常用的10种代码简写技巧总结
2017/06/28 Javascript
JS构造一个html文本内容成文件流形式发送到后台
2018/07/31 Javascript
详解Vue中watch对象内属性的方法
2019/02/01 Javascript
TypeScript开发Node.js程序的方法
2019/04/30 Javascript
vue 动态给每个页面添加title、关键词和描述的方法
2020/08/28 Javascript
[03:18]DOTA2放量测试专访820:希望玩家加入国服大家庭
2013/08/25 DOTA
[01:01:01]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第一场 10.29
2020/10/29 DOTA
Centos Python2 升级到Python3的简单实现
2016/06/21 Python
Python自动化运维_文件内容差异对比分析
2017/12/13 Python
Python Unittest自动化单元测试框架详解
2018/04/04 Python
pyQt4实现俄罗斯方块游戏
2018/06/26 Python
Python队列、进程间通信、线程案例
2019/10/25 Python
PyTorch 导数应用的使用教程
2020/08/31 Python
python利用tkinter实现图片格式转换的示例
2020/09/28 Python
香蕉共和国加拿大官网:Banana Republic加拿大
2018/08/06 全球购物
Moda Italia荷兰:意大利男士服装
2019/08/31 全球购物
学校十一活动方案
2014/02/01 职场文书
2014年党务公开实施方案
2014/02/27 职场文书
大学推普周活动总结
2015/05/07 职场文书
python3 删除所有自定义变量的操作
2021/04/08 Python
python树莓派通过队列实现进程交互的程序分析
2021/07/04 Python
spring cloud gateway中如何读取请求参数
2021/07/15 Java/Android