繁体   English   中英

在python中将三个numpy数组合并为jpeg图像

[英]Merging three numpy arrays as jpeg image in python

我已经将jpeg图片分割为r,g,b,并将其转换为numpy数组。 然后,我更改了r,g,b的像素值。 现在,我想将这三个合并为一个jpeg并保存。 我的原始图像是1024 * 500图像。 如果有人可以给我一个主意,那将是一个很大的帮助

im =Image.open("new_image.jpg")
r,g,b=im.split()

r=np.array(r)
g=np.array(g)
b=np.array(b)

然后,我更改了像素的值。 我想合并结果r,g,b。 提前致谢

根据此文档 (最后是第4页),您可以使用merge进行此操作:

r, g, b = im.split()
im = Image.merge("RGB", (b, g, r))

要将PIL图像转换为NumPy数组:

img = Image.open(FILENAME).convert('RGB')
arr = np.array(img)
r, g, b = arr[:,:,0], arr[:,:,1], arr[:,:,2]
...

要将dtype uint8的rgb (二维)NumPy数组转换为PIL图像:

arr = np.dstack([r, g, b])
img = Image.fromarray(arr, 'RGB')

之所以有效,是因为Image.fromarray可以从任何支持NumPy数组接口的对象创建一个PIL图像。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM