ナローバンドで色鮮やかに 〜 PixInsightによるHαとカラー画像の合成

ナローバンドフィルターで撮影したHαデータ。はじめて見たときはその存在感に感動しました。もくもくしたハート星雲をずっと見ていられます。

ハート星雲のHα画像
ハート星雲のHα画像

こうなるとこのHαをカラー画像にブレンドしたくなります。そこでHαをLRGB画像に合成する方法を調べてみました。今回はスクリプトとPixelMathの方法を試しています。

(1) NBRGBCombinationスクリプトでRチャネルにブレンド
(2) PixelMathでRチャネルにブレンド
(3) PixelMathでLにブレンド

私はモノクロCMOSカメラを使いましたが、カラーカメラの場合でも、ChnnelExtractionを使うことでRGBに分離できるのでこれらの手法を適用することは可能です。

早速、結果をみてみましょう。まずHαをブレンドしないLRGB画像。

LRGB画像
LRGB画像

続いて、NBRGBCombinationを使ってRチャネルにHαをブレンドした画像。(1)の方法です。

NBRGBCombinationによりHαをブレンド
NBRGBCombinationによりHαをRチャネルにブレンド

最後にPixelMathを使って、HαをRとLの両方のブレンド。(2)と(3)の方法です。

PixelMathによるHαのRとLへのブレンド
PixelMathによるHαのRとLへのブレンド

これらの写真の撮影条件はこちらをご覧ください。他にも(1)と(3)を実行することもできます。(1)と(2)はRをブレンドした結果に大きな差はなかったので、実施しませんでした。大きな差がなかったのはスクリプトのログをみてみると(1)と(2)はほぼ同じ処理をしてたからでした。また画像によっては(3)のL画像へのブレンドだけを実行することも可能ですね。やはり(3)のLへのブレンドをすると、赤い領域がくっきりします。

実は私はまだ冷却CMOSカメラが出す画像に目が慣れておらず、その明るさにくらくらしています。とくに判断が難しいのが背景領域。背景にムラがある場合に、それが光害などによる被りなのか、Hαの分子雲、暗黒帯、星間赤化現象なのか判断が難しいところでした。今回はそのままムラも何かの物質だろうと残しました。もう少し落ち着いたら、処理も変わってくると思います。

それでは、それぞれの処理方法を解説しましょう。

(1) NBRGBCombinationスクリプトでRチャネルにブレンド

これはとても簡単な方法です。リニア画像にもノンリニア画像にも使うことができます。今回はLRGB画像に処理をかけたかったのでノンリニア画像で実行しました。しかしスクリプトログを見るとRチャネルだけに追加しているのでその目論見は外れたようです。リニア画像に使うときはPCCなどのカラーカリブレーションが終わってからが良いと考えます。R画像にHαの画像を混ぜ込むので色合わせが正しくできない可能性があります。あくまでも色合わせはRGBで行い、そのうえでHαを補助的にブレンドする考え方です。

用意するものはカラー画像とHα画像です。Hαはグレイスケールの画像を使用しました。今回は実施しませんでしたがOIIIデータもこのスクリプトで合成することができます。

RGB画像を選択した状態で、Script-Utilities-NBRGBCombinationを実行します。

NBRGBCombinationスクリプト

設定は次の通りです。

  • ノンリニア画像の場合、右上のAuto-STFをオフ
  • Non-linearをオンにするとリスケールという処理が走るが、試すと色が薄くなったのでオフ設定
  • RGB画像とHα画像を指定
  • RGBのBandwidthは100で問題ない(はず)
  • HαのBandwidthはフィルターの仕様にあわせる(今回のフィルターは5nmを使用)
  • ScaleはHαの合成する強度を指定

Applyを押して実行すると、プレビューに結果が表示されます。RGBボタンとNBRGBボタンを押すことで実行前と実行後の結果を見比べることができ便利です。

NBRGBCombination処理の後と前を切り替え
NBRGBCombination処理の後と前を切り替え

これをみるとScaleの1.2はちょっと強かったかもしれません。確認したらOKを押すと新しい画像が生成されます。

スクリプトのログを確認したところ次の処理をしていました。参考までに記載しておきます。

  1. LinearFitで明るさを調整
  2. PixelMathで星を消した画像を生成
  3. PixelMathでRチャネルに星を消した画像を合成
  4. LinearFitで明るさを調整
  5. RGB合成

つぎはPixcelMathを使ったパターンです。

(2) PixelMathでRチャネルにブレンド

PixelMathを使ってブレンドする方法はいくつかの数式が提案されていますが、Light Vortex Astronomyサイトに記載されている方法が広く使われています。(1)のNBRGBCombinationスクリプトの処理もログを確認したところ、同じ数式を採用していました。ではPxelMathを使う意味は?というと「(今回は変わりませんが)より柔軟な設定ができること」と「L画像でも同じ処理をするので同じ方法の方が操作が楽」ということでしょうか。

