python - 将 numpy 数组转换为图像 RGB
问题描述
我有一个这样的列表:
data = [(22, 21, 2), (217, 210, 166), (250, 240, 230), (276, 270, 260), (232, 234, 249), (274, 282, 270), (258, 266, 264)...]
对于 16 x 16 的图像,长度为 256。
我想将其转换为原始图像,但给我一张 3*256 的图像,如下所示:
我正在使用此代码
img = Image.fromarray(data.astype('uint8'), 'RGB')
我怎样才能解决这个问题?
解决方案
这是np.reshape
变得有用的地方。
你需要做的是:
Image.fromarray(np.reshape(image_arr, (16,16,3)).astype(np.uint8), 'RGB')
这会将您的数组重塑为 16x16x16 数组(排名 3),这是 Image.fromarray 所期望的。
有关更多信息,这里是文档np.reshape
使用 NDarrays 的 reshape 属性并image_arr.reshape((16,16,3))
改为这样做也可能会很好。
推荐阅读
- swift - 视频像素化文本上的 CATextLayer
- sql - Oracle SQL - 平均函数的最大值
- csv - 连接填充了不同字段的 2 行
- oracle - 如何从另一个持有锁并导致死锁的会话中检查整个 pl/sql 堆栈信息
- haskell - IO monad 处理,简化绑定语法
- reactjs - 在 Ubuntu 上使用 Axios 部署 ReactJS
- bash - 根据键比较两个文件,在另一个文件中打印值的差异
- cmake - CMake 文件下载忽略错误
- flutter - 如何在 Flutter 中的 TabBarView 中从最后一个选项卡滑动到第一个选项卡
- javascript - 如何在 webpack 中定义全局变量?