python openCV实现摄像头获取人脸图片
作者:weixin_43863419 发布时间:2021-08-16 08:21:03
标签:python,openCV,人脸图片
本文实例为大家分享了python openCV实现摄像头获取人脸图片的具体代码,供大家参考,具体内容如下
在机器学习中,训练模型需要大量图片,通过openCV中的库可以快捷的调用摄像头,截取图片,可以快速的获取大量人脸图片
需要注意将CascadeClassifier方法中的地址改为自己包cv2包下面的文件
import cv2
def load_img(path,name,mun = 100,add_with = 0):
# 获取人脸识别模型
#
#
#以下路径需要更改为自己环境下xml文件
#一般在环境下的Liba\site-packages\cv2\data\haarcascade_frontalface_alt2.xml
classfier = cv2.CascadeClassifier('F:\\pyhton\\pytonApp\\Lib\\site-packages\\cv2\\data\\haarcascade_frontalface_alt2.xml')
#
#
# 创建一个窗口
cv2.namedWindow('face')
# 打开第一个个摄像头
cap = cv2.VideoCapture(0)
i = 0 # 计数
if cap.isOpened():
while i < mun:
ok,frame = cap.read() # 读取一帧图片
if not ok:
continue
faces = classfier.detectMultiScale(frame,1.2,3,minSize=(32,32))
if len(faces) > 0:
for face in faces:
x, y, w, h = face
cv2.rectangle(frame,(x-add_with,y-add_with), (x+w+add_with,y+h+add_with), (0,255,0), 2)
img = frame[y-add_with:y+h+add_with,x-add_with:x+w+add_with]
save_path = path+name+'_'+str(i)+'.jpg'
print(save_path)
cv2.imwrite(save_path,img)
i += 1
cv2.imshow('face', frame)
c = cv2.waitKey(10)
if c & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
if __name__ == '__main__' :
# 第一个参数为保存图片的路径
# 第二个参数为保存图片名字的开头
# 第三个参数为图片的数量
# 第四个参数可以调节图片的大小
load_img('E:\\Screenshots\\home\\','rongdang',1000,20)
效果如下:
来源:https://blog.csdn.net/weixin_43863419/article/details/88364128


猜你喜欢
- 慢查询首先,无论进行何种优化,开启慢查询都算是前置条件。慢查询机制,将记录过慢的查询语句(事件),从而为DB维护人员提供优化目标。检查慢查询
- 项目需要在electron的项目中新打开一个窗口,利用webpack作为静态资源打包器,发现在webpack中可以设置多页面的入口,今天来讲
- 本章的内容完全基于上文的理论基础,实际上一旦理解了索引背后的机制,那么选择高性能的策略就变成了纯粹的推理,并且可以理解这些策略背后的逻辑。示
- 前言:Python函数之所以很好用,还有一点就的能传递参数实现不同场景的灵活使用,对于函数参数的类型小编总结了6种不同的形式。下面来一一学习
- 关于权限管理的思考最近用laravel设计后台,后台需要有个权限管理。权限管理实质上分为两个部分,首先是认证,然后是权限。认证部分非常好做,
- 在工作中遇到过 个问题执行一条代码时间过长 而且还不报错,卡死在那。还要继续执行下面代码,如何操作。下面是个简单的实例pip安装 第三方ev
- 前言为了了解跟python数据分析有关行业的信息,大概地了解一下对这个行业的要求以及薪资状况,我决定从网上获取信息并进行分析。既然想要分析就
- 在程序的开发过程中,处理分页是大家接触比较频繁的事件,因为现在软件基本上都是与数据库进行挂钩的。但效率又是我们所追求的,如果是像原来那样把所
- 这是我为了学习tkinter用python 写的一个下载m3u8视频的小程序,程序使用了多线程下载,下载后自动合并成一个视频文件,方便播放。
- 1.什么是SQL注入 所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL
- 安装包 PyCharm笔者使用PyCharm2018.3.2,请根据机器是64位还是32位来选择对应的PyCharm版本。(相信绝大部分人都
- Python获取电脑截图有多种方式,具体如下:PIL中的ImageGrab模块windows APIPyQtpyautoguiPIL中的Im
- df.sort_index()实现按索引排序,默认以从小到大的升序方式排列,如希望按降序排列,传入ascending = Falseimpo
- function ten2eight(x){ var s=[]; var r=''; while(x>0){ s.pu
- 在大的互联网公司干技术的基本都会碰到测试、预发布、线上这种多套环境的,来实现测试和线上正式环境的隔离,这种情况下,就难免会碰到秀逗了把测试的
- 项目输出项目先决条件要使用python构建井字游戏,我们需要tkinter模块和python的基本概念Tkinter模块是用于渲染图形的标准
- 一、函数解释setdiff1d(ar1, ar2, assume_unique=False)1.功能:找到2个数组中集合元素的差异。2.返回
- RocketMQ 是什么Github 上关于 RocketMQ 的介绍:RcoketMQ 是一款低延迟、高可靠、可伸缩、易于使用的消息中间件
- 对于三目运算符(ternary operator),python可以用conditional expressions来替代如对于x<5
- 1,phpthumb_ico 是生成ICO图标的类,源码如下class phpthumb_ico {function phpthumb_ic