使用Python+Opencv从摄像头逐帧读取图片保存在本地

2023-05-16

今天测试的时候,遇到了一个问题,测试需求是,需要把摄像头拍摄的实时视频逐帧率保存下来。

经过查阅资料以及网友帮助,目前已经完成。记录下来希望可以帮助有需要的朋友。

1、思路

使用Python+Opencv,从摄像头的实时视频流中逐帧读取图片,保存到本地

2、工具

  1. 安装Python
  2. 安装Opencv

3、分类

目前测试的过程中遇到了三种类型的摄像头数据读取,分别是:

  1. USB普通摄像机:

直接使用Python+Opencv,进行数据采集

self.cap = cv2.VideoCapture(0)0是本地摄像头
  1. USB工业摄像头:

使用厂家自带的SDK进行二次开发,例如某厂家的SDK如下:
部分代码截图

  1. 网络摄像头:

从RTSP流中读取数据,读取方法,以大华普通网络摄像头为例:

在这里插入图片描述

4、示例

# -*- coding: cp936 -*-
"""
Author:xxxxxx
Date:2019-09-23
Discription:Read Camaro picture and save 
"""

import cv2,os,time
import numpy as np
from multiprocessing import Process
import thread

class CamaroCap(object):

    #打开摄像头
    def __init__(self):
        #self.cap = cv2.VideoCapture(0)
        self.cap = cv2.VideoCapture("rtsp://admin:admin123@172.16.9.23/cam/realmonitor?channel=1&subtype=0")#获取网络摄像机
        """
        self.cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'))
        self.cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
        self.cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480);
        """

    #图片信息打印       
    def get_image_info(self,image):
        print(type(image))
        print(image.shape)
        print(image.size)
        print(image.dtype)
        pixel_data = np.array(image)
        print(pixel_data)

    #逐帧读取数据并保存图片到本地制定位置
    def Camaro_image(self):
        i = 0
        while(1):
            """
            ret:True或者False,代表有没有读取到图片
            frame:表示截取到一帧的图片
            """
            ret,frame = self.cap.read()
            ret,frame = self.cap.read()
            #print("打印图片信息")
            #self.get_image_info(frame)
            
            # 展示图片
            cv2.imshow('capture',frame)
            #保存图片
            cv2.imwrite(r"D:\image\\"+ str(i) + ".jpg",frame)
            i = i + 1
            if cv2.waitKey(1) & 0xFF == ord('q'):
                break

if __name__ == '__main__':
    outmasages = CamaroCap()
    #调用摄像头
    outmasages.Camaro_image()
    #释放对象和销毁窗口
    outmasages.cap.release()
    cv2.destroyAllWindows()
    

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Python+Opencv从摄像头逐帧读取图片保存在本地 的相关文章