処理にはDBE/ABE、LinearFitを済ませたリニアなR画像、L画像、RGB画像を用意します。カラー画像の方はChannelExtractionでRを取り出してください。今回はリニア画像で試してみましたが、ストレッチ後のノンリニアな画像でも適用可能です。

Process-PixelMath-PixelMathを起動します。最初に星を消したHα画像を生成します。

星消し画像を作る
星消し画像を作る

星雲にはHαデータを追加したいですが、星の色を保つために星には追加したくありません。そこで星を減らしたデータを作ります。当初StarNetを使って星消しを試したのですが、リニアなR画像でうまくStarNetが使えませんでした。そのためLight Vortex Astronomyで紹介されていた式を採用します。

  1. RGB/KとSimbolに次の式を登録 (Hα画像の名称はHA, R画像の名称はRとしています)。R_bandwidthはいったん100のまま。HA_bandwidthはお使いのHαフィルターの仕様にあわせてください。(下記の式はWebの仕様で、-が全角表示されてしまっています。コピーペーストで使用する場合は、マイナスを半角に修正ください)
    • RGB/Kに入力: ((HA * R_bandwidth) – (R * HA_bandwidth)) / (R_bandwidth – HA_bandwidth)
    • Symbolsに入力: R_bandwidth=100, HA_bandwidth=5
  2. Create new imageを選択
  3. 新しく作られる画像の名前を入力
  4. Grayscaleを選択

最初の式はHαの信号にRのバンド幅を、Rの信号にHαのバンド幅をたすき掛けに計算することで、強さをあわせています。これによりあら不思議、星が消えます。しかしこのままでは星を消しきれないことが多く、その場合はR_bandwidthを100から40に減らすことをLight Vortex Astronomyでは推奨されています。私も40でかなりの星が消えました。このあたりはさすが!という感じですね。

PixelMathでHαの星消し

次にRのブレンドです。

HαとRGBをブレンド
  1. 起動しているPixexlMathの右下のボタンを押してリセット
  2. R, G, B, Symbolsに下記の式を入力。$Tとは選択されている画像の信号を差します
    • R/Kに入力: $T + ((CombImg – Med(CombImg)) * BoostFactor)
    • Gに入力: $T
    • Bに入力: $T
    • Symbolsに入力: BoostFactor=1.0
  3. あとはデフォルトのままでOK。
  4. 対象とするRGBイメージを選択した状態で、■を押して実行する

すると選択しているRGBイメージのRチャネルにHαが合成されます。

RGBにHαが合成される
RGBのRチャネルにHαを合成する

最初の式で、Hα(星なし)の信号から、Hα(星なし)の平均値を引いた値をまず作ります。これにより平均より明るいピクセルはプラス、暗いピクセルはマイナスになります。それをRGBに足し合わせることで、Hαが明るいところはプラスに、暗いところはマイナスに作用し、Hα画像をつかってよりコントラストを上げています。

Hαの合成強度はBoostFactorの数値で変更します。1.2にすると(1)のNBRGBCombinationスクリプトのデフォルト値と同じになります。やっぱり1くらいが良さそうです。

(3) PixelMathでL画像にブレンド

今回一番やりたかったのがコレです。鮮やかなHαをL画像にブレンドしたい!
やりかたは(2)と同じです。PixelMathを使って以下を実行します。

  1. 星なしHα画像生成
    • RGB/Kに入力: ((HA * L_bandwidth) – (L * HA_bandwidth)) / (L_bandwidth – HA_bandwidth)
    • Symbolsに入力: L_bandwidth=300, HA_bandwidth=5
  2. L画像にHαを合成
    • RGB/Kに入力: $T + ((CombImg – Med(CombImg)) * BoostFactor)
    • Symbolsに入力: BoostFactor=1.0

実行するとこんな感じです。

L画像にHαを合成する
L画像にHαを合成する

Lがよりクリアになっています。ちょっと癖になりそうです。このあとは生成したRGB, LをLRGBCombinationで合成していきます。

以上がHαのLRGB画像への合成でした。やりすぎると不自然になるので、パラメーターを変えながらなんども試してみる必要がありそうです。これは正しいことなのか?という疑問が一瞬わきましたが、Hαだって可視領域ギリギリのところにいるだけで、人工的に作ったデータではなく立派な自然光。仲間にいれてあげないと可哀想。お絵かきツールで塗っているわけではないので、堂々と活用すれば良いのかなって思います。(まだちょっとわかっていない)

LRGB合成の全プロセスについてはこちらをご参照ください。

タイトルとURLをコピーしました