Python保存的图片红色像素值不正确

3

我有一个包含图片中红色像素的多维数组。我正在调整它,使用我已经更改的新红像素创建一个新的图片。我仍然保留蓝色和绿色,并且不改变它们。当我打印出红像素以查看它们在保存新图片之前是否正确时,一切都正常。 直到我通过打开并显示红色值来检查新图片时,这些值才是错误的。 以下是代码:

 from PIL import Image
import numpy as np

picture = Image.open('flower.jpg')
red, green, blue = np.array(picture).T
print red
picture.save('output.jpg')

第一条打印语句的输出是图片中红色像素:
[[112 114  111 ..., 12 13  7]
 [111 112  112 ..., 13 15 11]
 [111 110  110 ..., 12 17 17]
  ...,
 [181 180  180 ..., 25  17 11]
 [180 181  182 ..., 18  14  9]
 [179 179  179 ..., 13  14 15]]

我不确定,但问题可能与转置有关(太多次或在错误位置进行转置)。 - Andrew Clark
1个回答

4
PIL保存的JPEG图像始终是有损的。

哇,那真的有效,我简直不敢相信它是如此简单,我的天啊,非常感谢你,上帝保佑你的一切。 - Calvin Jones
1
JPEG的整个意义在于它可以以一种人眼无法察觉的方式丢弃数据(但显然,计算机查看确切的像素值会注意到差异)。 - abarnert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接