将图像文件转换为CSV文件

时间:2019-02-07 09:30:12

标签: python image-processing

我正在研究“日本女性面部表情(JAFFE)”数据库。您可以在此链接http://www.kasrl.org/jaffe.html 上找到数据库。 当我下载数据库时,我得到了一张图片列表。我想将这些图像文件转换为CSV文件,但是我对深度学习还是陌生的,我也不知道该怎么做。有人建议我使用OpenCV。我该怎么办?

3 个答案:

答案 0 :(得分:0)

我有一个简单的例子 希望对您有帮助。

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


def createFileList(myDir, format='.jpg'):
    fileList = []
    print(myDir)
    for root, dirs, files in os.walk(myDir, topdown=False):
        for name in files:
            if name.endswith(format):
                fullName = os.path.join(root, name)
                fileList.append(fullName)
    return fileList
# load the original image
myFileList = createFileList('path/to/directory/')
for file in fileList:
    print(file)
    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("img_pixels.csv", 'a') as f:
          writer = csv.writer(f)
          writer.writerow(value)

答案 1 :(得分:0)

安装枕头,numpy,熊猫

  • 将图像转换为RGB
  • 在大熊猫数据框中绘制RGB以及x,y坐标
  • 将数据框另存为csv

示例工作代码如下

 from PIL import Image
    from numpy import array, moveaxis, indices, dstack
    from pandas import DataFrame


    image = Image.open("data.tiff")
    pixels = image.convert("RGB")
    rgbArray = array(pixels.getdata()).reshape(image.size + (3,))
    indicesArray = moveaxis(indices(image.size), 0, 2)
    allArray = dstack((indicesArray, rgbArray)).reshape((-1, 5))


    df = DataFrame(allArray, columns=["y", "x", "red","green","blue"])
    print(df.head())
    df.to_csv("data.csv",index=False)

答案 2 :(得分:0)

您无需编写任何代码,只需在macOS,Linux或Windows的命令行上使用vips

因此,在终端(或命令提示符,如果在Windows中):

vips im_vips2csv TM.AN1.190.tiff result.csv

将256x256灰度图像TM.AN1.190.tiff转换为256行CSV,每行256个条目。简单!

如果要用逗号替换制表符分隔符,可以执行以下操作:

tr '\t' , < result.csv  > NewFile.csv