我在使用Python加载图像时遇到问题。以下是我的代码:
from skimage import io
import matplotlib.pyplot as plt
image = io.imread('.tif file was put here')
plt.imshow(image)
plt.show()
在Python 3.4 shell中运行它会导致我的图像出现,但不是处于正常颜色(灰度),而是显示彩虹般的颜色。当我尝试为Lena测试图像运行此代码时,也会发生这种情况:
from scipy import misc
l = misc.lena()
misc.imsave('lena.png', l) # uses the Image module (PIL)
import matplotlib.pyplot as plt
plt.imshow(l)
plt.show()
您可以在此处看到Python显示错误颜色的图像输出:http://imgur.com/SzqrhB2,rSXGQJu。任何帮助将不胜感激!
答案 0 :(得分:2)
imshow()
的默认色图是jet
(您可以看到默认matplotlib
色标列表here)。如果您想要灰度,则必须明确指定:
import matplotlib.cm as cm
plt.imshow(l, cmap=cm.gray)
编辑:为了清晰起见而添加。在两个示例中,图片仅包含强度信息,因此imshow
使用其cmap
参数。如果他们有完整的RGB(A)信息,cmap
将被忽略,图像将根据该信息显示。