You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改cv2视频抽帧代码将帧存入数组而非写入Colab会话文件

代码修改方案

核心修改点

  • 提前初始化空的frames列表用于存储提取到的帧数据
  • 删除原代码中cv2.imwrite写入本地文件的逻辑,替换为将读取到的image对象追加到frames列表中
  • 原count计数变量如果没有后续特殊使用需求可直接省略

修改后完整代码

import cv2

vidcap = cv2.VideoCapture('video.mp4')
frames = []  # 存储所有提取帧的数组
frameRate = 0.5 # 每隔0.5秒捕获1帧
sec = 0

def getFrame(sec):
    vidcap.set(cv2.CAP_PROP_POS_MSEC, sec * 1000)
    hasFrames, image = vidcap.read()
    if hasFrames:
        frames.append(image)  # 将帧追加到数组,替代写入本地存储
    return hasFrames

success = getFrame(sec)
while success:
    sec = round(sec + frameRate, 2)
    success = getFrame(sec)

补充说明

所有帧提取完成后,frames列表中每个元素都是标准的OpenCV图像格式(numpy数组),可以直接传入后续的处理逻辑使用。

内容的提问来源于stack exchange,提问作者AJ_27

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 08:18:03