Как преобразовать RGB Heatmap обратно в исходное значение с помощью matplotlib? - PullRequest
0 голосов
/ 24 января 2019

Допустим, у меня есть изображение с диапазоном значений от 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 должен быть произвольным)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...