# -*- coding: utf-8 -*-
"""
Created on Wed Mar 6 18:10:26 2019
@author: 孔金迪
"""
from PIL import Image
import os
import shutil
import xlrd
import csv
import random
import numpy as np
root_path = 'D:\GTSRB\Final_Training'
root_files = os.listdir(root_path)
save_root_path = 'D:\GTSRB\Final_Training\TrainingPNG2'
#处理训练集
for file in root_files:
#print(file) #Images
image_path = os.path.join(root_path , file)
#print(image_path) #D:\GTSRB\Final_Training\Images
image_files = os.listdir(image_path)
#print(image_files) #['00000', '00001', '00002', ...,'00042']
if not os.path.exists(save_root_path):
os.mkdir(save_root_path)
for file in image_files:
#print(file) #00000 00001...00042
class_path = os.path.join(image_path , file)
#print(class_path) #D:\GTSRB\Final_Training\Images\00000...00042
class_files = os.listdir(class_path)
#print(class_files) #00007_00016.ppm'...
save_class_path = os.path.join(save_root_path , file)
if not os.path.exists(save_class_path):
os.mkdir(save_class_path)
#print(save_class_path) #D:\GTSRB\Final_Training\TrainingPNG\00036
for file in class_files:
#print(file) #00000_......ppm GT-00***.csv
file_name,tensionname = os.path.splitext(file) #分离 文件名(含扩展名) 和扩展名
if tensionname == '.ppm':
#print(file_name) #000007_00029
file_path = os.path.join(class_path , file_name+'.ppm')
#print(file_path)
save_file_path = os.path.join(save_class_path , file_name+'.png')
#print(save_file_path) #D:\GTSRB\Final_Training\TrainingPNG\00042\00007_00029.png
image = Image.open(file_path)
image.save(save_file_path)
有我自己整理好的PNG格式文件https://download.csdn.net/my/uploads
GTSRB 德标的交通标志数据集,但是注意到训练集和测试集的目录不一样啊,,,所以上面只是训练集的。测试集就没有class_path ,,就是没有分类这个文件夹。。。。(坑了半小时,令人窒息)
注意目录的格式
一边创建文件夹,一边转化图片的格式
鬼知道自己的anaconda为什么总是出问题,,所以把代码扔上来