(图像分类任务)读取文件夹所有图片并保存txt,并将图片保存为imdb格式。

1.读取文件夹所有图片并保存txt

import sys    
import os
import random 

data_base_dir = r"E:\DATA\UCMerced_LandUse-2\images" 
file_list = [] 
write_file_name = r"E:\DATA\UCMerced_LandUse-2\label.txt"
f=open(write_file_name, 'w')
i=0
for file in os.listdir(data_base_dir): 
    
    name =data_base_dir+'\\'+ file
    for img_name in os.listdir(name):
        label=file+'/'+img_name+' '+str(i)+'\n'
        f.write(label)
    i=i+1
f.close()

2.将图片保存为imdb格式

import sys
import numpy as np
import cv2
import os
import numpy.random as npr
import _pickle as pickle
import matplotlib.pyplot as plt
folder_name= r"E:/DATA/UCMerced_LandUse-2/images/" 
with open(r"E:\DATA\UCMerced_LandUse-2\label.txt", 'r') as f:
    txt_list = f.readlines()
num = len(txt_list)
name=[]
label=[]
label_list=[]
print ("{:d} image in total".format(num))
i=1
for iline, line in enumerate(txt_list):
    line_split=line.split()
    name=folder_name+line_split[0]
    label=str(line_split[1])
    im=cv2.imread(name)
    im=cv2.resize(im,(256,256),interpolation=cv2.INTER_CUBIC)
    label_list.append([im, label])
    print("{:d}  processed image done".format(i))
    i=i+1
fid = open("E:/DATA/UCMerced_LandUse-2/train.imdb",'wb')
pickle.dump(label_list, fid)
fid.close()



猜你喜欢

转载自blog.csdn.net/u011376607/article/details/80784084