YOLO可能用到的代码

数据集和验证集的划分

# -*- coding: UTF-8
import os, random, shutil


def moveimg(fileDir, tarDir):
    pathDir = os.listdir(fileDir)  # 取图片的原始路径
    filenumber = len(pathDir)
    rate = 0.15  # 自定义抽取图片的比例,比方说100张抽10张,那就是0.1
    picknumber = int(filenumber * rate)  # 按照rate比例从文件夹中取一定数量图片
    sample = random.sample(pathDir, picknumber)  # 随机选取picknumber数量的样本图片
    print(sample)
    for name in sample:
        shutil.move(fileDir + name, tarDir + "\\" + name)
    return


def movelabel(file_list, file_label_train, file_label_val):
    for i in file_list:
        if i.endswith('.JPG') or i.endswith('.png'):
           filename = file_label_train + "\\" + i[:-4] + '.txt'  # 可以改成xml文件将’.txt‘改成'.xml'就可以了
            if os.path.exists(filename):
                shutil.move(filename, file_label_val)
                print(i + "处理成功!")


if __name__ == '__main__':
    fileDir = r"E:\GraduationProject\yolov5-7.0\AppleScab\images\train" + "\\"  # 源图片文件夹路径
    tarDir = r'E:\GraduationProject\yolov5-7.0\AppleScab\images\val'  # 图片移动到新的文件夹路径
    moveimg(fileDir, tarDir)
    file_list = os.listdir(tarDir)
    file_label_train = r"E:\GraduationProject\yolov5-7.0\AppleScab\labels\train"  # 源图片标签路径
    file_label_val = r"E:\GraduationProject\yolov5-7.0\AppleScab\labels\val"  # 标签
    # 移动到新的文件路径
    movelabel(file_list, file_label_train, file_label_val)

图片格式转化png到jpg;反过来同理

import os
from PIL import Image


# 获取指定目录下的所有png图片
def get_all_png_files(directory):

    files_list = []
    for root, dirs, files in os.walk(directory):
        for file in files:
            if os.path.splitext(file)[1] == '.png':
                files_list.append(os.path.join(root, file))
    return files_list


# 批量转换png图片为jpg格式
def png2jpg(files_list):
    for file in files_list:
        img = Image.open(file)
        new_file = os.path.splitext(file)[0] + '.jpg'
        img.convert('RGB').save(new_file)

# 删除某个文件夹下中所有子文件夹的图片
def delete_images(directory):
    for file in os.listdir(directory):
        pic_dir=os.path.join(directory, file)
        for i in os.listdir(pic_dir):
            # 这里可以指定其他拓展名文件
            # if file.endswith(".jpg") or file.endswith(".png") or file.endswith(".jpeg"):
            if i.endswith(".png"):
                os.remove(os.path.join(pic_dir, i))
                print(f"Deleted {i}")


if __name__ == '__main__':
    directory = "E:\GraduationProject\yolov5-7.0\AppleScab\images"
    files_list = get_all_png_files(directory)
    png2jpg(files_list)
    delete_images(directory)

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值