zoukankan      html  css  js  c++  java
  • Python根据label删除图片

    """
    由于标注时有些错误,导致图片有几张多余的或者txt文件有几张多余的,
    因此要删除多余的文件,保证每一张jpg对应一个txt文件。
    """
    
    import os
    
    images_dir = "./JPEGImages"
    labels_dir = "./labels"
    
    #删除多余的image,
    labels = []
    for label in os.listdir(labels_dir):
        #labels.append(label.split('.')[0])#不能用这一行,因为有些文件名字前面就有 . 这样得到的文件名字是不对的。 
        labels.append(os.path.splitext(label)[0]) 
    #print(labels)
    
    for image_name in os.listdir(images_dir):
            #image_name = image_name.split('.')[0] #不能用这一行,因为有些文件名字前面就有 . 
            image_name = os.path.splitext(image_name)[0] 
            #print(image_name)
            if image_name not in labels:
                image_name = image_name + ".jpg"
                print(image_name)
                #os.remove(os.path.join(images_dir, image_name))#删除图片,最开始先把这一行注释掉,运行下看看打印,以免误删导致数据还是重新做,
    
    #删除多余的label
    images = []
    for image in os.listdir(images_dir):
        #images.append(image.split('.')[0])#不能用这一行,因为有些文件名字前面就有 . 
        images.append(os.path.splitext(image)[0] )
    
    for label_name in os.listdir(labels_dir):
        #label_name = label_name.split('.')[0]#不能用这一行,因为有些文件名字前面就有 . 
        label_name = os.path.splitext(label_name)[0] 
        if label_name not in images:
            label_name = label_name + ".txt"
            print(label_name)
            #os.remove(os.path.join(labels_dir, label_name))#删除label,最开始先把这一行注释掉,运行下看看打印,以免误删导致数据还是重新做,

    作者:cumtchw
    出处:http://www.cnblogs.com/cumtchw/
    我的博客就是我的学习笔记,学习过程中看到好的博客也会转载过来,若有侵权,与我联系,我会及时删除。

  • 相关阅读:
    [LeetCode#68] Text Justification
    [LeetCode#227] Basic Calculator II
    [LeetCode#87] Scramble String
    [LeetCode#280] Wiggle Sort
    [LeetCode#272] Closest Binary Search Tree Value II
    [LeetCode#254] Factor Combinations
    [LeetCode#174] Dungeon Game
    python报错集合
    在线画图工具
    xml模块(了解)
  • 原文地址:https://www.cnblogs.com/cumtchw/p/12696225.html
Copyright © 2011-2022 走看看