最近在学习Tensorflow的猫狗识别案例,发现kaggle数据集中的猫狗图片有点多,而且测试集中包含的图片不是以二分类的文件夹格式保存的,在网上找了一圈之后也没有找到合适的,这个小案例利用python来实现对图片随机的选取。
import os
import random
import shutil
def copy_and_rename_images(source_folder, destination_folder, num_images):
# 创建目标文件夹
os.makedirs(destination_folder, exist_ok=True)
# 获取源文件夹中所有图片文件的路径
image_files = [os.path.join(source_folder, f) for f in os.listdir(source_folder) if os.path.isfile(os.path.join(source_folder, f))]
# 从图片文件中随机选择指定数量的文件
selected_files = random.sample(image_files, num_images)
# 循环复制并重命名选中的图片文件
for i, file_path in enumerate(selected_files):
# 构造新的文件名
new_file_name = f"cat{i+1}.jpg"
# 拷贝并重命名文件到目标文件夹
shutil.copy(file_path, os.path.join(destination_folder, new_file_name))
# 示例用法
source_folder = 'E:/kaggle数据集/train/cat' # 源文件夹路径
destination_folder = 'E:/kaggle数据集/train1/cat' # 生成的新图片存放路径
num_images = 1000 # 需要挑选的图片数量
copy_and_rename_images(source_folder, destination_folder, num_images)