我正在尝试从本地计算机上的路径读取图像文件,并且想要生成一个表示这些图像的文件。如何将它们全部表示为2维数组。

images = [imageio.imread(path) for path in glob.glob([pathtoimages])]
images = np.asarray(images)
print(images.shape)
scaler = StandardScaler()

# Fit on training set only.
scaler.fit(images)
#
## Apply transform to both the training set and the test set.
#train_img = scaler.transform(images)


我正在按照this guide在一组全部为257x257的图像上进行PCA。当我执行print(images.shape)时,我得到(130,257,257,3),因为有3个通道的257x257的图像为130。当我尝试执行StandardScaler时,出现以下错误。


  ValueError:找到的数组具有暗淡4。StandardScaler预期

我的主要问题是如何将大小为4的数组压缩为只有2维的数组?我已经有this postthis one,但仍不确定。

另外,在运行代码时,请确保替换glob.glob()函数中的[pathtoimages]。

最佳答案

您需要先展平图像,然后再将其添加到列表中。因此,尺寸为(257,257,3)的图片将变为尺寸为257 * 257 * 3的一维数组

images = [np.array(imageio.imread(path)).flatten()  for path in glob.glob(pathtoimages)]
images = np.array(images)
print(images.shape)

关于python - 如何在2D阵列中表示一组图像?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57636536/

10-12 20:34