python - 如何解释“Image.fromarray()”方法?
问题描述
我正在尝试使用以下命令从“numpy.ndarray”创建图像:
x = np.random.randint(0, 256, (3, 64, 64), dtype=np.uint8)
y = Image.fromarray(x)
但是,我收到此错误:
TypeError:无法处理此数据类型:(1, 1, 64), |u1
但是当这样传递“x”时:
x = np.random.randint(0, 256, (64, 64, 3), dtype=np.uint8)
y = Image.fromarray(x)
有用。但据我了解:np.random.randint(low, high, (depth/layers, rows, columns))
。因此,第一个“x”是有意义的,因为它有 3 层 (64x64) 矩阵;而后者表示(64x3)矩阵的 64 层。
我在这里想念什么?
解决方案
这是因为 Image 需要“通道最后”数组作为图像。您的第一个示例在其第一个轴上有颜色通道。尽管 PIL 文档中糟糕的文档没有帮助,因为它没有明确说明。
有关通道第一或通道最后图像的 conecpt 的更多信息,请参阅此。
推荐阅读
- python - 无法将小部件添加到 UserCreationForm
- javascript - 如何计算两个日期之间的差异
- javascript - 关于 JavaScript 范围的问题,是否有可能完成我正在尝试做的事情
- javascript - 遍历 QuranGlobal JSON 响应
- sql - 按 id 用户 sql 排序分组表
- java - 如何最好地保存到数据库
- c# - 从 UWP 应用程序到 Azure 函数的 RSA 加密
- sql - 返回五行随机 DNA 而不是一
- core-data - 在模态视图中编辑特定的核心数据对象
- javascript - 为什么一个属性在记录时清楚地指向一个函数,但在同一行代码中引用时返回未定义?