其中每个文件夹内含有500个png文件,并且每个png文件的大小均为28*28:
#导入需要使用的库
import os
import PIL.Image as Image
#这里写的是数据的10种类型,后续将基于这些类型名保存转换后的结果
dirs_name=["E","F","H","I","L","O","T","U","Y","Z"]
#创建保存结果的文件夹
for a in dirs_name:
savepath = 'E:/data_GISAlgorithm/Class_pngs/{}_pngs'.format(a)
if not os.path.exists(savepath):
os.mkdir(savepath)
#tif格式文件所在的路径
dir="E:/data_GISAlgorithm/tif"
#读取路径下的所有文件
files = os.listdir(dir)
#遍历读取的所有文件
for f in files:
#判断遍历到的文件是否为tif格式,如果是tif,才进行转换操作
if os.path.splitext(f)[1] == ".tif":
print(f)
#获取当前文件的文件名,例如当前文件为E458.shp,则获取的basename为E458
basename=os.path.splitext(f)[0]
#读取当前文件
image = Image.open("E:/data_GISAlgorithm/tif/{}".format(f))
#将tif图片转换为28*28的png图片
image = image.resize((28, 28), Image.ANTIALIAS)
#把结果按照类型保存在对应的文件夹内
image.save('E:/data_GISAlgorithm/Class_pngs/{}_pngs/{}.png'.format(basename[0:1],basename))
通过三篇文章,我详细的介绍了如何将一个含有5000个面的shp文件,最终转换为5000个28*28的png'图片。