以自己的数据集处理为例,仅供参考。
1:初始数据集介绍:图像为tif格式,dat文件中取5个字段作为类别标签。如下:第一张图显示数据所在文件夹,第二张图显示文件夹中的tif图像,第三张图显示标签信息dat文件。
目前拥有的是没有整理的数据集。为了更好的送入神经网络训练和数据处理,需要对数据进行一系列的整理。
主要思路:将数据集整理成3个txt文档:images.csv(以0、1、2、3…序号形式保存tif图像路径信息)、classes.csv(以0、1、2、3…序号形式保存标签信息)、image_classes.csv(保存每个tif图像对应的标签信息)
*
**实现:images.txt:
***存储tif图像的路径信息,方便读取图像时快速找到图像,读取图像矩阵信息。由于图片分布在不同的子文件夹下,为了方便查询,将路径保存成“子文件夹”+“图像名”形式。
def file_name(file_dir):
L = []
for root, dirs, files in os.walk(file_dir):
for file in files:
if file.startswith("ND") and file.endswith(".tif"):
file_path = os.path.join(root, file)
img_path = file_path.split('\\')[3] + "\\" + file_path.split('\\')[4]
L.append(img_path)
return L
首先定位目录,在该目录下查询以“ND”开头“.tif”结尾的名称,将其与子路径进行拼接,写入L列表内。最后采用pandas中的to_csv生成images.csv文件。
cd = pd.DataFrame(txt_name)
d.to_csv('.\\data\\images.csv', index=True, header=None, sep=' ')
生成csv文件如下: