繁体   English   中英

从图像创建一维 numpy 数组

[英]Create 1-D numpy array from image

编辑:从我的评论中复制,为问题提供更多背景信息

我忘了提到的一件重要的事情是我的最终目标是将它作为一个列添加到 pandas dataframe 中。 由于不止一个维度,尝试将像素数组按原样放入 dataframe 时出现错误。

我有一个 32x32 的图像,我想将其展平为一维 numpy 数组,该数组表示一个 object,该像素具有 RGB 值。

img = Image.open(img_path)
pixels = np.asarray(img)
width, height = img.size
pixels = pixels.reshape(width * height, 3)

目前这是我能做的最好的事情,而不会丢失一个 object 中的 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 值的一些 object (可能是元组?)。 谢谢。

c.f. 注释,数组为 dataframe 或系列:

dataframe = pd.DataFrame(pixels)   # As a dataframe with one column per color channel
column = dataframe.apply(tuple, axis=1)  # As a Series of (r,g,b) tuples

然后您可以将column用作另一个 dataframe 的列,如果您愿意的话

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM