【发布时间】:2020-10-01 21:06:32
【问题描述】:
首先我将一个 RGB 图像缩放到 [0,1],然后在 matplotlib 中显示就可以了。
然后我恢复它(乘以 255)并显示它,但它变成了紫色,如下面的图片所示。
原因是什么?如何解决?将图像重新缩放到 [0,255] 的正确方法是什么?
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
dog = mpimg.imread('1.jpg')
dog = dog / 255
plt.subplot(121)
plt.imshow(dog) #Normal and ok here
plt.title(('/255'))
dog = dog*255
plt.subplot(122)
plt.imshow(dog) # Purple image, not ok
plt.title('*255')
plt.savefig('out.jpg')
plt.show()
==============================这里有一行=============== ===========
由@BruceWayne 建议,我尝试使用 *-255 而不是 *255,它可以工作。
但是原因是什么?为什么值为 [-255, 0] 的图片显示正常,而 [0,255] 的图片显示方式不同?
【问题讨论】:
-
看起来像原版的底片。
-
*-255是做什么的? -
@BruceWayne 太棒了!它按 *-255 工作!但我认为 *255 是 /255 的相反程序,而不是 *-255。这对我来说没有意义。为什么有效?
标签: python image matplotlib normalization