2次元配列の要素の数値を色と対応させているのが、カラーランプ(
color ramp)で、日本語だと色傾斜になるのかな? Transformではレインボウとかマラケシュとかモーニンググローリーとかそれらしいイメージのカラーランプがたくさん用意してあってどれがかっこいいか選ぶのが楽しかった。LabVIEWでは数値と色の組み合わせをカラー配列で指定するとそのあいだを補完してくれて、好みのカラーランプを作ることが出来る。この方法は直感的で分かりやすい。LVの開発者に拍手。パチパチパチ
もう一つの要素として属性節点から読み書き可能なColor Tableがある。これらの要素の動作を制御するため"カラー配列を無視"と、"色の補間"のオプションスイッチが用意されている。要素が3個でスイッチが2個ある複雑なシステムなので図を用意してみた。よけい分かりにくくなったかもしれないが、マニュアルには詳しく書いていないので、オレが調べて分かった範囲で書いてみたものだ。
外部からColor Tableに書き込まないとき、色の補完オプションONではカラー配列から補間してColor
Tableを作り256色のカラーランプを作成する。色の補完オプションOFFではカラー配列を直接参照して指定したカラー配列の色数で表示する。
外部からColor Tableに書き込むときには自動的に"カラー配列を無視"がONになり、カラー配列は使用されなくなる。色の補完オプションOFFも設定できるが、残念ながら動作の説明ができるほど理解できていない。
Color TableはIntensity Graphの属性節点作成をえらんでダイヤグラムに属性節点を表示し、項目選択でColor
Table を選択する。
カラー配列に黄色、緑、青を指定してできたColor Tableを表示すると下のような画面になる。このカラーランプは落花生の黄色、丹沢の緑、青空の青からなり、Hadanoという名前をつけてみた。これはどうでもいいが、Color
Tableの中の数値は意味が分かりにくい。
"形式と精度"のオプションで16進を選ぶと、RGB各2バイトの数値をまとめてU32の数値にしたものであることが分かりやすいね。
ちょっと長くなってきたが、もう少しColor Tableについて確認しておかなければならない。
B*sin(A*r)/(A*r) + C
と言う関数を輝度グラフに表示してみよう。
デフォルトで表示したのが下の図で、周辺部の変化が分かりにくい。見やすくするのは簡単で、カラーランプのMax値を100.0から75.0に変えればよいな。これは、誰しもよくやる操作だ。
その結果が下の図で変化がよく分かる。
z-maxを75.0にしたものだから当然それ以上の値の領域はつぶれてしまっているはずだ。つぶれたところを分かりやすくするために、75.0以上の色を赤に変えてみよう。
だらだら分かり切ったことを書くんでない!と思われる諸兄が多いことと思うが、酔っぱらいきっているわけではないから安心してほしい。輝度グラフの表示はデータとカラーテーブルとz-max,z-minに依存するから、表示されている状態をそのまま256カラーの画像として保存するためには、当然それらの情報が必要になる、ということを言いたかったのだ。それからColor
Tableの0番目と255番目は、z-maxとz-minからはずれたデータ用に取っておかないといけない。
これで次回の説明の土台ができたかな? じゃー 良いお年を!
Let's enjoy vi programing!
Happy New Yearは256カラーで!
Nigel Yamaguchi