Как настроить цветовую шкалу (радиометрическое разрешение) в Python matplotlib.pyplot.imshow

Я пытаюсь построить изображения со значениями [0,255] и [0,20], но plt.imshow не отображает их в одной цветовой шкале (радиометрическое разрешение).

У меня есть 2 изображения со значениями [0, 255] (0 = темный, 255 = светлый) с именами data1 и data2, и разница между этими массивами не так уж велика. Когда я пытаюсь сохранить разницу между двумя изображениями и сохранить ее в виде массива с именем diff, значения пикселей этого массива составляют около [0, 20] (0 = темный, 20 = яркий).

Где я создаю свои массивы

np.random.seed(19680801)
data1 = np.random.randint(256, size=(5, 5))
data2 = (data1 + 20 * np.random.random((5, 5)))//1

Где я рассчитываю их различия

diff  = data2 - data1

Где я их заговор

fig, (ax1, ax2, ax3) = plt.subplots(ncols=3)
ax1.set_title("Data #1")
ax2.set_title("Data #2")
ax3.set_title("Diff")
ax1.imshow(data1, cmap = "gray")
ax2.imshow(data2, cmap = "gray")
ax3.imshow(diff , cmap = "gray")
fig.tight_layout()

Но я хочу построить эти массивы так, как если бы их радиометрическое разрешение было одинаковым. Как я могу это исправить?

0 ответов

Другие вопросы по тегам