jjsos_JJdetection/copy_cat_images.py

49 lines
1.7 KiB
Python

# -*- 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("所有图片复制完成!")