当前位置: 首页 > news >正文

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 emptyif ret == False:continueimg = frame[:, :, ::-1]sampledFrames.append(img)cap.release()# 2. get frame indexframes_idx = [xxx]# 3. sampleframes = 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 indexframes_idx = [xxx]# 2. decode target frameimgs = []for i in range(videolen):ret = cap.grab()# maybe first frame is emptyif ret == False:continue  if frames_idx and i == frames_idx[0]:frames_idx.pop(0)ret, frame = cap.retrieve()if frame is None:breakimgbuf = frame[:, :, ::-1]img = Image.fromarray(imgbuf, mode='RGB')imgs.append(img)if frames_idx == None:breakcap.release()

http://www.mrgr.cn/news/14340.html

相关文章:

  • kubenetes--资源调度
  • 实战 element-plus 级联选择器(Cascader)+企微部门架构
  • 从json字符串中获取指定值
  • Windows 平台编译openssl3.3
  • 全自动饲料机整套设备:养殖业生产线利器
  • 深入理解Spring Security
  • 数学建模学习(128):使用Python结合CILOS与熵法的多准则决策权重确定
  • pytorch 数据处理
  • pytorch中的__init__()与super__init__()方法
  • 文件包含漏洞(1)
  • PostgreSQL:后端开发者的瑞士军刀
  • 计算机毕业设计选题推荐-在线音乐网站-音乐专辑商城-Java/Python项目实战
  • 这些持续高额派息的公司,都做对了什么?
  • 微信小程序:点击事件(bindtap)传递参数
  • 云端Ruby:将应用无缝融入云服务的艺术
  • Ubuntu 24.04部署Wordpress
  • 大模型之二十八-语音识别Whisper进阶
  • python常见报错总结
  • shutil库学习之copy和copy2函数
  • Docker常见命令和参数