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中的下划线详解
Jun 24 Python
使用Python生成随机密码的示例分享
Feb 18 Python
12步教你理解Python装饰器
Feb 25 Python
Python读大数据txt
Mar 28 Python
深入解析Python编程中super关键字的用法
Jun 24 Python
python实现rsa加密实例详解
Jul 19 Python
Python定时器实例代码
Nov 01 Python
Python生成rsa密钥对操作示例
Apr 26 Python
tensorflow生成多个tfrecord文件实例
Feb 17 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
Mar 11 Python
python 异步async库的使用说明
May 04 Python
python des,aes,rsa加解密的实现
Jan 16 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
在PHP3中实现SESSION的功能(三)
2006/10/09 PHP
php读取javascript设置的cookies的代码
2010/04/12 PHP
关于file_get_contents返回为空或函数不可用的解决方案
2013/06/24 PHP
Yii2中datetime类的使用
2016/12/17 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
2018/08/06 PHP
HTML IMG标签 onload 内存溢出导致浏览器CPU占用过高
2021/03/09 Javascript
jquery select动态加载选择(兼容各种浏览器)
2013/02/01 Javascript
Extjs grid添加一个图片状态或者按钮的方法
2014/04/03 Javascript
bootstrap输入框组代码分享
2016/06/07 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
2016/10/26 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
2017/01/06 Javascript
vue+iview+less 实现换肤功能
2018/08/17 Javascript
vue router带参数页面刷新或回退参数消失的解决方法
2019/02/27 Javascript
JavaScript实现简单的图片切换功能(实例代码)
2020/04/10 Javascript
vue data对象重新赋值无效(未更改)的解决方式
2020/07/24 Javascript
利用Tkinter和matplotlib两种方式画饼状图的实例
2017/11/06 Python
Python动态参数/命名空间/函数嵌套/global和nonlocal
2019/05/29 Python
python 含子图的gif生成时内存溢出的方法
2019/07/07 Python
Django为窗体加上防机器人的验证码功能过程解析
2019/08/14 Python
python正则表达式实例代码
2020/03/03 Python
解决django 向mysql中写入中文字符出错的问题
2020/05/18 Python
django模型类中,null=True,blank=True用法说明
2020/07/09 Python
Django项目创建及管理实现流程详解
2020/10/13 Python
Sneaker Studio捷克:购买运动鞋
2018/07/08 全球购物
斯巴达比赛商店:Spartan Race
2019/01/08 全球购物
敏捷开发的主要原则都有哪些
2015/04/26 面试题
公司前台接待岗位职责
2013/12/03 职场文书
毕业评语大全
2014/05/04 职场文书
5s标语大全
2014/06/23 职场文书
黑暗中的舞者观后感
2015/06/18 职场文书
企业廉洁教育心得体会
2016/01/20 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书
python实现socket简单通信的示例代码
2021/04/13 Python
JS如何使用剪贴板操作Clipboard API
2021/05/17 Javascript
详解Python中的for循环
2022/04/30 Python