Используйте цветовую схему Matlab для преобразования float в RGB
Если у меня есть поплавок, например 0.568
(float гарантированно будет 0 -> 1
). Есть ли способ преобразовать это в значения RGB (в двойном [1.0, 1.0, 1.0]
или int [255 255 255]
) под текущую цветовую схему matlab (т.е. нормальную, горячую, hsv и т. д.)?
2 ответа
Решение
Вы можете попробовать это:
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.colors(n) возвращает массив из n значений цвета, охватывающих диапазон цветовой функции, в данном случае - jet. Теперь все, что вы делаете, это масштабируете / отображаете ваши данные в этот диапазон 1:n. Это хороший способ получить / настроить цветные карты. Я делал это все время.