首先将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]值的图片却以不同的方式显示?
首先将RGB图像缩放为[0,1],然后可以在matplotlib中显示。然后我将其恢复(乘以255),并显示出来,但是变成紫色,如下面粘贴的图片所示。什么是...
[当我尝试您的程序时,我收到一条警告,说:“将输入数据剪切为有效范围以显示带RGB数据的imshow(浮点数为[0..1],整数为[0..255]。”
在这里dog = mpimg.imread('1.jpg')
中,您将dog
分配给图像数据,该数据是每个像素reference的颜色值,然后将每个像素乘以255,并将结果分配给结果图像的每个像素值。这就是为什么它具有这种颜色。(负图)