随机推荐

  • K8s解析<2>--Service与K8s中的网络通信架构简述

    Service介绍 Service可以看作是一组提供相同服务的Pod对外的访问接口 借助Service xff0c 应用可以方便地实现服务发现和负载均衡 Service也是K8s里的最核心的资源对象之一 xff0c K8s里的每个Servi
  • ROS 多线程以及OOP编程注意项(1)

    环境配置 Ubuntu20 04ROS Noetic 问题描述 按照往常使用类中回调函数并通过CallbackQueue开启多个Queue时出现回调函数没响应的情况 代码如下 namespace KINE class kine privat
  • 百度 2014 校园招聘 软件研发工程师 笔试题(天津站)

    2013 9 28笔试 xff08 此为回忆版 xff09 一 简答题 xff08 30分 xff09 1 动态链接和静态链接的优缺点 xff08 10分 xff09 2 轮询任务调度和抢占式任务调度的区别 xff08 10分 xff09
  • 【免费送书】说说哪本书曾经让你爱不释手

    编程狗在线 自由的编程学习平台 一本好书带给人的不止于知识收获 xff0c 还会对你的成长有所帮助 xff0c 与你的每次经历产生共鸣 每天读一点 xff0c 坚持不懈 xff0c 你就能成为专业高手 如果你能每两个月读一本好的编程书 xf
  • MySQL 5.6 源码目录结构

    基于MySQL 5 6 26源码 源码目录 xff1a BUILD 构建工程的脚本 client 客户端 cmake cmd line utils 命令行工具 dbug 调试库 Docs 文档 extra 一些相对独立的次要工具 inclu
  • 计算机I/O原理

    cpu通过IO命令控制设备 xff0c cpu对设备的控制仅仅可以到达设备控制器 xff0c 无法直接控制设备 设备无法直接和cpu通信 xff0c 设备控制器通过中断机制向cpu反馈信息 即这个一个模型 CPU IO指令 gt 设备控制器
  • 计算机的I/O端口地址表

    PC的I O端口地址表 xff08 I O端口地址表 xff09 http tieba baidu com f kz 61 16042340 I O端口地址表 PC只用了10位地址线 A0 A9 进行译码 xff0c 其寻址的范围为0H 3
  • 利用pthread进行数组求和

    POSIX thread 简称为pthread xff0c Posix线程是一个 POSIX 标准线程 利用多线程可以提高运算速度 利用pthread进行数组求和的程序如下 xff1a include lt stdio h gt inclu
  • 字符串的全排列程序

    include lt iostream gt include lt cstring gt using namespace std void swap char str int i int j char tmp 61 str i str i
  • Google面试总结

    分享 Google面试总结 来源 xff1a 王冠中的日志 终于把Google的面试给搞完了 xff0c 感觉可以算是Tech Interview的顶峰了 这里主要写一下大概流程和内容 xff0c 给大家以后interview一个参考 G的
  • 【硬件在环Hil联调问题记录1】

    硬件在环Hil联调问题记录1 simulink中 quadprog 函数代码生成解决方案 Carsim加载不同版本Matlab的操作 仿真时各模块的作用 xff1a Simulink xff08 2019b xff09 控制算法 Carsi
  • C++ boost和C++ stl的区别和联系

    C C 43 43 语言的一大特点是其标准库可以用语言自身实现 C 标准库的 strlen strcpy strcmp 系列函数是教学与练习的好题材 xff0c C 43 43 标准库的 complex string vector 则是类
  • 最新(2023.3.17)配置llvm、clang、clangd、clang-tidy方法,极其简单,轻松上手

    Linux 1 我的Linux是Ubuntu22 04 xff0c 首先把软件下载源改成国内的aliyun xff0c 很简单 xff0c 按照我的这个来做就行 点开这个图标 xff0c 然后点击下面这个 在download from那里把
  • Ubuntu 网线直连(开机自动配置ip地址、启动vnc),vnc远程桌面

    sudo ifconfig enp4s0 upsudo ifconfig enp4s0 192 168 1 20 xff08 要和pc机保证在相同网段 xff09 vncserver 2以下为开机启动配置和启动操作如果需要开机自行配制 启动
  • iftop 较全

    iftop nBNP nbsp i nbsp enp2s0 nbsp f dst port 6379 可以使用iftop命令的 f选项来过滤指定的端口 该选项允许您指定BPF过滤器规则 用于仅显示符合规则的流量 例如 以下命令将仅显示目标端
  • 随机生成slam 真值和里程计值的 g2o 文件(python实现)

    生成了slam 里程计的真值和里程计的值 并保存顶点和边为 g2o文件 nbsp 随机生成slam 真值和里程计值的 g2o 文 件 gen test data py import numpy as np import matplotlib
  • 滑膜+pid+上层设计下层平均分配 优化分配 动态载荷分配

    滑膜 43 pid 43 上层设计下层平均分配 优化分配 动态载荷分配 xff0c 分布式电动汽车操稳控制 本研究在matlab simulink建立七自由度轮毂电机驱动汽车模型 xff0c 使用滑膜联合控制以及pid控制实现转向过程中质心
  • 12本Python书籍推荐

    Python是用于各种任务和领域的优秀编程语言之一 Python的用户友好性 xff0c 高级特性以及对简单性和增强代码可读性的强调使其成为全球许多开发人员的理想选择 诸如此类的功能使应用程序开发 xff0c 数据科学 xff0c 人工智能
  • Ubuntu 屏幕翻转90度怎么恢复

    笔记本电脑的 ubuntu 屏幕有时候会无意中90度翻转 xff0c 这时候你只能侧着脸看 xff0c 靠鼠标操作想要恢复是极其尴尬的一件事 xff0c 最快捷的方法就用命令是删除 iio sensor proxy 程序 第一步 Ctrl
  • 使用Python+Opencv从摄像头逐帧读取图片保存在本地

    今天测试的时候 xff0c 遇到了一个问题 xff0c 测试需求是 xff0c 需要把摄像头拍摄的实时视频逐帧率保存下来 经过查阅资料以及网友帮助 xff0c 目前已经完成 记录下来希望可以帮助有需要的朋友 1 思路 使用Python 43