muestra, shutil.move extrae aleatoriamente imágenes de archivos para moverlas (se usa para extraer el conjunto de prueba del conjunto de entrenamiento)

Descripción del problema:

Mueva aleatoriamente 2 copias de las imágenes en el conjunto de entrenamiento (representando 0.1) para formar un conjunto de verificación y un conjunto de prueba

Código completo

import shutil
import random
import os

'''
获取所有图片的路径;
移动图片的数目
获取随机移动图片的名称列表
移动图片
'''


# shutil.move(train_path,verify_path)
# random.sample()

def move_file(file_dir, dst_dir):
    path_dir = os.listdir(file_dir)  # 源图像路径
    file_num = len(path_dir)
    rate = 0.1  # 移走图片的比率
    # move_num=int(file_num*rate)
    move_num = 200
    sample = random.sample(path_dir, move_num)  # 随机移动的图片名称
    for name in sample:
        shutil.move(file_dir + name, dst_dir + name)
    return


if __name__ == '__main__':
    # 注意最后有一个斜杠!!!
    train_path = r'G:/00_deeplearning/机器学习/01_code/data/分纤箱外景照/train_image/'  # 原图文件
    aim_path = r'G:/00_deeplearning/机器学习/01_code/data/分纤箱外景照/test_image/'  # 目标文件夹

    move_file(train_path, aim_path)

Ideas para resolver problemas

  1. Obtener la lista de rutas de todas las imágenes

En este momento, la lista es el nombre de cada imagen que se extraerá, no la ruta completa.

Ruta de la imagen de almacenamiento:Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Lista de rutas de imagen
Inserte la descripción de la imagen aquí

2. Establezca la cantidad de imágenes que deben moverse

Inserte la descripción de la imagen aquí
3. Obtener la lista de nombres de imágenes en movimiento aleatorias
Inserte la descripción de la imagen aquí
4. Mover
Inserte la descripción de la imagen aquí
Nota: el final de la ruta
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_43586192/article/details/110484109
Recomendado
Clasificación