Используйте цветовую схему 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. Это хороший способ получить / настроить цветные карты. Я делал это все время.

Другие вопросы по тегам