# -*- coding: utf-8 -*- import os import shutil import random def copy_random_images(src_dir, dst_dir, num_images=20, prefix=''): """ 从源目录随机复制指定数量的图像到目标目录 :param src_dir: 源目录路径 :param dst_dir: 目标目录路径 :param num_images: 要复制的图像数量 :param prefix: 文件名前缀,用于区分不同来源 """ # 确保目标目录存在 os.makedirs(dst_dir, exist_ok=True) # 获取源目录中所有图像文件 image_files = [f for f in os.listdir(src_dir) if f.lower().endswith(('.jpg', '.jpeg', '.png'))] # 随机选择指定数量的图像 selected_files = random.sample(image_files, min(num_images, len(image_files))) # 复制文件 for file in selected_files: src_path = os.path.join(src_dir, file) dst_filename = f"{prefix}{file}" if prefix else file dst_path = os.path.join(dst_dir, dst_filename) shutil.copy2(src_path, dst_path) print(f"已复制: {file} -> {dst_filename}") print(f"已完成复制 {len(selected_files)} 张图像到 {dst_dir}") if __name__ == "__main__": # 目标目录 destination_dir = r"F:\myprojects\啾啾救援识别系统\JJCarDetection\datasets\猫狗\train\images" # 复制猫图片 cat_source = r"F:\myprojects\cats_and_dogs_filtered\train\cats" print("正在复制猫图片...") copy_random_images(cat_source, destination_dir, 20, prefix='cat_') # 复制狗图片 dog_source = r"F:\myprojects\cats_and_dogs_filtered\train\dogs" print("正在复制狗图片...") copy_random_images(dog_source, destination_dir, 20, prefix='dog_') print("所有图片复制完成!")