今回は、最近公開されたPixInsightのスクリプト、”PixelmathUI”の導入方法と簡単な使い方をメモしておきます。
PixelMathUIは、Cosmic Photonsというサイトを運営されているMike Cranfieldさんが開発され、無料で公開されています。超ありがとうございます。
Cosmic Photons – Astrophotography
PixelMathは色々な使い方ができて便利な反面、用いた式やパラメータの調整を行う場合に、何度もUNDO/REDOを繰り返す必要があって、結果の確認がやりにくい欠点がありました。
PixelMathUIを使うと、作成したPixelMathの数式を簡単にGUI化でき、スライドバーなどをマウスでグリグリ動かしながら、結果をリアルタイムプレビューで確認できるようになります。使い方は分かれば簡単なのですが、なにも見ないで直感で理解するのはすこし難しいようでした。そこで、導入方法に加えて簡単なチュートリアルをまとめましたので、よければご参考にして使ってみて下さい。
"PixelMathUI"の導入方法
PixInsightの画面から、
Resources > updates > manage repository
とたどって次のリポジトリURLを入力します
https://www.cosmicphotons.com/pi-scripts/pixelmathui/
そのあと、同じく
Resources > updates > Check for update
を実行します。処理が終了したら、Pixinsightを再起動するとインストールが完了しています。PixelMath UIは
Script>cosmicPhotons>PixelMathUI
から実行できます。
使用方法(チュートリアル)
簡単な例として、次の二つの画像をブレンドする機能を、PixelMathUIで作ってみます。
元になるサンプル画像(左)には”M66_pi”、これにブレンドする画像(右)に "M66_pi_stretched" という名前をつけました。強いストレッチを行った右の画像を、左の画像に一定割合でブレンドして調整をするという状況です。
まずはPixelMathを起動して、そのための式をExpressionsとSymbolsタブに書いておきます。今回の場合はブレンドする画像に"blend"、調整パラメータを"rate"と名前をつけておいて、次のようにしました:
ここで$Tマークはターゲット画像といって、PixelMathを実行する対象の画像を表しています(今回の場合は"M66_pi"です)。
Symbolsタブには、パラメータにつかう変数rateを書いておきます
入力が済んだら、三角マークをウインドウの外側にドラッグ&ドロップしてインスタンスを作っておきます(自動的にprocess01の名前が振られます)。
そうしたら、PixelMathUIを起動します。まずは、左側メニューの
”Parameters - Target view($T)"
に、サンプル画像”M66_pi”を指定しておきます。すると次のように”Preview”に画像が表示されます*1。
次に左側メニューの"PixelMath"タブから、先ほど作成したインスタンス(ここでは"Process01")を指定して、”import selected PixelMath”をクリックします。
出力を常にRGB画像に限定したい場合は"Create RGB output"にチェックを入れておきます。なにもしないと元のPixelMathの設定がそのまま反映されるようです。このとき、場合によってはProcess Consoleになにやらエラーがでますが、これはすぐに解消されるので無視して大丈夫です。
次に、左側メニューの"Parameters - Views"の緑色の+マークをクリックして、”Image edit”ウインドウをを開きます。
ここでは、ブレンドするイメージの指定に関する設定をします。"Text"には"blenede image"と名をつけました(任意)。"Symbols"に先ほどPixelMathで入力した blend を記入しておきます(ここがちょっとしたポイントですね)。zOrderは、UIでウインドウ指定タブを表示する位置を表す座標のようですが、これはひとまずデフォルトのままにしておきましょう。OKをクリックすると、"Parameters-View"のメニューはこんなふうに更新されます
ここからブレンドするファイルを指定できるようになるわけです。あらかじめ”M66_pi_stretched”を指定しておきます。
最後に左側メニュー"Parameters - Symbols"の緑の+マークをクリックすると、次の”Control selector”が開きます
ここでは一番左の”Slider”を選ぶことにします。するとParameter edit"ウインドウが開きます
ここでは、PixelMathで作った変数 rate の設定をします。そのために”Symbol”からrateを選び、スライダーで決定する rate の上限値と下限値、数値指定の精度、初期値などを指定します。Textにはblend rateと名前をつけました。OKをクリックすると、”Parametrs - Symbols”にスライダーが表示されます。
良い感じですね。以上でUIは完成です。最終的な画面は次のようになります
この状態でスライドバーをうごかすと結果がプレビューにリアルタイムで反映されます。なんとも素晴らしいことです。
結果の出力
結果を出力するには、左側メニューの”Output”タブにある緑色のチェックマークをクリックします。
このタブの一番上には、PixelMathであらかじめ設定してあった出力方法(Create new image/Replace target Image)が表示されています。”Override PixelMath output parameter”にチェックを入れると、もともとのPixelMathの設定に関わらず、ターゲット画像を置き換えるか、新しい画像を生成するかを選ぶことができます。
作成したUIは、画面下の「下向き三角」をクリックして保存しておくことができます。
「上向き三角」をクリックすると、以前に作成したUIを読み込めます。ここには、Mike Cranfieldさんらが作成された便利そうなUIもお手本として用意されています。なんだか興味深い機能がたくさんあるので、そのうち試してみたいところです。
おわりに
このスクリプトは、痒いところに手が届いたといいますか、こういうのあったらいいよねーって機能が実現したなあと思っております。
上のチュートリアルは、あくまでHelloWorld的な内容で、もっと複雑な使い方(マスクを指定したり、if文で分岐したり)ができるはずです。そのうち何かイケてるPixelMathの手続きを思いついたら、それをこのスクリプトでGUI化して、ファイルに保存しておいてみんなでシェアする。そんな使い方ができるととても良さそうです。