QuickBuildで簡単な四則演算をする方法

QuickBuildを使っていると、とあるツールの出力する数値を加工したい場合がよくあります。
複数の値の平均をとったり、単純に係数をかけたり。
はたまたQuickBuild内で使う定数、変数を定義したいこともあります。

電卓ツールや変数ツールがあればいいのですが、ないものは作ってしまいましょう。
なに、難しいことはありません。
ToolBlockを使うと簡単に解決できます。

やり方は簡単

ここでは、PatMaxのScoreに、100(定数)をかけて、0.0〜1.0のスコアを0.0〜100.0の100点満点のスコアに変換する例で説明します。

ToolBlockのInput/Outputに変数を定義

ToolBlockのInputに加工したい数値、定義したい定数を作ります

この図では、Inputのパラメタとして、2つのdouble型を定義しています。
ひとつはPatMaxのScoreを受け取る用途の「OriginalScore」です。
もうひとつは100倍するための定数Multiplierです。
Outputには計算結果を出力するdouble型変数 Scoreを用意します。

ToolBlockのSimple Script(VB.NET)で計算!

まず、Simple Script(ここではVB.NET)を選びます。Advanced Scriptは以前からあるToolGroupのScriptと同じ書式でスクリプトを書くのがちょっと面倒です。その点Simple Scriptは簡単に書くことができます。

では、実際にSimple Scriptで計算式を書いて見ます。

まぁ、今回の例では掛け算ひとつなので1行だけです。
簡単ですね。Simple ScriptなのでInput/Outputに定義した変数に簡単にアクセスできます。インテリセンスも働くので、とりあえず「Me」から打っていけばうろ覚えでも大丈夫です。
計算式を書き終わったら、「コンパイル」ボタンを押してコンパイルします。何か書き間違えがあればここでエラーが出て教えてくれます。
QuickBuildのスクリプトであまり難しいものを作るのは面倒ですが、この程度のことならば積極的に活用した方が便利だと思います。

実行!

PatMaxのScoreをToolBlockのOriginalScoreターミナルにつないだら実行してみましょう。

入力は0.843175

出力は84.3175

完成です!

(動画)QuickBuildで簡単な四則演算をする方法

まとめ

ToolBlockは中に画像処理のツールを入れる器としてではなくて、こういった簡単な処理をする「スクリプトの器」としても便利に使えます。