Python OpenCV 调用摄像头并截图保存功能的实现代码


Posted in Python onJuly 02, 2019

0x01 OpenCV安装

 通过命令pip install opencv-python 安装

pip install opencv-python

0x02  示例

import cv2
cap = cv2.VideoCapture(0)    #打开摄像头
while(1):
  # get a frame
  ret, frame = cap.read()
  # show a frame
  cv2.imshow("capture", frame)   #生成摄像头窗口
  if cv2.waitKey(1) & 0xFF == ord('q'):  #如果按下q 就截图保存并退出
    cv2.imwrite("D:/test.png", frame)  #保存路径
    break
cap.release()
cv2.destroyAllWindows()

ps:下面看下python 调用麦克风;摄像头;截屏;

# -*- coding: utf-8 -*-
"""
Created on Mon Jun 24 14:47:35 2019
@author: erio
"""
from PIL import Image,ImageGrab
import cv2
import pyaudio
import wave
'''
#录音
input_filename = "record.wav"             # 麦克风采集的语音输入
input_filepath = "E:"       # 输入文件的path
in_pathrec = input_filepath + input_filename     #通俗解释就是wav文件路径
def get_audio(filepath):
    CHUNK = 256         #定义数据流块
    FORMAT = pyaudio.paInt16  #量化位数(音量级划分)
    CHANNELS = 1        # 声道数;声道数:可以是单声道或者是双声道
    RATE = 8000        # 采样率;采样率:一秒内对声音信号的采集次数,常用的有8kHz, 16kHz, 32kHz, 48kHz, 11.025kHz, 22.05kHz, 44.1kHz
    RECORD_SECONDS = 10     #录音秒数
    WAVE_OUTPUT_FILENAME = filepath   #wav文件路径
    p = pyaudio.PyAudio()        #实例化
    stream = p.open(format=FORMAT,
            channels=CHANNELS,
            rate=RATE,
            input=True,
            frames_per_buffer=CHUNK)
    # print("*"*10, "开始录音:请在5秒内输入语音")
    frames = []                         #定义一个列表
    for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):   #循环,采样率11025 / 256 * 5
      data = stream.read(CHUNK)                #读取chunk个字节 保存到data中
      frames.append(data)                   #向列表frames中添加数据data
   # print(frames)
   # print("*" * 10, "录音结束\n")
    stream.stop_stream()
    stream.close()     #关闭
    p.terminate()      #终结
    wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')         #打开wav文件创建一个音频对象wf,开始写WAV文件
    wf.setnchannels(CHANNELS)                  #配置声道数
    wf.setsampwidth(p.get_sample_size(FORMAT))         #配置量化位数
    wf.setframerate(RATE)                    #配置采样率
    wf.writeframes(b''.join(frames))              #转换为二进制数据写入文件
    wf.close()       #关闭
get_audio(in_pathrec)
'''
#截屏
input_filenamescr = "screen.jpg"             
input_filepath = "E:"     
in_pathscr = input_filepath + input_filenamescr   
def get_screen(filepath):
  img = ImageGrab.grab()
  img.save(filepath)
get_screen(in_pathscr)
'''
#拍照
input_filenamecam = "camera.jpg"             
input_filepath = "E:"     
in_pathcam = input_filepath + input_filenamecam  
def get_camera(filepath):
  cap=cv2.VideoCapture(0)
  ret,frame = cap.read()
  i=0;
  cv2.imwrite(filepath,frame)
  cap.release()
  cv2.destroyAllWindows()
get_camera(in_pathcam)
'''
'''
#录制视频
cap = cv2.VideoCapture(0)#创建一个 VideoCapture 对象
flag = 1 #设置一个标志,用来输出视频信息
num = 1 #递增,用来保存文件名
while(cap.isOpened()):#循环读取每一帧
  ret_flag, Vshow = cap.read() #返回两个参数,第一个是bool是否正常打开,第二个是照片数组,如果只设置一个则变成一个tumple包含bool和图片
  cv2.imshow("Capture_Test",Vshow) #窗口显示,显示名为 Capture_Test
  k = cv2.waitKey(1) & 0xFF #每帧数据延时 1ms,延时不能为 0,否则读取的结果会是静态帧
  if k == ord('s'): #若检测到按键 ‘s',打印字符串
    cv2.imwrite("D:/pycharmthings/IMF/getpics/"+ str(num) + ".jpg", Vshow)
    print(cap.get(3)); #得到长宽
    print(cap.get(4));
    print("success to save"+str(num)+".jpg")
    print("-------------------------")
    num += 1
  elif k == ord('q'): #若检测到按键 ‘q',退出
    break
cap.release() #释放摄像头
cv2.destroyAllWindows()#删除建立的全部窗口
'''

