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

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

功能: 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码值

__Author__:沂水寒城
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打开摄像头获取图片_Python基于opencv调用摄像头获取个人图片的实现方法相关推荐

  1. python解码图片_python的opencv读取解码的base64图片失败

    问题描述 js利用canvas.toDataURL("image/png")将canvas元素转化为base64的图片编码. python获取base64编码并解码并且保存为图片储 ...

  2. python模块cv2人脸识别_Python基于Opencv来快速实现人脸识别过程详解(完整版)

    前言 随着人工智能的日益火热,计算机视觉领域发展迅速,尤其在人脸识别或物体检测方向更为广泛,今天就为大家带来最基础的人脸识别基础,从一个个函数开始走进这个奥妙的世界. 首先看一下本实验需要的数据集,为 ...

  3. python打开浏览器怎么写_python实现随机调用一个浏览器打开网页

    前两天总结了一下python爬虫 使用真实浏览器打开网页的两种方法总结 但那仅仅是总结一下而已,今天本文来实战演练一下 依然使用的是 webbrowser 这个模块 来调用浏览器 关于的三种打开方式在 ...

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

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

  5. 基于opencv在摄像头ubuntu根据视频获取

     基于opencv在摄像头ubuntu根据视频获取 1  工具 原料 平台 :UBUNTU12.04 安装库  Opencv-2.3 2  安装编译执行步骤 安装编译opencv-2.3  參考h ...

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

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

  7. 基于OpenCV的摄像头人脸检测

    一.选题背景 二.设计目的和意义 三.设计方案 四.特征分类器的选择 4.1 常用人脸检测的特征分类器 4.2 人脸的Haar特征分类器介绍 4.3 人脸的Haar特征分类器使用 五.设计中主要函数介 ...

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

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

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

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

最新文章

  1. Linux操作系统(二:shell脚本)
  2. 替代还是扩展:云的下一站真是雾计算?
  3. ASP.Net MVC的学习
  4. postman模拟文件上传接口
  5. mysql多实例安装启动_MySQL多实例安装启动
  6. django-模板语言dtl-render
  7. 湖北工业大学计算机学院王泽建,“指尖年轮,感恩成长”计算机学院2019届毕业生晚会圆满举行...
  8. 数学式子中arg min,arg max的含义
  9. smartadmin mysql_Smart Admin
  10. matlab读取excel、text文件 || xlsread textread
  11. 只要一行代码,批量将Word转换为PDF!
  12. 如何利用JClassLib修改.class文件
  13. linux ap中继模式,小米AIoT AX3600 WiFi 6有线中继模式(AP模式)自定义局域网LAN IP地址...
  14. 【寒江雪】Go实现状态模式
  15. ArrayList源码深度解析以及快速失败和安全失败机制详解【一万字】
  16. 怎样显示计算机联网密码错误,我的笔记本电脑连接wifi时总显示密码不对,但密码是对的!应当怎么弄...
  17. 巨型电子计算机应用,1989年11月17日 我国首台小巨型电子计算机研制成功
  18. linux 深度 crossover,在Deepin V20(UOS)下使用crossover安装Kt交易师的方法
  19. 人体时钟android,来自独立开发者作品的冷高轮时间数字时钟app《小人人体形状造型数字手势数字麻将数字扑克数字》时钟...
  20. NCTF 南京邮电大学网络攻防训练平台 WriteUp

热门文章

  1. 传统网站性能优化的三种手段
  2. Java枚举原来还能这么用
  3. 老板扣了我1000,因为我没记住阿里巴巴开发手册的这条规则。
  4. paddle_ocr2.0入门踩坑
  5. libtorch调用resnet
  6. VOC2007基本信息
  7. error: jump to label [-fpermissive]
  8. pytorch 索引
  9. torch.where用法
  10. python 图像数据类型及颜色空间转换