首页 > 解决方案 > 将图像文件转换为 CSV 时如何添加标签?

问题描述

我在看 Kaggle 上的深度学习指南。我练习了几个模型,我的测试数据存储在带有标签名称的目录中(即 TestData\Top 和 TestData\Bottom 用于训练图像以创建一个可以区分感兴趣项目的顶部和底部的模型)。

但是,对于创建自己的模型( https://www.kaggle.com/dansbecker/deep-learning-from-scratch )的本课,数据需要存储在 CSV 文件中,第一列作为标签。我有这段代码将图像转换为灰度和 CSV 文件并获取标签:

from PIL import Image
import numpy as np
import sys
import os
import csv
import glob

from os import path

TestPath = 'C:\...\outgoingbank'

Labels = []
myFileList = []


for files in os.listdir(TestPath):
    Labels.append(files)
    os.chdir(TestPath)
    for images in os.listdir(files):
        fullName = os.path.join(files, images)
        myFileList.append(fullName)



print (Labels)
print(myFileList)


for file in myFileList:
   print(file)
   Label = file.split('\\')
   Label = Label[0]
   print (Label)
   img_file = Image.open(file)


    # get original image parameters...
    width, height = img_file.size
    format = img_file.format
    mode = img_file.mode

    # Make image Greyscale
    img_grey = img_file.convert('L')


    value = np.asarray(img_grey.getdata(), dtype=np.int).reshape((img_grey.size[1], img_grey.size[0]))
    value = value.flatten()
    print(value)
    with open("C:\...\img_pixels.csv", 'a') as f:
        writer = csv.writer(f)
        writer.writerow(value)

所以我有标签和图像,以及将图像转换为 CSV 的代码,但我如何将标签插入第一行?另外,是否可以不将它们转换为灰度?(我试过但尺寸错误)

编辑:我能够通过以下方式添加标签:

Test = []

Test.append(Label)
for i in value:
    Test.append(i)

#print(Test)
with open("C:\...\img_pixels.csv", 'a') as f:
    writer = csv.writer(f)
    writer.writerow(Test)

但我仍然不明白为什么这段代码只写入每隔一行,我该如何解决?

标签: pythoncsv

解决方案


推荐阅读