我需要创建基于其标签的图像子文件夹,标签存储在csv文件中示例
data\images (图像文件夹继续显示所有图像)
0.jpg,1.jpg,2.jpg......data\train.csv (train.csv文件夹包含图像名称和类)
train.head()
image_id catergory
0 22
1 44
.. ...我已经试过这个了
train_dir = r'C:\Users\Admin\Downloads\Flower recognition\data\train'
train_sep_dir = r'C:\Users\Admin\Downloads\Flower recognition\data\train\train_sep'
if not os.path.exists(train_sep_dir):
os.mkdir(train_sep_dir)
for image_id, category in labels.values:
# Create subdirectory with `class_name`
if not os.path.exists(train_sep_dir + str(category)):
os.mkdir(train_sep_dir + str(category)
src_path = train_dir + image_id + '.jpg'
dst_path = train_sep_dir + category + '/' + image_id + '.jpg'
try:
shutil.copy(src_path, dst_path)
except IOError as e:
print('Unable to copy file {} to {}'
.format(src_path, dst_path))
except:
print('When try copy file {} to {}, unexpected error: {}'
.format(src_path, dst_path, sys.exc_info()))发布于 2021-01-06 09:40:55
import shutil, os
import pandas as pd
labels = pd.read_csv("train.csv")
labels = labels.sort_values('Class')
class_names = list(labels.Class.unique())
train_images = '/train'
train_cat = '/train_'
#creating subfolders
for i in class_names:
os.makedirs(os.path.join('train_', i))
#moving the image files to their respective categories
for c in class_names: # Category Name
for i in list(labels[labels['Class']==c]['Image']): # Image Id
get_image = os.path.join('train', i) # Path to Images
move_image_to_cat = shutil.move(get_image, 'train_/'+c)‘图像image_id |类别类别’
https://stackoverflow.com/questions/57882527
复制相似问题