插值matlab色彩映射

时间:2015-10-13 18:33:34

标签: matlab interpolation colormap

在Matlab中,使用预定义的色彩图,我想将颜色三元组与范围[v_min,v_max]中的任何值相关联。

如何插入此色彩图?

1 个答案:

答案 0 :(得分:5)

以下代码可以。请注意,您需要缩放和偏移您正在绘制的变量[vmin vmax][0 1]

val % Variable scaled correctly to the colormap scale (0-1).

hsv=rgb2hsv(cmap);
cm_data=interp1(linspace(0,1,size(cmap,1)),hsv,val);
cm_data=hsv2rgb(cm_data);

cm_data应该有您正在寻找的三联体。代码取自here

注意:这将按照您的要求进行,但我不确定您是否要这样做。如果这是出于绘图目的,那么这是一个坏主意,因为色图需要与数据线性增加,而MATLAB的颜色绘图将假定它是。

如果您的目标是确保您拥有足够大的色彩映射表,请将val更改为linspace(0,1,300)