【发布时间】:2020-09-10 19:30:58
【问题描述】:
编辑:复制我的评论为问题提供更多背景
我忘记提到的一件重要的事情是我的最终目标是添加这个 作为熊猫数据框的列。我在尝试时遇到错误 由于不止一个,将像素数组按原样放入数据帧 维度。
我有一个 32x32 的图像,我想将其展平为一个 1-D numpy 数组,该数组表示一个在该像素处具有 RGB 值的对象。
img = Image.open(img_path)
pixels = np.asarray(img)
width, height = img.size
pixels = pixels.reshape(width * height, 3)
目前这是我能做的最好的事情,而不会丢失一个对象中的 RGB 值分组。然而,通过这个实现,我得到一个二维数组,每个元素都是这样的 RGB 值数组。
shape: (1024, 3)
[[255 255 255]
[255 255 255]
[255 255 255]
...
[255 255 255]
[255 255 255]
[255 255 255]]
我希望我的数组具有(1024,1) 的形状,并且每个元素都是 RGB 值的某个对象(可能是一个元组?)。谢谢。
【问题讨论】:
-
这基本上 是 你所拥有的,但每个 (r,g,b) 像素都是一个 numpy 数组,而不是一个元组。如果您必须有一个元组,请执行
pixels = [tuple(x) for x in pixels]。不过,我不确定您为什么要这样做:您将失去 numpy 的所有方便的数组切片功能。还是我误解了这个问题? -
我忘记提及的一件重要事情是我的最终目标是将其作为一列添加到熊猫数据框中。由于多个维度,尝试将像素数组按原样放入数据帧时出现错误。
-
在下面查看我的答案
标签: python image numpy python-imaging-library numpy-ndarray