如何将图像的像素颜色信息转换为数字并将其存储在 CSV 中?

How can I convert an image's pixel color information into numbers and store it in a CSV?

如何将图像中的像素颜色信息提取成数字并存储在CSV文件中?这些数字应该全部进入 1 行和多列。如果图像是 50*50,那么应该只有 1 行和 2500 列包含像素颜色信息。我怎样才能在 Python 中做到这一点?请指教

我找到了代码,

pixels = list(im.getdata())
width, height = im.size
pixels = [pixels[i * width:(i + 1) * width] for i in xrange(height)]

但我希望这个列表在单行和多列中,因为我的 svm 期望它以这种格式训练图像。

输出应该如下所示,因为这是一张灰度图像, 2 3 253...

其中 2 是第一个像素的颜色,3 是第二个像素的颜色,253 是第三个像素的颜色,依此类推。2 将在第一行的第一个单元格中,3 在第二个单元格中,253 在第三单元等。但是整个图像像素将在这一行中。因此,如果它是一张 50*50 的图片,将有 2500 columns/cells 包含上述像素值。

基本上你想展开数组(这是一个列表的列表)。您可以通过双重列表理解来做到这一点:

pixels = [i for row in pixels for i in row]

如果你想将它写入一个文件,你的值之间有空格,你可以这样做

with open('output.csv', 'w') as outfile:
   outfile.write(' '.join([str(i) for i in pixels])