【发布时间】:2020-11-08 18:11:49
【问题描述】:
我正在使用image dataset。它有12 different folders 和12 different classes。出于这个原因,我想在a single directory 中reserve all images 即all_im。我正在上面写代码,但它只复制了808 images。但我的主文件夹包含more than 5000 images。我怎样才能copy main folder 到 new folder 中的 Google-Colab 中的所有图像?
我的完整代码:
from numpy.random import seed
seed(101)
from tensorflow import set_random_seed
set_random_seed(101)
import pandas as pd
import numpy as np
import tensorflow
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Conv2D, MaxPooling2D, Flatten
from tensorflow.keras.optimizers import Adam
from tensorflow.keras.metrics import categorical_crossentropy
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.models import Model
from tensorflow.keras.callbacks import EarlyStopping, ReduceLROnPlateau, ModelCheckpoint
import os
import cv2
import imageio
import skimage
import skimage.io
import skimage.transform
from sklearn.utils import shuffle
from sklearn.metrics import confusion_matrix
from sklearn.model_selection import train_test_split
import itertools
import shutil
import matplotlib.pyplot as plt
%matplotlib inline
SAMPLE_SIZE = 250
# The images will all be resized to this size.
IMAGE_SIZE = 96
os.listdir('content/image_dataset')
folder_list = os.listdir('/content/image_dataset')
all_im_dir = 'all_im'
os.mkdir(all_im)
destination_path = "/content/all_images"
pattern = "/content/Weeds_dataset/*/*"
for img in glob.glob(pattern):
shutil.copy(img, destination_path)
打印功能:len(os.listdir('all_images'))
输出:808 images
期望:主文件夹包含5300 pictures,但我只能复制808 Images。
【问题讨论】:
-
您确定所有文件在子目录中都有唯一的名称吗?您在这里有效地扁平化了任何层次结构。
-
输出从何而来?我看不到任何打印功能。
-
尊敬的导师,每个文件夹中的文件都有相同的编号,即1到800,或1到1000。像这样。这意味着每个文件夹中的所有文件都有相同的编号
-
您必须重命名图像。您可以在最后一个循环中添加一个计数器并使用该计数器来命名图像。
-
counter = 1、counter += 1和shutil.copy(img, destination_path + '/' + str(counter))
标签: python python-3.x image glob shutil