Допустим, у меня есть изображение с диапазоном значений от 0 до 255.
image = np.asarray([[i for i in range(256)] for j in range(256)])
Теперь, если я хочу его визуализировать, я обычно использую
plt.imshow(image, cmap="jet")
Но яgoogled и не нашел ничего для преобразования визуализированного изображения обратно в фактическое значение изображения.
Моя попытка состоит в том, чтобы сопоставить каждую точку в цветовом пространстве с ее первоначальным значением, и это занимает очень много времени.Тогда я (надеюсь) могу отобразить каждый цвет пикселя обратно в его исходное пространство.
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 должен быть произвольным)