Настройка цветовой карты для Matlab

Я не уверен, как подойти к этой проблеме. Я пытаюсь найти хорошие ресурсы о том, как настроить цветовую карту (без использования редактора цветовой карты), чтобы установить ваши цвета и ваши границы для изображения в Matlab. Мне удалось сделать это с помощью редактора цветовой карты, но я хочу выяснить, как это сделать вручную.

Я пытаюсь сделать цветовую карту в диапазоне от 0 до 127. Границы будут такими:

от 0 до 64 — от черного (0) до белого (64)

От 65 до 127 от синего (65) до красного (127)

Может ли кто-нибудь дать мне несколько советов о том, как вручную внести эти изменения в цветовую карту? Хороший ресурс тоже не помешал бы.

Спасибо.


person gtdevel    schedule 17.10.2012    source источник


Ответы (1)


Я предлагаю использовать linspace. Это поможет вам создать равномерное распределение чисел в некотором диапазоне.

 blackToWhite = repmat(linspace(0,1,66),3,1)' ; 
 l1 = linspace(0,1,127-65+1);
 blueToRed = [flipud(l1(:)) zeros(size(l1(:))) l1(:) ];

 cmap = [blackToWhite; blueToRed];

Идея состоит в том, чтобы интерполировать [1 0 0] до [0 0 1]; Каждый из цветовых каналов, красный, зеленый и синий, интерполируется сам по себе.

     Red -> 1 ... 0
     Green -> 0 ... 0
     Blue ->  0 ... 1

Поэтому я сгенерировал l1 и для красного, и для синего канала, но перевернул его в одном из них.

person Andrey Rubshtein    schedule 17.10.2012
comment
Как использование linspace определяет границы цвета? - person gtdevel; 17.10.2012
comment
Это имеет смысл. Спасибо за объяснение. - person gtdevel; 18.10.2012
comment
@gtdevel, вы можете проголосовать за ответ, если он был вам полезен. Спасибо - person Andrey Rubshtein; 18.10.2012