用PIL保存Python中RGB值的图片

2024-09-29 22:35:09 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我正在尝试创建一个程序,它需要用RGB值保存图片。这只是我设置的一个简单测试,以确保我可以打开、获取数据,然后再次将图像与数据一起保存:

inputIm = Image.open(args.target)

#denoises image and saves it to disk
#data = DenoiseImage(inputIm, factor, iters)
data = np.array(inputIm.getdata())
n, m = inputIm.size
print data
outputIm = Image.new("RGB", (n, m))
outputIm.putdata(data)
outputIm.save(args.fileName)

当我运行它时会出现这个错误:

^{pr2}$

但是,print数据行确实打印出一个数组,其中包含元组,所以我真的不明白我做错了什么。我对黑白图片做了完全相同的处理(“L”而不是“RGB”),并放入一个没有元组的数组中(而不是单值),这样就有效了。在


Tags: 数据图像image程序targetdataargs图片
2条回答

Numpy已将getdata提供的元组转换为数组。您需要将它们转换回元组,putdata才能工作。在

outputIm.putdata([tuple(pixel) for pixel in data])

你的黑白图像只有一个通道(“L”),所以n×m阵列工作得很好。但是,一个RGB图像有3个通道,所以您可能需要一个n×m×3的阵列。在

相关问题 更多 >

    热门问题