Я хочу изменить цвет изображения в Python - PullRequest
0 голосов
/ 16 февраля 2019

Я хочу изменить цвета изображения, сделанного указанными числами.Есть три числа (1, 2, 3).Используя plt, я могу получить изображение, которое автоматически раскрашивается.Тем не менее, я хочу указать каждую точку (т.е. 1 = «черный», 2 = «желтый», 3 = «зеленый»).

import matplotlib.pyplot as plt

fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.imshow(subvolume[1,:,:])
ax2.imshow(subvolume2[1,:,:])
plt.show()

1 Ответ

0 голосов
/ 16 февраля 2019

Вы можете использовать BoundaryNorm с краями на 0.5, 1.5, ... и цветовую карту с тремя рассматриваемыми цветами.Подать оба к imshow(array, cmap=cmap, norm=norm)

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors

a = np.random.randint(1,4, size=(5,7))

colors = ['black', 'yellow', 'limegreen']
boundaries = np.arange(1,5)-0.5
cmap = matplotlib.colors.ListedColormap(colors)
norm = matplotlib.colors.BoundaryNorm(boundaries, len(colors))

plt.imshow(a, cmap=cmap, norm=norm)

cb = plt.colorbar(ticks=np.arange(1,4))

plt.show()

enter image description here

Это особый случай более общего Построения двухмерного массива с произвольными цветами

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