5

例如,如果我有一个浮点数0.568(浮点数保证是0 -> 1)。在当前的 matlab 配色方案(即正常、热、hsv 等)下,有没有办法将其转换为 RGB 值(以 double[1.0, 1.0, 1.0]或 int形式)?[255 255 255]

4

2 回答 2

5

你可以试试这个:

f = 0.568; % your float

cm = colormap % returns the current color map

colorID = max(1, sum(f > [0:1/length(cm(:,1)):1])); 

myColor = cm(colorID, :) % returns your color

结果f = 0.568

myColor =

    0.8125    1.0000    0.1875
于 2012-07-25T06:21:38.363 回答
1

查看 jet 的帮助。

jet.colors(n) 返回一个包含 n 个颜色值的数组,该数组跨越颜色函数的范围,在本例中为 jet。现在您所做的就是将您的数据缩放/映射到该 1:n 范围。这是获取/调整颜色贴图的好方法。我以前一直这样做。

于 2012-07-25T04:52:21.917 回答