GTSRB 的ppm格式文件转为png格式

# -*- 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为什么总是出问题,,所以把代码扔上来

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值