如何向Numpy数组添加维度?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (158)

我要从一幅图像的数字数组开始。

In[1]:img = cv2.imread('test.jpg')

这个形状是您可能期望的640x480 RGB图像。

In[2]:img.shape
Out[2]: (480, 640, 3)

然而,这张图片是一个视频的帧,它有100帧长。理想情况下,我希望有一个数组,其中包含来自这个视频的所有数据,这样img.shape回报(480, 640, 3, 100)...

怎样才能把下一帧--也就是下一组图像数据,另一组480 x 640 x 3数组--添加到我的初始数组中呢?

提问于
用户回答回答于

您可以先创建一个大小正确的数组,然后填充它:

frames = np.empty((480, 640, 3, 100))

for k in xrange(nframes):
    frames[:,:,:,k] = cv2.imread('frame_{}.jpg'.format(k))

如果框架是以某种特定方式命名的单个jpg文件。

用户回答回答于

您正在询问如何向NumPy数组中添加维度,这样就可以扩展该维度以容纳新的数据。可以按以下方式添加一个维度:

image = image[..., np.newaxis]...

扫码关注云+社区