Opencv 隔帧取数据解码速度优化

  • 实用tips,若使用opencv进行解码,代码作如下优化能极大提升解码速度:
复制代码
    cap = cv2.VideoCapture(file_path)
    videolen = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))

    # 1. decode all frames, time cost!
    sampledFrames = []
    for i in range(videolen):
        ret, frame = cap.read()
        # maybe first frame is empty
        if ret == False:
            continue
        img = frame[:, :, ::-1]
        sampledFrames.append(img)

    cap.release()

    # 2. get frame index
    frames_idx = [xxx]

    # 3. sample
    frames = np.array(sampledFrames)
    imgs = []
    for idx in frames_idx:
        imgbuf = frames[idx]
        img = Image.fromarray(imgbuf, mode='RGB')
        imgs.append(img)

优化后:

复制代码
    cap = cv2.VideoCapture(file_path)
    videolen = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))

    # 1. get frame index
    frames_idx = [xxx]

    # 2. decode target frame
    imgs = []
    for i in range(videolen):
        ret = cap.grab()
        # maybe first frame is empty
        if ret == False:
            continue  
        if frames_idx and i == frames_idx[0]:
            frames_idx.pop(0)
            ret, frame = cap.retrieve()
            if frame is None:
                break
            imgbuf = frame[:, :, ::-1]
            img = Image.fromarray(imgbuf, mode='RGB')
            imgs.append(img)
        if frames_idx == None:
            break
    cap.release()
相关推荐
kekekka3 分钟前
路易莱专业跨境电商平台开启全球品质生活新方式
大数据·人工智能
Cosolar3 分钟前
RAGFlow 从入门到精通:完整学习教程
人工智能·面试·架构
努力努力再努力FFF4 分钟前
一个后端开发转AI的选证历程:从几大认证中锁定适合的那一个
人工智能
程序员柒叔8 分钟前
OpenClaw 一周动态-2026-W23
人工智能·github·agent·openclaw
郑洁文9 分钟前
基于卷积神经网络的动物图像分类模型设计
人工智能·分类·cnn·动物图像分类识别
AI人工智能+15 分钟前
基于深度学习与计算机视觉的表格识别技术:不仅能精准提取表格中的文字内容,更能深度解析复杂的表格结构,实现版面信息的完美还原
深度学习·计算机视觉·自然语言处理·ocr·表格识别
jeffer_liu16 分钟前
Spring AI 生产级实战:多模态
java·人工智能·后端·spring·大模型
AI搅拌机17 分钟前
为动漫而生的无审查模型ToriiGate发布:聚焦动漫图像生成,支持 NSFW,Anima的黄金搭档
人工智能
2601_9578793317 分钟前
企业级媒体资产管理(MAM)架构演进:非结构化数据集中存储、标签化检索与AI流式编解码实践
人工智能·架构·媒体
love530love20 分钟前
【笔记】ComfyUI 源码部署版更新后一键修复:从手动补丁到自动化工作流
运维·人工智能·windows·笔记·python·自动化·comfyui