Python-批量对于图像进行标签id重命名

根据得到的分类结果数据,对于给出的测试图像进行标签重命名:

测试集分类结果文件:stag_01_test.csv

测试图片文件夹:stag_01_test

##########图片重命名 Rename,设置标签##########
import os 
ROOT_DIR = os.path.abspath("./")
img_path = os.path.join(ROOT_DIR, "stag_01_test")
imglist = os.listdir(img_path)
print('img_path',img_path)

Python-批量对于图像进行标签id重命名_第1张图片

#########对于csv文件进行读取###############
import csv
t1 = open('stag_01_test.csv', 'r')
fileone = t1.readlines()
t1.close()
print(fileone[1])
print(fileone[1].strip().split(','))
print(fileone[1].strip().split(',')[0])
print(fileone[1].strip().split(',')[1])

Python-批量对于图像进行标签id重命名_第2张图片

###########标签解析##############
def result_(res):
    if res=='airplane':
                return 0
    elif res=='ship':
                return 1
    elif res=='bridge':
                return 2
    elif res=='oilcan':
                return 3
    elif res=='build':
                return 4
    else:
                return 5
i = 0
for img in imglist:
    if img.endswith('.jpg'):
        # print(i)
        src = os.path.join(os.path.abspath(img_path), img)  # original name
        print('src',src)
        #src /home/jovyan/work/data/gyx/Test_all/stag_01_test/0001.jpg
        img_n = img[:-4] 
        print(img_n) #0001
        filename=fileone[i+1].strip().split(',')#['0001.jpg', 'airplane']
        if filename[0]==img:
            id = int(result_(filename[1]))
        else:
            print('Wrong filename')
        dst = os.path.join(os.path.abspath(img_path),img_n +  '_%d'%(id) + '.jpg')  # original name + _1
        os.rename(src, dst)  # rename==>recover the original name
        i+=1

 原始图像文件:

Python-批量对于图像进行标签id重命名_第3张图片

加上标签的图像文件:

Python-批量对于图像进行标签id重命名_第4张图片

 

 

 

你可能感兴趣的:(python)