グレーで印刷すると線形に見えるカラーバーをMatlabに実装しようとしています。私が最も簡単なアプローチは、gnuplot pm3d 30,31,32 RGB 色空間を実装することです。このWeb サイトで、いくつかの簡単な gnuplot スキームで問題なく機能する優れた紹介を見つけました。ただし、30,31,32 スキームを実装しようとすると、問題が発生します。
gnuplot の手順は次のとおりです。
30: x/0.32-0.78125 31: 2*x-0.84 32: 4x;1;-2x+1.84;x/0.08-11.5
これを解釈して、青のチャネルには 4 つの異なる式を適用する必要があると考えました。強度値の各四半期に 1 つ。これは私がこれまでに試したことです
x = linspace(0,1,128);
r = x/0.32-0.78125;
g = 2*x-0.84;
b(1:length(x)/4) = 4*x(1:length(x)/4);
b(length(x)/4:length(x)/2) = 1;
b(length(x)/2:length(x)*.75) = -2*x(length(x)/2:length(x)*.75)+1.84;
b(length(x)*.75:end) = x(length(x)*.75:end)/0.08-11.5;
pm3d303132=[r;g;b]';
しかし、残念ながらうまくいきません。Matlab が解釈できない負の値と 1 を超える値になってしまいます。
show palette rgbformulae
私はそれをヘルプで読みました
* negative numbers mean inverted=negative colour component
しかし、これを Matlab で実装する方法がわかりません。また、1を超える値を処理する方法もわかりません。誰か助けてもらえますか?