matplotlib:如何获得imshow颜色?

时间:2015-10-21 15:33:42

标签: python matplotlib

我使用

绘制了一幅图像
import matplotlib.pyplot as plt
plt.imshow(image)

image是一个NxM numpy数组,只有5个不同的值。 如何在imshow显示的图像中获取这5个值已映射到的RGB值列表?

2 个答案:

答案 0 :(得分:2)

如果您事先不知道图片中的值是什么,可以使用np.unique查找所有唯一值,然后使用normcmap属性AxesImage

返回的imshow

例如:

import numpy as np
import matplotlib.pyplot as plt

im = plt.imshow(image)
colours = im.cmap(im.norm(np.unique(image))

答案 1 :(得分:1)

好吧,我找到了一种基于this其他问题的方法。

import matplotlib.pyplot as plt
art = plt.imshow(image)
colours = [art.cmap(art.norm(c)) for c in range(1,6)]

颜色包含我需要的颜色。