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使用百度翻译进行中翻英示例
Apr 14 Python
使用Python脚本将绝对url替换为相对url的教程
Apr 24 Python
python中比较两个列表的实例方法
Jul 04 Python
django的auth认证,authenticate和装饰器功能详解
Jul 25 Python
Python 写入训练日志文件并控制台输出解析
Aug 13 Python
深入了解如何基于Python读写Kafka
Dec 31 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
Jan 09 Python
jupyter notebook 重装教程
Apr 16 Python
Python调用shell cmd方法代码示例解析
Jun 18 Python
Python将字典转换为XML的方法
Aug 01 Python
如何解决python多种版本冲突问题
Oct 13 Python
pandas中DataFrame数据合并连接(merge、join、concat)
May 30 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
星际争霸任务指南——虫族
2020/03/04 星际争霸
利用PHP函数计算中英文字符串长度的方法
2014/11/11 PHP
浅析PHP文件下载原理
2014/12/25 PHP
基于jquery.Jcrop的头像编辑器
2010/03/01 Javascript
JS基础之undefined与null的区别分析
2011/08/08 Javascript
js 通用javascript函数库整理
2011/08/14 Javascript
js预载入和JavaScript Image()对象使用介绍
2011/08/28 Javascript
javascript代码运行不出来执行错误的可能情况整理
2013/10/18 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
2013/12/12 Javascript
JS中Date日期函数中的参数使用介绍
2014/01/02 Javascript
JavaScript每天定时更换皮肤样式的方法
2015/07/01 Javascript
利用fecha进行JS日期处理
2016/11/21 Javascript
微信小程序 使用canvas制作K线实例详解
2017/01/12 Javascript
animate.css在vue项目中的使用教程
2018/08/05 Javascript
详解基于Vue,Nginx的前后端不分离部署教程
2018/12/04 Javascript
解决layui富文本编辑器图片上传无法回显的问题
2019/09/18 Javascript
使用Python对Csv文件操作实例代码
2017/05/12 Python
python如何让类支持比较运算
2018/03/20 Python
python的dataframe和matrix的互换方法
2018/04/11 Python
Python 面试中 8 个必考问题
2018/11/16 Python
pycharm在调试python时执行其他语句的方法
2018/11/29 Python
Python线性拟合实现函数与用法示例
2018/12/13 Python
Python读写文件模式和文件对象方法实例详解
2019/09/17 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
Python中使用filter过滤列表的一个小技巧分享
2020/05/02 Python
Python爬虫scrapy框架Cookie池(微博Cookie池)的使用
2021/01/13 Python
美国专营婴幼儿用品的购物网站:buybuy BABY
2017/01/01 全球购物
澳大利亚天然护肤品、化妆品和健康产品一站式商店:Nourished Life
2018/12/02 全球购物
数控技术与应用毕业生自荐信
2013/09/24 职场文书
教师实习自我鉴定
2013/12/13 职场文书
舞蹈专业求职信
2014/06/13 职场文书
体育节口号
2014/06/19 职场文书
公司会议开幕词
2015/01/29 职场文书
商务宴会祝酒词
2015/08/11 职场文书
Python中使用ipython的详细教程
2021/06/22 Python
使用Java去实现超市会员管理系统
2022/03/18 Java/Android