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

如何遍历多维数组,从(3,5,96,96)数组中提取(3,96,96)单帧图像?

数组抽帧问题解决方案

首先确认你的数组维度顺序是否确实为[通道数, 帧数, 高度, 宽度](即(C, T, H, W))。如果维度和你描述的一致,你写的切片逻辑本身是可以取出shape为(3,96,96)的单帧数组的,你可以先加一行打印验证:

print(frame[:, 0, :, :].shape)

如果输出不是你预期的格式,根据常见场景对应修改即可:

  • 如果你需要适配OpenCV、PIL等常用图像处理库的(高度, 宽度, 通道数)格式要求,调整通道顺序即可:
import numpy as np

frame_count = frame.shape[1]
for i in range(frame_count):
    # 先取出C,H,W格式的单帧
    fr = frame[:, i, :, :]
    # 转置为H,W,C格式
    fr = np.transpose(fr, (1, 2, 0))
    # 此处添加你的后续处理逻辑
  • 如果你使用的是PyTorch张量,需要保留维度做批量操作,或者避免自动降维带来的报错,可以用以下写法:
import torch

frame_count = frame.shape[1]
for i in range(frame_count):
    # 如需保留帧数维度得到(3,1,96,96),用区间索引
    fr = frame[:, i:i+1, :, :]
    # 如需得到(3,96,96)格式,直接squeeze掉多余维度即可
    fr = fr.squeeze(1)

如果运行以上代码仍有问题,先打印原始数组的shape确认是否和你描述的(3,5,96,96)一致,排查是否有变量命名冲突或者数组维度顺序搞反的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 15:21:00