大量数据集划分、图片名处理等--------python代码----------分享

 

本文全为Python代码

当我们进行目标检测训练时,需要对大量图片进行处理,此时代码就可以帮助我们实现。

目录

本文全为Python代码

一、图片路径信息写入------代码!



前提

1、确保你安装有Pycharm,或者是Visual Studio Code等类似的python编译平台。

2、有工程项目,或是新建一个工程项目,且配置有python虚拟环境或是Anaconda虚拟环境,(python和Anaconda 它们都是python解释器,只是Anaconda比python更强大。)

如图,这些你应该都知道,不然这些代码在哪里运行?



一、图片路径信息写入------代码!

¥代码功能:将图片的路径信息写入到一个文本当中,如图文本n.txt中是一些路径信息。

----------------------------------用yolov7模型训练时,数据集那块儿会用到

***首先代码:支持的图片格式---------------------------------{".jpg", ".jpeg", ".png", ".gif", ".bmp"}

¥代码!!!

import os

# 设置需要遍历的文件夹路径
folder_path = "D:\pycharm-project\projectA\VOCX\images\\train"

# 打开一个新的txt文件,以写入的方式
with open("../n.txt", "w") as f:
    # 遍历文件夹中的所有文件和子文件夹
    for root, dirs, files in os.walk(folder_path):
        # 遍历文件夹中的所有文件
        for filename in files:
            # 如果文件是以.jpg, .jpeg, .png等格式结尾的图片文件
            if filename.lower().endswith((".jpg", ".jpeg", ".png", ".gif", ".bmp")):
                # 将文件名和相对路径写入到txt文件中
                rel_path = os.path.relpath(os.path.join(root, filename), folder_path)
                # 将路径中的反斜杠替换成正斜杠,并添加VOCA/images/train/前缀
                rel_path = "D:/yolov7/VOCX/images/train/" + rel_path.replace("\\", "/")
                f.write(rel_path + "\n")

# 关闭文件
f.close()


1、效果展示:   

SSSS将路径下的所有图片(如图):           D:\pycharm-project\projectA\VOCX\images\\train      

SSS写入到名为 n.txt 的文本中,该文本如果没有,它会自动新建。

SS想要写入的内容(路径信息):      D:/yolov7/VOCX/images/train/

真正的结果是D:/yolov7/VOCX/images/train/cahua001.jpg   ,如下图

也就是说就算先写入内容为空,他也是cahua001.jpg ,见s图

少一个/,D:/yolov7/VOCX/images/train   就变成   D:/yolov7/VOCX/images/traincahua001.jpg

S写入结果如下图:      你没有看错,我们在用Yolov7或者yolov8进行模型训练的时候会用到

 ss如果写入内容为空,即

rel_path = "" + rel_path.replace("\\", "/")

s结果为: 


2、如何方便获得路径:(在工程里面就可以获得你的图片路径)


3、代码使用

新建一个python,任意命名。

复制粘贴改代码后,,只需要修改三个地方

【1】  第一处: 

folder_path = "D:\pycharm-project\projectA\VOCX\images\\train"  #val是一个文件夹,该文件夹下放了500张图片。

            改成                 folder_path = " 你的图片路径(就是你图片存放的位置)"                           (它访问的是文件夹下所有的图片指定到文件夹就行,不用指定到某个图片)

 (最好把图片放在工程目录下,其实不管在其他C、D、F磁盘,应该都行,我没有试过)

【2】第二处:   

 with open("../n.txt", "w") as f:

这个是生成的txt文本的名字为 n.txt 你也可任意改成其他的,例如:

注意:(该文本文件生成后会放在该代码所在目录下)

with open("../train.txt", "w") as f:  #生成的文本名字为  train.txt

with open("../val.txt", "w") as f:    #生成的文本名字为   val.txt

【3】第三处:

 rel_path = "D:/yolov7/VOCX/images/train/" + rel_path.replace("\\", "/")

 这个就是你想写入文本的内容了,我觉得这样的是最方便的!!需要写入什么就写入什么。

不会因为你图片的位置而改变!!!




二、图片格式转换代码

三、图片名称更换代码

四、标注格式转换代码

五、图片名称和对应标签更换代码

六、图片水平变换和垂直变换代码

七、索引更换代码

八、训练集验证集生成代码

代码持续更新中--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值