删除没有标注的图片


前言

用于删除未标注的图片


一、balabala

标记前的所有图片格式 .jpg
标记后的所有图片格式 .xml
标记前图片在一个文件夹里,标记后的图片在另一个文件夹里。

不对某一张/某几张.jpg格式图片进行标记,该.jpg格式图片不会保存为.xml格式,意思是:没有被标记的图片,只有.jpg格式,没有对应.xml格式

所以代码逻辑是:
两个文件夹对应图片文件名一致,但是格式不一致。去除两个文件夹中所有的图片格式,只保留图片名。
循环比较两个文件夹中图片名,有.jpg格式图片但没有.xml格式图片的话删去该.xml格式图片。

二、balabala

https://blog.csdn.net/qq_34717531/article/details/108324014
根据链接代码修改
在链接代码基础上修改了切片字符,改为".jpg"/“.xml”。
修改27,28行代码就可以用。

三、代码

import os
'''
用于删除未标记的图片
https://blog.csdn.net/qq_34717531/article/details/108324014
根据链接代码修改
在链接代码基础上修改了切片字符,改为".jpg"/".xml"。
修改2728行代码就可以用
'''

'''
标记前的所有图片格式   .jpg 
标记后的所有图片格式   .xml 
标记前图片在一个文件夹里,标记后的图片在另一个文件夹里。

不对某一张/某几张.jpg格式图片进行标记,该.jpg格式图片不会保存为.xml格式,意思是:没有被标记的图片,只有.jpg格式,没有对应.xml格式

所以代码逻辑是:
两个文件夹对应图片文件名一致,但是格式不一致。去除两个文件夹中所有的图片格式,只保留图片名。
循环比较两个文件夹中图片名,有.jpg格式图片但没有.xml格式图片的话删去该.xml格式图片。
'''

'''
images_dir      标记前.jpg格式的图片的文件夹
xml_dir         标记后.xml格式的图片的文件夹
根据自身情况修改文件夹路径
'''
images_dir = 'C:\\Users\\biu\\Desktop\\old'
xml_dir = 'C:\\Users\\biu\\Desktop\\new'


'''
os.listdir()  方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。
Python split() 通过指定分隔符对字符串进行切片

从xml_dir文件夹中读取所有标注后的图片名
对图片名使用".xml"字符进行切片
所有图片名存放在xmls = []'''
# 创建列表
xmls = []
# 读取xml文件名(即:从xml_dir 中读取所有标注后的图片名)
for xml in os.listdir(xml_dir):
    # xmls.append(os.path.splitext(xml)[0])    #append()参数:在列表末尾添加新的对象,即将所有文件名读入列表
    xmls.append(xml.split('.xml')[0])  # splitext和split的区别:前者('0001','.jpg'), 后者('0001','jpg') 在此可选用
# print(xmls)


'''
从images_dir文件夹中读取所有标注前的图片名
对图片名使用".jpg"字符进行切片
所有图片名存放在image_name中
若image_name中图片名不存在于xmls = []中,则在images_dir中删去该图片
'''
# 从images_dir中读取标记前所有图片
for image_name in os.listdir(images_dir):
    image_name = image_name.split('.jpg')[0]
    if image_name not in xmls:
        image_name = image_name + '.jpg'
        print(image_name)
        os.remove(os.path.join(images_dir, image_name))
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值