总结

以上所述是小编给大家介绍的Python OpenCV 调用摄像头并截图保存功能的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python中django框架通过正则搜索页面上email地址的方法
Mar 21 Python
Python实现国外赌场热门游戏Craps(双骰子)
Mar 31 Python
详解Python迭代和迭代器
Mar 28 Python
python中的lambda表达式用法详解
Jun 22 Python
Python的Tornado框架的异步任务与AsyncHTTPClient
Jun 27 Python
python基础while循环及if判断的实例讲解
Aug 25 Python
matplotlib绘制动画代码示例
Jan 02 Python
解决python线程卡死的问题
Feb 18 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
Sep 18 Python
给Python学习者的文件读写指南(含基础与进阶)
Jan 29 Python
Python实现Keras搭建神经网络训练分类模型教程
Jun 12 Python
Python字典的基础操作
Nov 01 Python
使用python实现ftp的文件读写方法
Jul 02 #Python
Python初学者常见错误详解
Jul 02 #Python
Python使用pyserial进行串口通信的实例
Jul 02 #Python
Python函数中参数是传递值还是引用详解
Jul 02 #Python
Python 运行.py文件和交互式运行代码的区别详解
Jul 02 #Python
python 函数中的内置函数及用法详解
Jul 02 #Python
使用python serial 获取所有的串口名称的实例
Jul 02 #Python
You might like
杏林同学录(八)
2006/10/09 PHP
yii2学习教程之5种内置行为类详解
2017/08/03 PHP
两个select之间option的互相添加操作(jquery实现)
2009/11/12 Javascript
javascript 模式设计之工厂模式详细说明
2010/05/10 Javascript
检测jQuery.js是否已加载的判断代码
2011/05/20 Javascript
侧栏跟随滚动的简单实现代码
2013/03/18 Javascript
js判断元素是否隐藏的方法
2014/06/09 Javascript
JS实现闪动的title消息提醒效果
2014/06/20 Javascript
js操作IE浏览器弹出浏览文件夹可以返回目录路径
2014/07/14 Javascript
js实现简单鼠标跟随效果的方法
2015/04/10 Javascript
jQuery实现的在线答题功能
2015/04/12 Javascript
快速掌握Node.js事件驱动模型
2016/03/21 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
2017/01/03 Javascript
Vue 页面状态保持页面间数据传输的一种方法(推荐)
2018/11/01 Javascript
使用ESLint禁止项目导入特定模块的方法步骤
2019/03/04 Javascript
在微信小程序中使用图表的方法示例
2019/04/25 Javascript
Vue动态修改网页标题的方法及遇到问题
2019/06/09 Javascript
windows下安装python paramiko模块的代码
2013/02/10 Python
python选择排序算法的实现代码
2013/11/21 Python
Django 登陆验证码和中间件的实现
2018/08/17 Python
python微信好友数据分析详解
2018/11/19 Python
python3 property装饰器实现原理与用法示例
2019/05/15 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
2019/08/27 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
2020/02/07 Python
python 读取.nii格式图像实例
2020/07/01 Python
如何教少儿学习Python编程
2020/07/10 Python
python3中celery异步框架简单使用+守护进程方式启动
2021/01/20 Python
GNC健安喜美国官网:美国第一营养品牌
2016/07/22 全球购物
迪卡侬荷兰官网:Decathlon荷兰
2017/10/29 全球购物
FC-Moto丹麦:欧洲最大的摩托车服装和头盔商店之一
2019/08/20 全球购物
护理学应聘自荐书范文
2014/02/05 职场文书
《蒲公英》教学反思
2014/02/28 职场文书
内蒙古鄂尔多斯市市长寄语
2014/04/10 职场文书
英语故事演讲稿
2014/04/29 职场文书
奖学金个人总结
2015/03/04 职场文书
MySQL查询学习之基础查询操作
2021/05/08 MySQL