如何将 tiff 图像保存到新的 npy 文件中?
Posted
技术标签:
【中文标题】如何将 tiff 图像保存到新的 npy 文件中?【英文标题】:How to save tiff images into a new npy file? 【发布时间】:2020-07-16 15:09:07 【问题描述】:我想将我拥有的一些 tiff 图像保存到一个新的 npy 文件中。
我的数据保存在 5 个不同的文件中(tiff 格式)。我想访问它们中的每一个,将它们转换为 narray,然后将它们保存在一个新的 npy 文件中(用于深度学习分类)。
import numpy as np
from PIL import Image
import os
Data_dir = r"C:\Desktop\Université_2019_2020\CoursS2_Mosef\Stage\Data\Grand_Leez\shp\imagettes"
Categories = ["Bouleau_tiff", "Chene_tiff", "Erable_tiff", "Frene_tiff", "Peuplier_tiff"]
for categorie in Categories:
path = os.path.join(Data_dir, categorie) #path for each species
for img in os.listdir(path):
path_img = os.path.join(path,img)
im = Image.open(os.path.join(path_img)) #load an image file
imarray = np.array(im) # convert it to a matrix
imarray = np.delete(imarray, 3, axis=2)
np.save(Data_dir, imarray)
问题:它只是返回我最后一个类别"Peuplier_tiff"
的最后一个观察结果,它还保存在名称imagette
中,我不知道为什么。
最后但并非最不重要的一点是,我对我的目标有疑问,我如何确保我的类别正确分配给相应的数组。
很多问题, 提前感谢您的帮助。
S.V
【问题讨论】:
您必须在保存每个文件时使用唯一的文件名np.save(Data_dir + "/" + unique_name, imarray)
但您的Data_dir
似乎不是目录路径,您必须先创建它 - 即。 os.makedirs(Data_dir)
顺便说一句:os.path.join(path_img)
给出与直接path_img
相同的路径
感谢@furas,它正在工作。我现在想将我的每个阵列放在一个特定的 nyp 文件夹中(对于每个物种)。一步一个脚印,比利时见
fullpath = os.path.join( specific_folder, filename )
【参考方案1】:
感谢您的回复。它使用此代码:
import numpy as np
from PIL import Image
import os
new_dir = "dta_npy"
directory = r"C:\Desktop\Université_2019_2020\CoursS2_Mosef\Stage\Data\Grand_Leez\shp\imagettes"
Data_dir = os.path.join(directory, new_dir)
os.makedirs(Data_dir)
print("Directory '%s' created" %Data_dir)
Categories = ["Bouleau_tif","Chene_tif", "Erable_tif", "Frene_tif", "Peuplier_tif"]
for categorie in Categories:
path = os.path.join(directory,categorie) #path for each species
for img in os.listdir(path):
im = Image.open(os.path.join(path,img)) #load an image file
imarray = np.array(im) # convert it to a matrix
imarray = np.delete(imarray, 3, axis=2)
unique_name=img
unique_name = unique_name.split(".")
unique_name = unique_name[0]
np.save(Data_dir+"/"+unique_name, imarray)
现在我的目标是以这种方式为我的每个班级格式化我的数据:(点击链接)
format goal
【讨论】:
如何格式化数据?您只显示文件名。如果你想格式化文件名,那么问题出在哪里——文件名是一个字符串,你可以使用任何字符串的函数——即f-string
f"full_numpy_bitmap_arg.npy"
或"full_numpy_bitmap_arg.npy".format(arg)
或"full_numpy_bitmap_%s.npy" % (arg,)
如果您有新问题,请在新页面上创建新问题以上是关于如何将 tiff 图像保存到新的 npy 文件中?的主要内容,如果未能解决你的问题,请参考以下文章
如何将变量保存到新的文本文件中,以便下次程序运行时加载这些变量?
将 .npy(numpy 文件)输入 tensorflow 数据管道
遥感图像处理如何将7幅TIFF图像转换1幅img图像 用的是erdas软件,求具体一点点流程