Python基于opencv调用摄像头获取个人图片的实现方法


Posted in Python onFebruary 21, 2019

接触图像领域的应该对于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,360
  cap.set(cv2.CAP_PROP_FRAME_WIDTH,width)
  cap.set(cv2.CAP_PROP_FRAME_HEIGHT,height)
  crop_w_start=(width-w)//2
  crop_h_start=(height-w)//2
  print 'width: ',width
  print 'height: ',height
  while 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) & 0xFF
    if 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+=1
    if action==ord('q'):
      break
  cap.release() #释放摄像头
  cv2.destroyAllWindows() #丢弃窗口
if __name__=='__main__':  
  cameraAutoForPictures(saveDir='data/')

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

Python基于opencv调用摄像头获取个人图片的实现方法

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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
python网络编程之数据传输UDP实例分析
May 20 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
Jan 10 Python
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
May 22 Python
django反向解析和正向解析的方式
Jun 05 Python
python 在屏幕上逐字显示一行字的实例
Dec 24 Python
使用python opencv对目录下图片进行去重的方法
Jan 12 Python
python实现字符串加密成纯数字
Mar 19 Python
Python利用pandas处理Excel数据的应用详解
Jun 18 Python
python实现得到当前登录用户信息的方法
Jun 21 Python
Django之编辑时根据条件跳转回原页面的方法
Aug 21 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
Apr 07 Python
如何利用python 读取配置文件
Jan 06 Python
python-itchat 获取微信群用户信息的实例
Feb 21 #Python
python 获取微信好友列表的方法(微信web)
Feb 21 #Python
Python基于mysql实现学生管理系统
Feb 21 #Python
python+mysql实现教务管理系统
Feb 20 #Python
python Tkinter版学生管理系统
Feb 20 #Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
Feb 20 #Python
Python实战购物车项目的实现参考
Feb 20 #Python
You might like
在PHP中使用灵巧的体系结构
2006/10/09 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
2013/06/07 PHP
php常用Stream函数集介绍
2013/06/24 PHP
Zend studio文件注释模板设置方法
2013/09/29 PHP
PHP中绘制图像的一些函数总结
2014/11/19 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
PHP getNamespaces()函数讲解
2019/02/03 PHP
BOOM vs RR BO3 第一场2.13
2021/03/10 DOTA
汉化英文版的Dreamweaver CS5并自动提示jquery
2010/11/25 Javascript
原来Jquery.load的方法可以一直load下去
2011/03/28 Javascript
基于jQuery.Hz2Py.js插件实现的汉字转拼音特效
2015/05/07 Javascript
jQuery实现图片局部放大镜效果
2016/03/17 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
2016/08/08 Javascript
vue绑定class与行间样式style详解
2017/08/16 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
2018/03/02 Javascript
AngularJS 应用模块化的使用
2018/04/04 Javascript
JavaScript 实现下雪特效的示例代码
2020/09/09 Javascript
Python从MP3文件获取id3的方法
2015/06/15 Python
Python3 处理JSON的实例详解
2017/10/29 Python
Django 实现下载文件功能的示例
2018/03/06 Python
Python 根据日志级别打印不同颜色的日志的方法示例
2019/08/08 Python
Python整数与Numpy数据溢出问题解决
2019/09/11 Python
python3发送request请求及查看返回结果实例
2020/04/30 Python
Python爬虫教程知识点总结
2020/10/19 Python
俄罗斯购买剧院和演唱会门票网站:Parter.ru
2019/11/09 全球购物
机械专业应届生求职信
2013/09/21 职场文书
英语道歉信范文
2014/01/09 职场文书
社区母亲节活动方案
2014/03/05 职场文书
家长对孩子的感言
2014/03/10 职场文书
党员公开承诺书内容
2014/05/20 职场文书
社区反邪教工作方案
2014/06/16 职场文书
2014年女职工工作总结
2014/11/27 职场文书
2014年前台接待工作总结
2014/12/05 职场文书
农村婚庆主持词
2015/06/29 职场文书
Python Flask请求扩展与中间件相关知识总结
2021/06/11 Python
基于Python实现射击小游戏的制作
2022/04/06 Python