2015-05-14 12 views

risposta

7

Perché non provare a caricare tutti i file nella cartella? Se OpenCV non riesce ad aprirlo, vabbè. Passa a quello successivo. cv2.imread() restituisce None se l'immagine non può essere aperta. È strano che non generi un'eccezione.

import cv2 
import os 

def load_images_from_folder(folder): 
    images = [] 
    for filename in os.listdir(folder): 
     img = cv2.imread(os.path.join(folder,filename)) 
     if img is not None: 
      images.append(img) 
    return images 
3

è possibile utilizzare la funzione glob per fare ciò. vedere l'esempio

import cv2 
import glob 
for img in glob.glob("path/to/folder/*.png"): 
    cv_img = cv2.imread(img) 
6
import glob 
cv_img = [] 
for img in glob.glob("Path/to/dir/*.jpg"): 
    n= cv2.imread(img) 
    cv_img.append(n)` 
5

ho usato skimage. Puoi creare una raccolta e accedere agli elementi in modo standard, ad esempio [indice]. Questo ti darà i valori RGB.

from skimage.io import imread_collection 

#your path 
col_dir = 'cats/*.jpg' 

#creating a collection with the available images 
col = imread_collection(col_dir) 
1

È anche possibile utilizzare matplotlib per questo, provare questo fuori:

import matplotlib.image as mpimg 

def load_images(folder): 
    images = [] 
    for filename in os.listdir(folder): 
     img = mpimg.imread(os.path.join(folder, filename)) 
     if img is not None: 
      images.append(img) 
    return images 
Problemi correlati