1

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

我发现这是代码,

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的颜色是第3等的颜色。2将在第1行的第1个单元中,第2个单元中的3个,第3个单元中的253个,依此类推。但整个图像像素将在这一行。因此,如果其50 * 50的图片将有2500列/单元格包含上述像素值。

+0

你应该张贴你写的代码迄今为止以及为什么你会想要一个2500列csv的解释。你也可以更清楚你想要什么颜色信息,RGB,RGBA,CMYK? – SuperBiasedMan

+0

@MalikBrahimi我编辑了这个问题。我需要与CSV相关的代码部分,这是我在这个问题中找不到的。请删除重复的标记。在此先感谢 – mayooran

+0

@SuperBiasedMan编辑该问题。我需要这种格式的SVM。请指教。 – mayooran

回答

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]) 
+0

以及如何将这些写入单个单元格>请帮助 – mayooran

相关问题