Можно ли получить значения RGB цветовой карты?

Я новичок в картах цветов в MATLAB, но я знаю, что их диапазон значений варьируется от 0 до 1 в матрице 64x3. Если я перейду к документации MATLAB здесь, я имею в виду цветовые шкалы в самом низу. Можно ли получить диапазон значений цвета RGB, который они представляют (в матрице 64x3), вместо значений от 0 до 1? Если нет, то есть ли способ сделать цветовую палитру похожей на них?


person Genevieve    schedule 03.10.2016    source источник
comment
Для документации Matlab я имею в виду цветовые шкалы в самом низу.   -  person Genevieve    schedule 03.10.2016


Ответы (2)


Да, если вам нужна текущая карта цветов, просто вызовите colormap без входных аргументов.

current = colormap();

Однако, если вы хотите, вы можете получить значения RGB для любой из цветовых карт, используя функции, которые генерируют цветовые карты напрямую, а также дополнительный ввод, который указывает количество используемых цветов.

colors = gray();        % 64 grayscale values
colors = parula(100);   % 100 parula colors
colors = jet(10000);    % 10000 Jet colors
colors = hsv(10);       % 10 colors spanning the HSV colormap
person Suever    schedule 03.10.2016
comment
Я хочу выбрать конкретную цветовую карту - person Genevieve; 03.10.2016
comment
@Mia Посмотрите обновление, которое позволяет вам получать значения RGB для любой из этих цветовых шкал без необходимости сначала применять их к фигуре. - person Suever; 03.10.2016
comment
Я продолжаю получать значения от 0 до 1 - person Genevieve; 03.10.2016
comment
@Mia В MATLAB они double, поэтому они находятся между 0 и 1. Если вы ограничитесь целыми числами, вы не сможете создать все необходимые градации. Вы можете умножить на 255, если вам действительно нужны значения от 0 до 255. - person Suever; 03.10.2016
comment
@Mia, они сопоставлены с диапазоном [0 1], чтобы их можно было использовать как двойники. Вы имеете в виду значения uint8 или uint16. Вы можете масштабировать их, просто умножив их на соответствующее количество элементов (2^n) - person Adriaan; 03.10.2016
comment
Можно ли их преобразовать? - person Genevieve; 03.10.2016
comment
@Mia Как я уже сказал выше, умножьте на 255, если вы действительно хотите. - person Suever; 03.10.2016
comment
@Mia, не могли бы вы задать один конкретный вопрос и не задавать десятки дополнительных вопросов? - person Adriaan; 03.10.2016
comment
При этом совершенно допустимо для значений RGB быть представленными между 0 и 1. Также, как я уже упоминал, если вы не заставите их быть целыми числами, вы сможете более точно представить все промежуточные цвета. - person Suever; 03.10.2016

A=colormap('jet');
>> A
A =

         0         0    0.5625
         0         0    0.6250
         0         0    0.6875
         0         0    0.7500
         0         0    0.8125 % etc, size 64x3

Это значения RGB. Он открывает пустую фигуру, потому что colormap внутренне вызывает gcf, таким образом открывая фигуру.

person Adriaan    schedule 03.10.2016