假设我有一幅图像,其值的范围从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应该是任意的)