2017-09-05 2 views
-1

Le code Python suivant crée la liste du tableau numpy. Je veux charger par des ensembles de données comme un tableau numpy qui a la dimension K x M x N x 3, où K est l'index de l'image et M x N x 3 est la dimension de l'image individuelle. Comment puis-je modifier le code existant pour le faire?Comment charger plusieurs fichiers PPM présents dans un dossier sous forme de Numpy ndarray?

image_list=[] 
    for filename in glob.glob(path+"/*.ppm"): 
     img = imread(filename,mode='RGB') 
     temp_img = img.reshape(img.shape[0]*img.shape[1]*img.shape[2],1) 
     image_list.append(temp_img) 
+0

Toutes les images sont-elles de forme M x N x 3? – Divakar

+0

oui ils sont tous M x Nx3 – Spandy

Répondre

2

Vous pouvez initialiser un tableau de sortie de cette forme et une fois à l'intérieur de la boucle, l'index dans le premier axe pour affecter des groupes d'images itérativement -

out = np.empty((K,M,N,3), dtype=np.uint8) # change dtype if needed 
for i,filename in enumerate(glob.glob(path+"/*.ppm")): 
    # Get img of shape (M,N,3) 
    out[i] = img 

Si vous ne connaissez pas K au préalable, nous pourrait l'obtenir avec len(glob.glob(path+"/*.ppm")).