如何使用matplotlib将RGB热图转换回其原始值?

时间:2019-01-24 19:05:51

标签: matplotlib jupyter-notebook

假设我有一幅图像,其值的范围从0到255。

image = np.asarray([[i for i in range(256)] for j in range(256)])

现在,如果我想形象化它,我通常会使用

plt.imshow(image, cmap="jet")

但是我搜索了一下,没有发现任何东西可以从可视化图像转换回实际图像值。

我的尝试是将色彩空间中的每个点映射回其原始值,这非常耗时。然后,我(希望)可以将每个像素颜色映射回其原始空间。

cmap = matplotlib.cm.get_cmap('hsv')

# Creating inverse map of cmap
cmap_map = np.zeros((256, 256, 256))
step = 1/(256**3)
for i in tqdm(np.arange(0, 1 + step, step), position=0):
    cmap_map[np.round(np.array(cmap(i)[:-1])*255).astype(dtype=np.int)] = i

是否有更好的转换方法? (注意cmap应该是任意的)

0 个答案:

没有答案