如何将图像的像素颜色信息转换为数字并将其存储在 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])
如何将图像中的像素颜色信息提取成数字并存储在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])