【发布时间】:2012-07-25 04:38:39
【问题描述】:
如果我有一个浮点数,例如0.568(浮点数保证为0 -> 1)。有没有办法在当前的 matlab 配色方案(即正常、热、hsv 等)下将其转换为 RGB 值(双精度 [1.0, 1.0, 1.0] 或 int [255 255 255])?
【问题讨论】:
如果我有一个浮点数,例如0.568(浮点数保证为0 -> 1)。有没有办法在当前的 matlab 配色方案(即正常、热、hsv 等)下将其转换为 RGB 值(双精度 [1.0, 1.0, 1.0] 或 int [255 255 255])?
【问题讨论】:
你可以试试这个:
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
【讨论】:
查看 jet 的帮助。
jet.colors(n) 返回一个包含 n 个颜色值的数组,该数组跨越颜色函数的范围,在本例中为 jet。现在您所做的就是将您的数据缩放/映射到该 1:n 范围。这是获取/调整颜色贴图的好方法。我以前经常这样做。
【讨论】: