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

2023-10-13 11:10

本文主要是介绍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 nproot_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)  #Imagesimage_path = os.path.join(root_path , file)#print(image_path)  #D:\GTSRB\Final_Training\Imagesimage_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...00042class_path = os.path.join(image_path , file)#print(class_path)  #D:\GTSRB\Final_Training\Images\00000...00042class_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\00036for file in class_files:#print(file)  #00000_......ppm   GT-00***.csvfile_name,tensionname = os.path.splitext(file) #分离 文件名(含扩展名) 和扩展名if tensionname == '.ppm':#print(file_name)  #000007_00029file_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.pngimage = Image.open(file_path)image.save(save_file_path)

有我自己整理好的PNG格式文件https://download.csdn.net/my/uploads

 

GTSRB 德标的交通标志数据集,但是注意到训练集和测试集的目录不一样啊,,,所以上面只是训练集的。测试集就没有class_path ,,就是没有分类这个文件夹。。。。(坑了半小时,令人窒息)

注意目录的格式

一边创建文件夹,一边转化图片的格式

 

鬼知道自己的anaconda为什么总是出问题,,所以把代码扔上来

这篇关于GTSRB 的ppm格式文件转为png格式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/202788

相关文章

easyui同时验证账户格式和ajax是否存在

accountName: {validator: function (value, param) {if (!/^[a-zA-Z][a-zA-Z0-9_]{3,15}$/i.test(value)) {$.fn.validatebox.defaults.rules.accountName.message = '账户名称不合法(字母开头,允许4-16字节,允许字母数字下划线)';return fal

恶意PNG:隐藏在图片中的“恶魔”

<img src="https://i-blog.csdnimg.cn/blog_migrate/bffb187dc3546c6c5c6b8aa18b34b962.jpeg" title="214201hhuuhubsuyuukbfy_meitu_1_meitu_2.jpg"/></strong></span><

[数据集][目标检测]血细胞检测数据集VOC+YOLO格式2757张4类别

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2757 标注数量(xml文件个数):2757 标注数量(txt文件个数):2757 标注类别数:4 标注类别名称:["Platelets","RBC","WBC","sickle cell"] 每个类别标注的框数:

一步一步将PlantUML类图导出为自定义格式的XMI文件

一步一步将PlantUML类图导出为自定义格式的XMI文件 说明: 首次发表日期:2024-09-08PlantUML官网: https://plantuml.com/zh/PlantUML命令行文档: https://plantuml.com/zh/command-line#6a26f548831e6a8cPlantUML XMI文档: https://plantuml.com/zh/xmi

PNG透明背景按钮的实现(MFC)

问题描述: 当前要在对话框上添加一个以两个PNG图片作为背景的按钮,PNG图的背景是透明的,按钮也要做出相同的透明效果。并且鼠标不在按钮上时,按钮显示"bg1.png";鼠标移动到按钮上时,按钮显示"bg2.png" 开发环境为VS2010。 解决办法: 使用GDI+库装载PNG图片,并使用MFC Button Control和CMFCButton类结合,调用CMFCButton

FFmpeg系列-视频解码后保存帧图片为ppm

在正常开发中遇到花屏时怎么处理呢?可以把解码后的数据直接保存成帧图片保存起来,然后直接看图片有没有花屏来排除是否是显示的问题,如果花屏,则代表显示无问题,如果图片中没有花屏,则可以往显示的方向去排查了。 void saveFrame(AVFrame* pFrame, int width, int height, int iFrame){FILE *pFile;char szFilename[

【CTF Web】BUUCTF Upload-Labs-Linux Pass-13 Writeup(文件上传+PHP+文件包含漏洞+PNG图片马)

Upload-Labs-Linux 1 点击部署靶机。 简介 upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。 注意 1.每一关没有固定的通关方法,大家不要自限思维! 2.本项目提供的writeup只是起一个参考作用,希望大家可以分享出自己的通关思路

单精度浮点数按存储格式转为整数的程序

///#include<cstdio>//-----------------union int_char{unsigned char ch[4];float i;};void out_put(union int_char x)//x86是小端对其模式,即最数据的最低位存储在地址的最低位上。{printf("单精度浮点数值为:%f\n",x.i,x.i);printf("存储位置从左到右

[数据集][目标检测]智慧农业草莓叶子病虫害检测数据集VOC+YOLO格式4040张9类别

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):4040 标注数量(xml文件个数):4040 标注数量(txt文件个数):4040 标注类别数:9 标注类别名称:["acalcerosis","fertilizer","flower","fruit","grey

spring事务属性的xml格式配置

实际是使用代理做的事务优化 <!--配置事务的属性--><tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <!--匹配所有以add开头的方法--><tx:method name="add*" propagation="REQUIRED" /> <tx:metho