python - numpy 和 pil reshape 数组

标签 python numpy python-imaging-library

pil 到 numpy 的转换导致数组如下:

a = array([ [[r,g,b],[r,g,b].....[r,g,b],[r,g,b]]  ,  [[r,g,b],[r,g,b.....]] , int8)

rgb 值的三元组;在行内这样:

a[0] = [[r,g,b],[r,g,b].....[r,g,b],[r,g,b]] = first row

有没有一种快速的方法可以将这样的三元组 numpy 数组转换为 (好吧特别是回来..)

a = [[rrrr],[rrrrr],[rrrrr],.... [bbbbb],[bbbbbb],[bbbbbb]...,[ggggg],[ggg],[ggg]]

喜欢

a=[[rrr],[rrrrr],[....    ...]] **or** aa = [rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr..]

b=[[bbb],[bbbbb],[....    ...]]**or** bb = [bbbbbbbbbbbbbbbbbbbbbbbbbb..]

c=[[ggg],[ggggg],[....      .]] **or** cc = [ggggggggggggggggggggggggg..]

我的问题是我有像 aa bb cc 这样的格式,并且知道图像大小为 640x480 如何将它快速转换为 pill 格式,如下所示

a = array([ [[r,g,b],[r,g,b].....[r,g,b],[r,g,b]]  ,  [[r,g,b],[r,g,b.....]] , int8)

最佳答案

a.T 能满足您的需求吗?

我假设您已经使用 numpy 的 asarray 函数创建了数组。

import Image, numpy
im = Image.open('test.png')
a = numpy.asarray(im)
R,G,B,A = a.T

以上将为您提供 4 个独立的二维数组,每个波段一个。

关于python - numpy 和 pil reshape 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5036653/

相关文章:

python - 嵌套 json 到 Pandas 非常慢

python - 在 Keras 中使用自定义步骤激活函数会导致 “' tuple' object has no attribute '_keras_shape' ” 错误。如何解决这个问题?

python - 从 2 个数据帧计算加权股票 yield

python - 使用python在单色图像中围绕 Blob 的矩形​​边界框

python - 覆盖模型 save() 会导致 Django Admin 出错

python - PIL 和 Tkinter,多窗口

python - numpy:如何向现有结构化数组添加列?

python - 在Windows上使用pip安装Scipy python包时出错

python - 当我附加时,Numpy 错误地将大 float 更改为非常小的数字

python - win32com python 异常行为