2015-05-14 20 views

Odpowiedz

7

Dlaczego po prostu nie spróbować załadować wszystkich plików w folderze? Jeśli OpenCV nie może go otworzyć, no cóż. Przejdź do następnego. cv2.imread() zwraca None, jeśli obraz nie może zostać otwarty. Coś dziwnego, że nie podnosi wyjątku.

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

możesz użyć funkcji glob, aby to zrobić. Patrz przykład

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

użyłem skimage. Możesz utworzyć kolekcję i elementy dostępu w standardowy sposób, np. Col [indeks]. Da ci to wartości 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

również użyć matplotlib do tego, to wypróbować:

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 
Powiązane problemy