将PNG图像文件转换为像素行以保存在数据框中

时间:2018-08-09 01:47:24

标签: python pandas numpy image-processing

我正在对图像数据集进行分类。我想将图像的所有像素值存储在pandas数据框中的一行中。 我能够将图像转换为矩阵,然后转换为数组,但是当我保存该数组时,它会保存在列中。

我用过

img = mpimg.imread(path_for_png)  #for getting image data into matrix 
img = np.ravel(img)    #this method for converting it into an array 

现在,当我应用此代码时:

df = pd.DataFrame(img)   #to convert it into dataframe

我以如下所示的格式获取数据框,但我想将其转换为单个示例的一行。

    0
0   1.0
1   1.0
2   1.0
3   1.0
4   1.0

1 个答案:

答案 0 :(得分:3)

在列表图像上使用pd.DataFrame将每个图像放在单独的行上。由于此处仅一张图像,因此根据您想要的输出添加[]就足够了。

df = pd.DataFrame([img])

会给予

    0   1   2   3   4
0   1.0 1.0 1.0 1.0 1.0

同时

df = pd.DataFrame([[img]])

给予

    0
0   [1.0, 1.0, 1.0, 1.0, 1.0]

如果数组很长,第二个输出很可能就是您想要的。