如何使用imshow()(matplotlib)绘制日志标准化图像?

时间:2014-03-18 17:22:52

标签: image numpy matplotlib normalize

我理解这个概念。但我认为我犯了一个愚蠢的错误。这就是我想要的(psuedo-ish代码)。这是一个练习。我无法理解较低的原点部分和前两行的语法。

norm = LogNorm(image.mean() + 0.5 * image.std(), image.max(), clip='True', 
               cmap=cm.gray, origin="lower")

image这里是一个numpy数组。如何将matplotlib中的这些normcmap参数传递给plt.showimshow()

这不起作用:

imshow(image, cmap=cm.gray, LogNorm(......))

1 个答案:

答案 0 :(得分:3)

这有用吗?

from matplotlib import colors, cm, pyplot as plt

norm = colors.LogNorm(image.mean() + 0.5 * image.std(), image.max(), clip='True')
plt.imshow(image, cmap=cm.gray, norm=norm, origin="lower")

使用对数刻度创建一个特殊的色彩映射,范围从image.mean() + 0.5 * image.std()image.max()。更多一般信息在此处:colors,具体为:LogNorm

origin='lower'表示数组的[0,0]元素('origin')显示在图的左下角。通常,数组的原点位于左上角。