【问题标题】:How may I copy all images from different 12 folders to a single folder?如何将所有图像从不同的 12 个文件夹复制到一个文件夹?
【发布时间】:2020-11-08 18:11:49
【问题描述】:

我正在使用image dataset。它有12 different folders12 different classes。出于这个原因,我想在a single directoryreserve all imagesall_im。我正在上面写代码,但它只复制了808 images。但我的主文件夹包含more than 5000 images。我怎样才能copy main foldernew 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 = 1counter += 1shutil.copy(img, destination_path + '/' + str(counter))

标签: python python-3.x image glob shutil


【解决方案1】:

您必须重命名图像。您可以在最后一个循环中添加一个计数器并使用该计数器来命名图像。

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/image_dataset/*/*"
counter = 0
for img in glob.glob(pattern):
    counter += 1
    shutil.copy(img, destination_path + str(counter) + img.split('.')[-1])

【讨论】:

    猜你喜欢
    • 2014-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-30
    • 1970-01-01
    • 2018-03-18
    • 1970-01-01
    相关资源
    最近更新 更多