[英]import images from folder python to numpy array list
我有一個包含 10000 張圖像的文件夾和 3 個子文件夾,每個文件夾包含不同數量的圖像。 我想導入這些圖像的一小部分用於訓練,每次我想選擇一部分數據時手動選擇的有限大小。 我已經有了這個 python 代碼:
train_dir = 'folder/train/' # This folder contains 10.000 images and 3 subfolders , each folder contains different number of images
from tqdm import tqdm
def get_data(folder):
"""
Load the data and labels from the given folder.
"""
X = []
y = []
for folderName in os.listdir(folder):
if not folderName.startswith('.'):
if folderName in ['Name1']:
label = 0
elif folderName in ['Name2']:
label = 1
elif folderName in ['Name3']:
label = 2
else:
label = 4
for image_filename in tqdm(os.listdir(folder + folderName)):
img_file = cv2.imread(folder + folderName + '/' + image_filename)
if img_file is not None:
img_file = skimage.transform.resize(img_file, (imageSize, imageSize, 1))
img_arr = np.asarray(img_file)
X.append(img_arr)
y.append(label)
X = np.asarray(X) # Keras only accepts data as numpy arrays
y = np.asarray(y)
return X,y
X_test, y_test= get_data(train_dir)
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X_test, y_test, test_size=0.2)
我想指定Size
參數,以便我可以選擇要導入的圖像數量。 從每個子文件夾導入的圖像數量應該相等
您可以在單獨的列表中讀取和存儲每個文件夾中的每個路徑,並選擇相同數量的路徑。
folder1_files = []
for root, dirs, files in os.walk('path/folder1', topdown=False):
for i in files:
folder1_files.append("path/folder1/"+i)
選擇:
train = folder1[:n] + folder2[:n] + folder3[:n]
n - 每個文件夾中的圖像數量
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.