【问题标题】:How do I convert jpg or png files to csv files? [duplicate]如何将 jpg 或 png 文件转换为 csv 文件? [复制]
【发布时间】:2019-09-22 02:26:56
【问题描述】:

我有一些想用于计算机视觉的 jpg 图像。如何将它们转换为 csv 文件?我尝试了一个在线转换器,但我不知道它是否真的有效。

【问题讨论】:

  • csv 文件包含什么样的数据?例如,this image of jelly beans 会被转换成什么?
  • @Kevin 一个文本文件,其中包含每个果冻豆的描述、大小和颜色,但用逗号分隔。简单。下一个?

标签: python tensorflow computer-vision google-colaboratory


【解决方案1】:

首先您需要读取图像文件。您可以通过各种方式进行操作。我将使用 PIL:

from PIL import Image
img = np.array(Image.open("image.jpg"))

现在将 numpy 数组转换为 csv 文件。

import csv

def csvWriter(fil_name, nparray):
  example = nparray.tolist()
  with open(fil_name+'.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile, delimiter=',')
    writer.writerows(example)

csvWriter("myfilename", img)

为了将csv文件转换回numpy数组

import ast

def csvReader(fil_name):
  with open(fil_name+'.csv', 'r') as f:
    reader = csv.reader(f)
    examples = list(reader)
    examples = np.array(examples)
  t1=[]
  for x in examples:
    t2=[]
    for y in x:
      z= ast.literal_eval(y)
      t2.append(np.array(z))
    t1.append(np.array(t2))
  ex = np.array(t1)
  return ex

backToNumpyArray = csvReader("myfilename")

【讨论】:

    【解决方案2】:

    尝试使用 imageio.imread 将其转换为 numpy 数组,然后从那里进行转换。

    import numpy as np
    import imageio
    
    img = (imageio.imread(img_location, as_gray=True))/255
    img = np.array(img)
    
    np.savetxt("image.csv", a, delimiter=",")
    

    如果你喜欢熊猫:

    import pandas as pd
    pd.DataFrame(img).to_csv("image.csv")
    

    编辑:这是假设您想要灰度。如果您喜欢 RGB,您可以将通道分成 3 个 2D 数组并为每个通道创建三个单独的文件。

    【讨论】:

    • 在此行名称a 未定义np.savetxt("image.csv", a, delimiter=",")
    猜你喜欢
    • 2020-11-01
    • 1970-01-01
    • 2022-11-30
    • 2012-12-15
    • 1970-01-01
    • 2019-10-27
    • 1970-01-01
    • 2015-01-31
    • 2021-10-14
    相关资源
    最近更新 更多