我正在尝试将array
转换为图像( tif )以进行压缩(它将在另一端撤消)。但是,我正陷入第一道障碍......
我有以下内容:
pillow_image = Image.fromarray(image_data)
这给了我这个错误:
File "/Users/workspace/test-app/env/lib/python2.7/site-packages/PIL/Image.py",
第2155行,在fromarray arr = obj。 array_interface AttributeError:'tuple'对象没有属性' array_interface '
我在这里做错了什么?
答案 0 :(得分:3)
image_data
是4个numpy数组的元组,每个(可能)形状(H,W)。您
需要image_data
是一个单一的形状数组(H,W,4)。因此,使用np.dstack来组合频道。
至少有一个数组的dtype为int32。但要将其用作8位颜色通道,数组必须为dtype uint8
(因此最大值为255)。您可以使用uint8
将数组转换为dtype astype
。希望您的数据不包含大于255的值。如果是,astype('uint8')
将仅保留最低有效位(即返回模数为256的数字)。
image_data = np.dstack(image_data).astype('uint8')
pillow_image = Image.fromarray(image_data)