Numpy展平RGB图像数组。

9 浏览
0 Comments

Numpy展平RGB图像数组。

我有 1,000 张 RGB 图像(64X64),希望将其转换为一个 (m, n) 数组。

我使用了这个:

import numpy as np
from skdata.mnist.views import OfficialImageClassification
from matplotlib import pyplot as plt
from PIL import Image                                                            
import glob
import cv2
x_data = np.array( [np.array(cv2.imread(imagePath[i])) for i in range(len(imagePath))] )
print x_data.shape

这给我了:(1000, 64, 64, 3)

现在如果我做:

pixels = x_data.flatten()
print pixels.shape

我得到:(12288000,)

然而,我需要一个具有以下维度的数组:(1000, 12288)

我该如何实现?

admin 更改状态以发布 2023年5月23日
0
0 Comments

尝试这个:\n

d1, d2, d3, d4 = x_data.shape

\n然后使用numpy.reshape()\n

x_data_reshaped = x_data.reshape((d1, d2*d3*d4))

\n或者\n

x_data_reshaped = x_data.reshape((d1, -1))

\n(Numpy从原始长度和定义的维度d1中推断出值,而不是-1)

0
0 Comments

在使用flatten()方法后,再使用numpy方法reshape()来重塑数组:

  x_data = np.array( [np.array(cv2.imread(imagePath[i])) for i in range(len(imagePath))] )
  pixels = x_data.flatten().reshape(1000, 12288)
  print pixels.shape

0