【python】imageio和cv2抽视频帧性能比较

python读取视频流提取视频帧的方法 方法一:通过imageio库和skimage库 1. 安装环境: pip install imageio pip install skimage 这时候会报错Please install the `scikit-image` package (instead of `skimage`) 所以按照提示操作即可: pip install scikit-image 环境安装成功。 2.通 阅读详情

最近需要用python对视频进行抽帧处理,网上给出的主要做法是两种,即调用imgeio或cv2的相关方法。但是却没看到有人对他们的性能进行对比,选择困难症的我决定写个demo测试一下。我的需求是抽取指定某帧,比如抽取第15帧,上诉两种方法都能实现,贴上代码如下:

import cv2
import time
import matplotlib.pyplot as plt
import imageio
import skimage
import numpy as np

position = [1, 5, 10, 15, 20, 25, 30] # 所要抽取帧的索引
imageio_start = time.time() # imgeio方法的时间计算
vid = imageio.get_reader("test.mp4", 'ffmpeg')
length = len(position)
frames2 = []
for i, img in enumerate(vid):
    if i in position: # 抽取指定帧
        image2 = skimage.img_as_float(img).astype(np.float32) # 转换为numpy数组
        frames2.append(image2)
        # plt.figure(0)
        # plt.imshow(image2)
        # plt.show()
    if len(frames2) == length:
        break
print('Time of imageio: ', time.time()-imageio_start)

######################################################################

cv2_start = time.time() # 计算cv2花费的时间
capture = cv2.VideoCapture("963861351.mp4")
frames = []
for i in position:
    capture.set(propId=cv2.CAP_P
学Simulink--特殊天气场景实例:基于Simulink的智能车辆雨天行驶仿真(感知与控制) 本文详细介绍了基于Simulink的智能车辆雨天行驶仿真系统。通过构建降雨-路面-传感器-控制全链路耦合模型,实现了雨天场景下的自适应控制。系统根据降雨强度动态调整路面附着系数和传感器性能参数,上层控制算法相应调整ACC安全距离、ESC增益等参数。仿真结果表明,系统能在不同降雨强度下自动降低车速、增大跟车距离,保持车辆稳定性。文章还提供了完整的Simulink建模流程、关键模型实现方法及工程实践要点,为全天候自动驾驶功能开发提供了有效的验证平台。 阅读详情

相关推荐

智能音箱麦克风阵列实战:Python实现宽带GSC波束形成(附完整代码)

本文从工程实战角度,详细介绍了如何在智能音箱中利用Python实现宽带GSC波束形成算法。文章深入解析了广义旁瓣消除器(GSC)的核心架构,包括固定波束形成、阻塞矩阵与自适应滤波路径,并提供了完整的仿真代码、关键参数(如LMS步长)调优方法,以及面向嵌入式部署的计算优化与移植考量,旨在帮助开发者构建在真实噪声环境下高效工作的语音增强系统。

opencv7vision的博客 342

超详细版!Obsidian+Claude+Skills+云同步,打造智能 AI 知识库

本文介绍如何搭建高效的AI知识管理系统,将Obsidian笔记工具与ClaudeAI助手深度整合。通过ClaudeCode安装配置、ObsidianSkills插件添加和坚果云同步设置,实现本地存储安全性与云端便捷性的完美结合。该系统支持智能笔记整理、知识图谱可视化、智能搜索问答和内容创作辅助等功能,使静态笔记转变为能自动分析关联、处理复杂结构的"活"知识库。详细步骤包括工具准备、环境配置、插件安装和云同步设置

2301_79998006的博客 1080

在线考试系统源码+数据库+word+ppt(高分毕业设计)

本系统通过Spring Cloud实现微服务拆分,将授权、考试、监控等功能解耦,既保证了系统的扩展性,也便于后期维护。基于OAuth2.0的单点登录,解决多服务统一认证问题;考试与练习模式分离,满足不同场景需求;集成Druid与Hystrix,保障系统监控与稳定性。

weixin_44355158的博客 737

【报错解决】OpenClaw 报错 `openclaw: command not found`:全局命令未加入系统 PATH 的深度排查与修复指南

在国产AI工具链开发中,OpenClaw作为关键命令行工具常出现command not found报错。本文深度分析该问题的根源——Linux环境变量PATH未包含用户级安装目录(~/.local/bin)。通过四种解决方案(临时PATH修改、永久配置、软链接、虚拟环境处理)和排错Checklist,揭示"命令存在却找不到"的本质是路径配置问题,特别适用于Docker/国产Linux/非root环境。文中强调理解Linux工具链机制对国产AI开发的重要性,并指出这是开发者掌握环境

博客 5383

使用Spring Cloud实现银行核心系统的案例示例

以下是一个基于Spring Cloud的银行核心业务系统实现方案,涵盖架构设计、关键模块实现与生产级部署方案。该系统设计满足金融级高可用、强一致性和监管合规要求。

银行信息系统应用架构详解 1173

ESP32 物联网宠物喂食器:实现远程智能投喂的完整方案

本项目基于 ESP32 实现了智能宠物喂食器的核心功能,硬件结构简单、成本较低,软件支持远程控制和状态监测。添加摄像头:通过 ESP32-CAM 模块实时观察宠物进食情况。APP 集成:开发专属手机 APP,支持定时设置、报警推送、喂食记录查询。语音控制:结合 Alexa 或小爱同学,实现语音指令喂食。太阳能供电:户外使用时,通过太阳能板为设备供电,节能环保。

weixin_42300449的博客 1277

(一)激光线扫描-三维成像原理

激光线扫描是一种使用激光作为光源,通过特定的扫描设备(如光学镜头、电机驱动的镜头或电子扫描设备)将激光束引导到目标表面,并按照预定的路径进行扫描的技术。这种技术通常用于测量、检测、打印、切割等多种应用中。

FlyWine的博客 3630

QT实现计算器(C/C++)

digitClicked()槽函数用于处理数字按钮的点击事件,operatorClicked()槽函数用于处理运算符按钮的点击事件,equalsClicked()槽函数用于处理等号按钮的点击事件。在operatorClicked()槽函数中,我们获取被点击按钮的文本作为当前运算符,并将文本框中的内容转换为双精度浮点数,存储为操作数1。在上述代码中,我们添加了一个私有成员变量m_operand1,用于存储第一个操作数的值,以及一个私有成员变量m_currentOperator,用于存储当前运算符的值。

CyberNova的博客 385

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: 【Linux】Dockerfile 创建centos下pytorch程序运行环境的镜像
下一篇: 【java】Collection集合框架的总结
哈士奇的布偶
博客等级 码龄9年 16粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值