我想在python中更改图像的颜色

问题描述 投票:0回答:1

我想改变由指定数字制作的图像颜色。有三个数字(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()
python matplotlib
1个回答
0
投票

你可以在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

这是更一般的Plotting a 2d numpy array with custom colors的特例

© www.soinside.com 2019 - 2024. All rights reserved.