2018年5月8日星期二

JPEGImages和Annotation文件夹准备

1 对JPEGImages文件内所有图片重命名:
#ChangeJpgName.py
import re
import os
import time
#str.split(string)分割字符串
#'连接符'.join(list) 将列表组成字符串
def change_name(path):
    global i
    if not os.path.isdir(path) and not os.path.isfile(path):
        return False
    if os.path.isfile(path):
        file_path = os.path.split(path) #分割出目录与文件
        lists = file_path[1].split('.') #分割出文件与文件扩展名
        file_ext = lists[-1] #取出后缀名(列表切片操作)
        img_ext = ['bmp','jpeg','gif','psd','png','jpg']
        if file_ext in img_ext:
            os.rename(path,file_path[0]+'/'+lists[0]+'_Enh.'+file_ext)
            i+=1 #注意这里的i是一个陷阱
        #或者
        #img_ext = 'bmp|jpeg|gif|psd|png|jpg'
        #if file_ext in img_ext:
        #    print('ok---'+file_ext)
    elif os.path.isdir(path):
        for x in os.listdir(path):
            print(x)
            print(os.path.join(path,x))
            change_name(os.path.join(path,x)) #os.path.join()在路径处理上很有用


#img_dir = "/Users/sisyphus/darkflow/VOCtest2018/JPEGImagesTrainAugEnh"
img_dir = '/Users/sisyphus/darkflow/VOCtest2018/testJPEG/'
#img_dir = img_dir.replace('\\','/')
start = time.time()
i = 0
change_name(img_dir)
c = time.time() - start
print('程序运行耗时:%0.2f'%(c))
print('总共处理了 %s 张图片'%(i))

2 删除文件夹里DS_store隐藏文件
#DelDS_store.py
import os, sys;

def walk(path):
    print("cd directory:"+path)
 
    for item in os.listdir(path):
        if(item == '.DS_Store'):
            global count
            count = count+1
            print("find file .Ds_Store")
            os.remove(path + '/' +item)
        else:
            if(os.path.isdir(path + '/' + item)):
                print(" " + path  + item + "  "+"is directory")
                walk(path + '/' + item)
            else:
                print(" " + path + item + "is file")



if __name__=='__main__':
    count = 0
    dir = '/Users/sisyphus/darkflow/VOCtest2018/testJPEG/'
    walk(dir)
    print("\ntotal number:" + str(count))

3 修改xml文件中对应的jpg文件名

#xmlEdit2.py
from xml.etree import ElementTree
import os

#jpgpath='/Users/sisyphus/darkflow/VOCtest2018/JPEGImages/'
jpgpath='/Users/sisyphus/darkflow/VOCtest2018/testJPEG/'
jpglist = os.listdir(jpgpath)
jpglist.sort()

#xmlpath='/Users/sisyphus/darkflow/VOCtest2018/Annotation/'
xmlpath='/Users/sisyphus/darkflow/VOCtest2018/testAnn/'
xmllist = os.listdir(xmlpath)
xmllist.sort()

i=0
for item in xmllist:
    #print(item)
    xmldoc = ElementTree.parse(xmlpath+xmllist[i])
    node = xmldoc.find('./filename')
    node.text = jpglist[i]
    xmldoc.write(xmlpath+xmllist[i])
    i=i+1
 

4 对Annotation文件中所有xml重命名(与JPEGImage各图片名字对应)
#ChangeXmlName.py
import re
import os
import time
#str.split(string)分割字符串
#'连接符'.join(list) 将列表组成字符串
def change_name(path):
    global i
    if not os.path.isdir(path) and not os.path.isfile(path):
        return False
    if os.path.isfile(path):
        file_path = os.path.split(path) #分割出目录与文件
        lists = file_path[1].split('.') #分割出文件与文件扩展名
        file_ext = lists[-1] #取出后缀名(列表切片操作)
        img_ext = ['xml']
        if file_ext in img_ext:
            os.rename(path,file_path[0]+'/'+lists[0]+'_Enh.'+file_ext)
            i+=1 #注意这里的i是一个陷阱
        #或者
        #img_ext = 'bmp|jpeg|gif|psd|png|jpg'
        #if file_ext in img_ext:
        #    print('ok---'+file_ext)
    elif os.path.isdir(path):
        for x in os.listdir(path):
            print(x)
            print(os.path.join(path,x))
            change_name(os.path.join(path,x)) #os.path.join()在路径处理上很有用


img_dir = "/Users/sisyphus/darkflow/VOCtest2018/AnnotationTrainAugEnh"
#img_dir = '/Users/sisyphus/darkflow/VOCtest2018/testAnn/'
#img_dir = img_dir.replace('\\','/')
start = time.time()
i = 0
change_name(img_dir)
c = time.time() - start
print('程序运行耗时:%0.2f'%(c))
print('总共处理了 %s 份xml'%(i))












没有评论:

发表评论

Failed to find TIFF library

ImportError: Failed to find TIFF library. Make sure that libtiff is installed and its location is listed in PATH|LD_LIBRARY_PATH|.. 解决方法: ...