在Python中的彩色映射一文中,向大伙介绍了一下matplotlib模块中内嵌的colormap,以及如何将这些colormap中的数值导出来以供使用。
在续篇中我们将进一步向大家介绍如何生成自定义colormap。如现在有(255,0,0), (255,255,0), (255,255,255), (0,157,0), (255,0,255)五种颜色,我们如何用这些颜色作为区间边界生成一个自定义的colormap呢?
最简单的情形,以五种颜色作为边界,我们将整个灰度级平均分成4个等分,对于[0, 255]灰度区间而言,均分后的区间分别为[0, 64),[64, 128),[128, 191),[191, 255]。那么我们只需要在每个区间分别对R、G、B三个通道进行插值即可,如线性插值,具体实现如下。
def linear_colormap(colors, max):
rows, cols = np.shape(colors)
position = []
for i in range(0, rows):
position.append(np.int(round((1.0 * i * max)/(rows - 1))))
color_map =