PixInsightでスクリーン合成する方法

天体写真の画像処理にPhotoshopをお使いの方は、二つの画像を合成するとき「スクリーン」という描画モードを使われることがあると思います。スクリーン合成と呼ぶこの画像合成方法はPixInsightでも簡単に実行することができます。私もナローバンド画像の合成のときに多用しています。

今回、質問コーナーにStarXTerminatorなどで作成した「星消し画像」と「星画像」の合成方法についてご質問をいただきました。この二つの画像合成にもスクリーン合成は有効です。早速、解説したいと思います。

単純な加算とスクリーン合成

AとBという画像があるとします。この画像を合成したいとき、一番単純には足し合わせることで合成できます。

A + B

これは簡単で良いのですが、たとえばあるピクセルの値がAでは0.6、Bでは0.7であった場合、足し算をすると1.3となり1.0を超えてしまい飽和したピクセルができてしまいます。この場合、値は1になります。

では、掛け算したらどうかというと、

A x B

先ほどの例ですと0.6 x 0.7 = 0.42 となり飽和はしないものの、暗くなってしまいます。そこでスクリーン合成の登場です。スクリーン合成は、(1-A)のように明暗を反転してから掛け算をして、また反転して戻す、という処理をします。

1 – (1 – A) x (1 – B)

こうすると明るさは保ったまま、飽和もしなくなります。たとえば上のAが0.6、Bが0.7という例では、1 – (1 – 0.6) x (1 – 0.7)=0.88 となり、もとの0.6、0.7よりは明るくなりつつも1.0は超えていません。これが便利なのです。

PixInsightでのスクリーン合成の方法

スクリーン合成にかぎらず、PixInsightで画像を合成するには、PixelMathを使います。ProcessメニューのPixelMath – PixelMathを起動します。

合成したい画像の名前がA、Bのとき、起動した画面で1-(1-A)*(1-B)と書いてもよいのですが、もう少しシンプルな記述方法があります。

Combine(A, B, op_screen())

左下の▲マークをA画像にドロップすることでスクリーン合成ができます。

実際にやってみよう

私はナローバンドの合成の際にスクリーン合成を使うことが多いです。たとえば銀河の赤ポチと呼ばれるHII領域のブレンドを例にとります。

左の画像はHα画像からR画像を差し引くことでHII領域を抽出した画像です。左のリンクの記事の「(10) Jetの抽出処理」と同じ処理をしました。これを右の画像にブレンドします。

Rチャネル

今回はRチャネルに処理をかけます。G、Bチャネルはそのままにするため、それぞれ\$T[1], \$T[2]と記載します。

Gチャネル
Bチャネル

これを実行すると、HII領域と銀河の画像がスクリーン合成されます。

ナチュラルに合成することができました。このあと強調処理をして最終化しています。

星消し画像と星画像の合成

質問コーナーへの元々の質問はStarXTerminatorなどで作成した「星消し画像」と「星画像」の合成でした。この場合もスクリーン合成がおすすめです。

スクリーン合成の式で、Bに0を代入すると興味深い結果になります。

1 – (1 – A) x (1 – 0) = 1- (1 – A) = A

答えはAです。つまりBのピクセルの値が0の場合、合成後の画像はAのままです。

星消し画像(A)と星画像(B)をスクリーン合成すると、星画像の背景は0に近い値のため、星以外の部分は星消し画像のままとなることがわかります。これにより、星の飽和を避けつつ、星以外の部分は星消し画像のままを保つことができるわけです。

今回は、Photoshopなど写真の処理ソフトでよく使われるスクリーン合成をPixInsightで実行する方法を解説しました。単純な足し算だけではなく、スクリーン合成を使うことで飽和の心配なく合成することができます。私はナローバンドの合成に主に使用していますが、冒頭で記載したように「星消し画像」と「星画像」を別々に処理して再合成するときにも飽和を避けることでき、有効です。ぜひお試しください。

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