接触图像领域的应该对于opencv都不会感到陌生,这个应该算是功能十分强劲的一个算法库了,当然了,使用起来也是很方便的,之前使用Windows7的时候出现多该库难以安装成功的情况,现在这个问题就不存在了,需要安装包的话可以去我的资源中下载使用,使用pip安装方式十分地便捷。

今天主要是基于opencv模块来调用笔记本的内置摄像头,然后从视频流中获取到人脸的图像数据用于之后的人脸识别项目,也就是为了构建可用的数据集。整个实现过程并不复杂,具体如下:

#!usr/bin/env python
#encoding:utf-8'''
__Author__:沂水寒城
功能: Python  opencv调用摄像头获取个人图片
使用方法:启动摄像头后需要借助键盘输入操作来完成图片的获取工作c(change): 生成存储目录p(photo): 执行截图q(quit): 退出拍摄OpenCV简介
1、videoCapture()方法打开摄像摄像头变量 cv2.VideoCapture(n)   n为整数内置摄像头为0,若有其他摄像头则依次为1,2,3,...cap=cv2.VideoCapture(0)  打开内置摄像头
2、cap.isOpened()方法判断摄像头是否处于打开,返回结果为:True、False
3、ret,img=cap.read()  读取图像布尔变量,图像变量=cap.read()
4、cap.release()  释放摄像头
5、action=cv2.waitKey(n)  获取用户输入,同时可获取按键的ASCLL码值
'''import os
import cv2
import sys
reload(sys)
sys.setdefaultencoding('utf-8')def cameraAutoForPictures(saveDir='data/'):'''调用电脑摄像头来自动获取图片'''if not os.path.exists(saveDir):os.makedirs(saveDir)count=1  #图片计数索引cap=cv2.VideoCapture(0)width,height,w=640,480,360cap.set(cv2.CAP_PROP_FRAME_WIDTH,width)cap.set(cv2.CAP_PROP_FRAME_HEIGHT,height)crop_w_start=(width-w)//2crop_h_start=(height-w)//2print 'width: ',widthprint 'height: ',heightwhile True:ret,frame=cap.read()  #获取相框frame=frame[crop_h_start:crop_h_start+w,crop_w_start:crop_w_start+w]  #展示相框frame=cv2.flip(frame,1,dst=None)  #前置摄像头获取的画面是非镜面的,即左手会出现在画面的右侧,此处使用flip进行水平镜像处理cv2.imshow("capture", frame)action=cv2.waitKey(1) & 0xFFif action==ord('c'):saveDir=raw_input(u"请输入新的存储目录:")if not os.path.exists(saveDir):os.makedirs(saveDir)elif action==ord('p'):cv2.imwrite("%s/%d.jpg" % (saveDir,count),cv2.resize(frame, (224, 224),interpolation=cv2.INTER_AREA))print(u"%s: %d 张图片" % (saveDir,count))count+=1if action==ord('q'):breakcap.release()  #释放摄像头cv2.destroyAllWindows()  #丢弃窗口if __name__=='__main__':   cameraAutoForPictures(saveDir='data/')

上述代码的运行环境需要是Python2,因为python2中才有reload方法,去掉那些语句就可以在Python3中执行了,我们在Python2的环境中执行结果截图如下:

我的保存路径是data,按q退出后,进入data文件夹下就可以看到自己的“靓照”了哈,好了数据集准备到此结束,接下来准备实战人脸识别。

Python基于opencv调用摄像头获取个人图片相关推荐

  1. python打开摄像头获取图片_Python基于opencv调用摄像头获取个人图片的实现方法

    接触图像领域的应该对于opencv都不会感到陌生,这个应该算是功能十分强劲的一个算法库了,当然了,使用起来也是很方便的,之前使用Windows7的时候出现多该库难以安装成功的情况,现在这个问题就不存在 ...

  2. python照片过人脸_python openCV实现摄像头获取人脸图片

    本文实例为大家分享了python openCV实现摄像头获取人脸图片的具体代码,供大家参考,具体内容如下 在机器学习中,训练模型需要大量图片,通过openCV中的库可以快捷的调用摄像头,截取图片,可以 ...

  3. python+opencv打开摄像头、拍摄指定次数的照片_python+openCV调用摄像头拍摄和处理图片的实现...

    在深度学习过程中想做手势识别相关应用,需要大量采集手势图片进行训练,作为一个懒人当然希望飞快的连续采集图片并且采集到的图片就已经被处理成统一格式的啦..于是使用python+openCV调用摄像头,在 ...

  4. Python+opencv调用摄像头实现拍照并保存

    Python+opencv调用摄像头实现拍照并保存 安装 OpenCV库 详细源码 注意事项 安装 OpenCV库 pip install opencv-python 详细源码 调用外接摄像头实现拍照 ...

  5. python+openCV调用摄像头拍摄和处理图片

    在深度学习过程中想做手势识别相关应用,需要大量采集手势图片进行训练,作为一个懒人当然希望飞快的连续采集图片并且采集到的图片就已经被处理成统一格式的啦..于是使用python+openCV调用摄像头,在 ...

  6. python人脸识别截图_Python OpenCV调用摄像头检测人脸并截图

    本文实例为大家分享了Python OpenCV调用摄像头检测人脸并截图的具体代码,供大家参考,具体内容如下 注意:需要在python中安装OpenCV库,同时需要下载OpenCV人脸识别模型haarc ...

  7. 使用OpenCV调用摄像头检测人脸并截图-Python

    注意:需要在python中安装OpenCV库,同时需要下载OpenCV人脸识别模型haarcascade_frontalface_alt.xml,模型可在https://github.com/Time ...

  8. Python进阶,使用 opencv 调用摄像头进行拍照

             opencv 支持 Python 版本的模块叫作 opencv-p hon ,可直接使用 pip install opencv-python 令进行安装,但常常会因为网络等问题导致失 ...

  9. python使用opencv调取摄像头捕获图片或视频通用模板

    之前一直不清楚opencv调用摄像头的具体方法,于是参考b站视频写了个通用模板,以后可以根据需要自行调整.视频链接 先定义图片和视频的保存路径 img_path = './img_video/test ...

  10. 软件c#语言调用摄像头,c#基于opencv,开发摄像头播放程序

    前言 Windows下实现摄像视频捕捉有多种实现方式:各种方式的优劣,本文不做对比.但是,opencv是一款老牌开发库,在图像处理领域声名显赫.采用opencv来处理摄像视频,在性能和稳定性上,是有保 ...

最新文章

  1. 某互联网企业技术发展史(四)配置nginx和mysql兼容Yii框架,上传网站并调试成功...
  2. python基础之ATM-9
  3. Smarty 中的 if 语句条件修饰词
  4. UA MATH571A 一元线性回归I 模型设定与估计
  5. QCustomplot控件设备背景图片(Qt图片自适应控件大小),并且设置绘图区域颜色透明
  6. oracle中主键自增长,oracle 数据库主键自动增长方法
  7. Hibernate中常见问题 No row with the given identifier exists问题
  8. android 磁盘日志记录,GitHub - xflyandroid/XLog: 一个简易的日志打印框架(支持打印策略自定义,默认提供2种策略:logcat打印和磁盘打印)...
  9. 短诗整理5—景物+记事
  10. 阿里巴巴矢量图库,图标导入的简单使用
  11. .NET启动时,出现无法加载MSXML3.dll
  12. Python XML文件快速排版
  13. 【iOS】AFNetworking
  14. 如何升级Windows 11正式版?四种方案都在这里了
  15. 无线网络-LTE (02) 通信过程之 Attach procedure
  16. stm32f4xx标准外设固件库
  17. Matlab神经网络函数newff()新旧用法差异
  18. MIT线性代数笔记二 矩阵消元
  19. Java版本8u201与8u202的区别
  20. 在计算机系统内部使用的汉子编码是,数据库系统工程师考试汉字编码输入码

热门文章

  1. Spring Data JPA 介绍和使用
  2. Java-IO操作性能对比
  3. 使用GDB进行系统调用过程简析
  4. MVC.NET 出现诡异的 “IIS运行停止”
  5. 电商数据之战背后利益纠葛:触动最敏感神经
  6. INSERT … ON DUPLICATE KEY UPDATE
  7. python全栈开发_day25_面向对象的接口,多态,鸭子类型,抽象父类,析构格式化,反射和断言...
  8. Apache Flink 学习教程----持续更新
  9. 关于安装CNPM 与搭建VUE空白项目
  10. MySQL主从复制技术(纯干货)