天文はかせ幕下

仙台高専天文部の顧問が、日々の天文活動や天文情報を綴っています。

これは便利!"Pixel Math UI"の導入方法とチュートリアルをまとめました<PixInsight>

今回は、最近公開された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の実行

使用方法(チュートリアル

簡単な例として、次の二つの画像をブレンドする機能を、PixelMathUIで作ってみます。

サンプル画像

元になるサンプル画像(左)には”M66_pi”、これにブレンドする画像(右)に "M66_pi_stretched" という名前をつけました。強いストレッチを行った右の画像を、左の画像に一定割合でブレンドして調整をするという状況です。

まずはPixelMathを起動して、そのための式をExpressionsとSymbolsタブに書いておきます。今回の場合はブレンドする画像に"blend"、調整パラメータを"rate"と名前をつけておいて、次のようにしました:

"Expressions"に書いた数式

ここで$Tマークはターゲット画像といって、PixelMathを実行する対象の画像を表しています(今回の場合は"M66_pi"です)。

Symbolsタブには、パラメータにつかう変数rateを書いておきます

"symbols"タブ

入力が済んだら、三角マークをウインドウの外側にドラッグ&ドロップしてインスタンスを作っておきます(自動的にprocess01の名前が振られます)。

PixelMathのインスタンス

そうしたら、PixelMathUIを起動します。まずは、左側メニューの

”Parameters - Target view($T)"

に、サンプル画像”M66_pi”を指定しておきます。すると次のように”Preview”に画像が表示されます*1

PixelMathUIの画面

次に左側メニューの"PixelMath"タブから、先ほど作成したインスタンス(ここでは"Process01")を指定して、”import selected PixelMath”をクリックします。

インスタンスを指定してImport selected...をクリック

出力を常にRGB画像に限定したい場合は"Create RGB output"にチェックを入れておきます。なにもしないと元のPixelMathの設定がそのまま反映されるようです。このとき、場合によってはProcess Consoleになにやらエラーがでますが、これはすぐに解消されるので無視して大丈夫です。

次に、左側メニューの"Parameters - Views"の緑色の+マークをクリックして、”Image edit”ウインドウをを開きます。

"Image edit"ウインドウ

ここでは、ブレンドするイメージの指定に関する設定をします。"Text"には"blenede image"と名をつけました(任意)。"Symbols"に先ほどPixelMathで入力した blend を記入しておきます(ここがちょっとしたポイントですね)。zOrderは、UIでウインドウ指定タブを表示する位置を表す座標のようですが、これはひとまずデフォルトのままにしておきましょう。OKをクリックすると、"Parameters-View"のメニューはこんなふうに更新されます

Parameters viewにウインドウ指定タブが表示される

ここからブレンドするファイルを指定できるようになるわけです。あらかじめ”M66_pi_stretched”を指定しておきます。

最後に左側メニュー"Parameters - Symbols"の緑の+マークをクリックすると、次の”Control selector”が開きます

ControlSelector

ここでは一番左の”Slider”を選ぶことにします。するとParameter edit"ウインドウが開きます

"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化して、ファイルに保存しておいてみんなでシェアする。そんな使い方ができるととても良さそうです。

 

サムネ用画像です

 

*1:PreviewSTFの仮ストレッチをかけたり、拡大したりできますので色々試してみてください