我测试了您的代码。输出对我来说很好
('X_data shape:',(4,617,1021,3))
但是,所有图像的尺寸都完全相同。
当我添加另一个具有不同范围的图像时,我将得到以下输出:
('X_data shape:',(5,))
因此,我建议您检查大小和相同数量的通道(实际上所有图像都是彩色图像)?另外,您还应该检查所有图像(或没有图像)是否都具有Alpha通道(请参阅@Gughan Ravikumar的评论)
如果仅通道数变化(即某些图像为灰色),则使用以下命令强制将所有图像加载为彩色格式:
image = cv2.imread (myFile, cv2.IMREAD_COLOR)
编辑:我从问题中使用了非常代码,仅替换为我的目录(和“ * .PNG”):
import cv2
import glob
import numpy as np
X_data = []
files = glob.glob ("C:/Users/xxx/Desktop/asdf/*.PNG")
for myFile in files:
print(myFile)
image = cv2.imread (myFile)
X_data.append (image)
print('X_data shape:', np.array(X_data).shape)
0
我有一些(950)150x150x3 .jpg图像文件,我想读入Numpy数组。
以下是我的代码:
输出为
(950, 150)
。请让我知道为什么列表未正确转换为np.array
以及是否有更好的方法来创建图像数组。在我阅读的内容中,通过python列表将附加到numpy数组更容易,然后将它们转换为数组。
编辑:一些更多的信息(如果它帮助),
image.shape
回报(150,150,3)
正确。