我从这篇文章中知道如何将数字映射到颜色:在matplotlib中将值映射到颜色
但是我不知道如何解码映射以获取我的原始颜色,假设这是一对一的映射,我必须确定。
我正在对图像进行编码以用于可视化目的,但是我需要能够对其进行解码并读取原始数据值。
作为参考,这里是Colormap文档:http : //matplotlib.org/api/cm_api.html
这是我对以下主要答案的尝试,但仍无法正常工作。
from PIL import Image
import numpy as np
import matplotlib
import matplotlib.cm as cm
values = [670, 894, 582, 103, 786, 348, 972, 718, 356, 692]
minima = 103
maxima = 972
norm = matplotlib.colors.Normalize(vmin=minima, vmax=maxima, clip=True)
mapper = cm.ScalarMappable(norm=norm, cmap=cm.gist_rainbow_r)
c = []
for i in range(10):
c.append(mapper.to_rgba(values[i], bytes=True))
print(c) # [(75, 255, 0, 255), (255, 77, 0, 255), (0, 255, 64, 255), (255, 0, 191, 255), (255, 250, 0, …Run Code Online (Sandbox Code Playgroud)