python - 如何使用 PIL 从数组到列表并再次返回?
问题描述
我正在尝试将我的图像以列表形式放置,以便在图像中插入像素。但是,在完成列表操作后,我在转换回图像时遇到了问题。原来只是从图像 -> 数组 -> 列表 -> 数组 -> 图像把图像弄得很好。
但是,从 image -> array -> image 开始似乎工作得很好。这是进入导致问题的列表的额外步骤。
下面是我正在运行的 python3 代码。谁能告诉我我做错了什么以及如何将 3D 列表转换回与原始图像相同的 RGB 图像?原始数组和最终数组似乎都是相同的,所以不确定 PIL 不喜欢什么......
import numpy as np
from PIL import Image
img = Image.open('1.jpg')
array = np.array(img)
list1 = array.tolist()
arrayF = np.array(list1)
img2 = Image.fromarray(arrayF,"RGB")
img2.save('trial.jpg')
print(array)
print(arrayF)
解决方案
如果您使用 来检查dtype
您的阵列,print(array.dtype)
您将看到它array
是 8 位和arrayF
64 位的......对于 RGB 图像,PIL是不可接受的。
使用以下命令arrayF
恢复为 8 位:
arrayF = arrayF.astype(np.uint8)
推荐阅读
- javascript - 在 React 中从它们内部的按钮切换两个组件的可见性
- delphi - Delphi TFDQuery - 过滤多个表达式和 YearOf
- java - Spring boot - 拦截器 - 添加到 MySQL
- python - 类型错误:可配置()得到了一个意外的关键字参数“拒绝列表”
- pdf - ps2pdf - 从 .ps 添加到 .pdf 的白色边距
- google-cloud-platform - 在 GCS 存储桶中点击 .html 文件时遇到“禁止错误 403”错误
- ios - 一个出口怎么可能是零,即使它已经设置了
- ssl - paho.mqtt 连接失败,总是返回 - 1
- javascript - 到达最后一张幻灯片时,使用键盘左箭头键不应向左滚动
- frontend - 如何在保持前端交互的同时避免前端的业务逻辑