0

如何将图像中的像素颜色信息提取为数字并将它们存储在 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 个列/单元格包含上面提到的像素值。

4

1 回答 1

0

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

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])
于 2015-06-04T03:58:58.453 回答