PixInsightで画像処理を始めよう ~ 第10回 嗚呼、星はいい(5) ストレッチ
10-1. ストレッチの注意点
10-2. ArcsinhStretch
(1) ArcsinhStretch の使い方
(2) さらに明るく
10-3. PixelMath で合成
10-4. ここまでのまとめと動画の紹介
10-1. ストレッチの注意点
前回で色合わせまで終わりました。その画像を改めて見てみましょう。
忘れている人もいるかもしれませんが、前回、前々回の解説で見てきた画像は、STF で見かけ上明るくしたものであって、実はこんなに暗い画像だったのです。右側にこの画像のヒストグラムを HT で示していますが、ほぼ左端にべたっと寄っていて、10倍に引き延ばさないと山の形がよくわからないくらいです。今回は、これをストレッチして明るくします。
ちなみに、この段階では画像はまだリニアですので、リニア画像に対してやるべき処理は今のうちにやっておいてください。例えば、第4回で紹介した Deconvolution も本来はリニア画像に対してやるべき処理の一つです。焦点距離の長い光学系で撮影した画像は Deconvolution をしておいた方が良いことが多いと思いますが、その場合にはここでやっておきましょう。ただ、今回の画像は 40mmのレンズで撮ったものなので、Deconvolution はせず、このままストレッチをすることとします。
さて、ストレッチする(明るくする)と言っても、その方法は様々です。皆さんは暗い画像をどのようにして明るくしていますか?一般的な画像処理方法としてよく解説されるのが、ヒストグラムの下に表示されているハイライトマークを左側に寄せる方法(ハイライトクリッピング)です。
図10-2. ハイライトクリッピング
しかし、これには大きな問題があります。この HistogramTransformation (HT) で変換した次の画像を見てください。
ご覧の通り、ギラギラになります。中央下端の領域はほぼ真っ白になってしまっていますね。中でも一番深刻なのは星です。次の画像を見てください。
ある程度以上明るい星は、R も G も B もすべて 1 に飽和してしまっています。図10-2 の設定からわかる通り、元画像で 0.043 より明るかったピクセルは 1 になって飽和してしまっているのです。天体写真で一番明るく写るのは星ですから、ハイライトクリッピングをすると、それが真っ先に飽和します。そして星が大きく写ってしまうようになります。
さらに、明るい領域が飽和してしまうほどに強くストレッチしているというのに、暗い領域は大して明るくなっておらず、依然として暗いままです。逆に言うと、コントラストは高いということになりますが、やはり飽和しているピクセルがある上に、暗い領域があまり明るくならないというマイナス面が大きいですね。
飽和するということは、色の情報がなくなるということです。星にもひとつひとつ色があります。せっかくあった色の情報が失われるような操作は避けなければなりません。また、もともと暗いピクセルをシャドウクリッピングしてもほとんど目立ちませんが、もともと明るいピクセルをハイライトクリッピングすると、非常に目立ちます。したがって、第3.5回でも述べた通り、天体写真の画像処理においては原則的にハイライトクリッピングはしません。
一方、ハイライトではなく、ミッドトーンのマークを左側に寄せて明るくする方法もあります。
図10-5. ミッドトーンを左に
これで変換すると次のようになります。
ハイライトクリッピングで明るくした画像と比較すると、平均的な明るさは実はどちらも大して変わらないのですが、随分と印象が違いますね。図10-5 の変換曲線を見るとわかる通り、この変換では、元々明るさが 1 だったピクセル以外は、変換後も明るさが 1 になることはありません。実際、図10-6 には飽和していそうなところは見当たりませんね。星はどうでしょうか。
図10-4 と同じ星ですが、今度は飽和していません。さらに、暗い領域はやや明るくなって淡い星雲が若干浮かび上がっていることがわかります。つまり、飽和しているピクセルが無い上に、暗い領域が比較的明るくなるわけです。こうしたことから、ストレッチと言えばミッドトーンを動かして明るさを変えるストレッチが普通です。
しかし、図10-5 の変換は非線形変換です。これまで何度も言っている通り、非線形なストレッチをすると、色が薄くなります。暗い領域をそれなりに明るくする上に、色を薄くしない。そうしたストレッチの方法はないものでしょうか。
10-2. ArcsinhStretch
PixInsight にはストレッチ用のプロセスが多数用意されていますが、ここでは ArcsinhStretch を紹介しましょう。
図10-8. ArcsinhStretch
ArcsinhStretch に関しては、以前紹介した Image Processing Tips でも取り上げています。
図10-9. PixInsightでの画像処理(その21)- ArcsinhStretch
(上図をクリックするとページを開きます。)
詳細は Tips の方をご覧いただくとして、ArcsinhStretch も基本的には非線形変換なのですが、R と G と B の比率を変えないようにストレッチします。ということは、色相と彩度が変わらないということです。つまり、色を変えずに明るくすることができる わけです。せっかく PCC で測光的な色合わせをしたのに、ストレッチで色が変わってしまったら台無しですから、その色を変えないように ArcsinhStretch でストレッチしましょう。
(1) ArcsinhStretch の使い方
ArcsinhStretch はパラメータの数が少ないことからもわかる通り、使い方は簡単です。別に決まった手順はないのですが、2つのパラメータのうち、まず Black point から入力しましょう。Black point とは、シャドウクリッピングをするポイントのことです。つまり、それ以下の明るさのピクセルは変換後に 0 になる、という値です。この大まかな値は、HT でヒストグラムを見て決めることができます。
図10-10. HT で Black point の大まかな値を決める
HT のシャドウマークを右に動かすと、 Shadows の値が変わりますが、これがそのときのクリッピングポイントです。そして、さらにその右側に、そのクリッピングポイントでクリップされる(変換後に 0 になる)ピクセルの数とパーセンテージが表示されます。これを見ながら、クリップされるピクセル数があまり多くなり過ぎない範囲でクリッピングポイントを決め、その値を ArcsinhStretch の Black point に入力します。次に、ArcsinhStretch のリアルタイム・プレビューを開いて、それを見ながら Stretch factor のスライダーを右に動かします。
図10-11. Black point を入力し、Stretch factor を変更する
すると、画像が次のように明るくなります。
図10-12. ArcsinhStretch で少し明るくする
なお、このとき Black point も横のスライダーを動かすことで調整することができます。しかし、これを大きくするとシャドウクリップされるピクセル数が増えます。ハイライトクリッピングと同様、シャドウクリッピングもピクセルの情報を捨てることを意味するので、あまり良いことではありません。
そこで、リアルタイム・プレビューを開く際、"Highlight values clipped to zero" を有効にしておくと、クリップされるピクセルがプレビュー内で強調表示されるので、どの程度のピクセルがクリップされるのか視覚的に分かるようになります。
図10-13. クリップされるピクセルの強調表示(Black point を大きくし過ぎた場合)
このようにリアルタイム・プレビューを見ながら明るくしていきます。もちろん、一度でもっと明るくしても良いのですが、コントラストを上げるために、その都度 Black point の値を変えながら複数回にわたって少しずつ明るくするのがコツです。
今回は2回実行し、最終的に次のような画像が得られました。
図10-6 と比較すると、随分と鮮やかですよね。従来のストレッチに慣れていると、「ArcsinhStretch でストレッチすると色が鮮やかになる」と誤解しがちですが、そうではありません。上で述べた通り、ArcsinhStretch は色を変えずに明るくしているのです。つまり、ストレッチ前の 図10-1 自体がこういう色だったということなのです。従来のストレッチが色を薄くしていただけのことなのです。
(2) さらに明るく
通常は 図10-14 くらいの明るさでストレッチ完了として良いのですが、右上の淡い星雲 Sh2-27 が淡すぎて少しはっきりしません。そこで、今回はもうひと工夫しましょう。
その前に 図10-14 の clone(クローン)画像を作ります。画像左側の画像名のタグを PI の背景部分にドラッグ・アンド・ドロップすると、クローン画像が作られます。
図10-15. clone(クローン)
これをもっと明るくするとどうなるでしょうか。
右上の Sh2-27 も少し浮き出てきました。しかし、これでは明るい領域がちょっと明るくなり過ぎていますよね。そこで、図10-14 と 図10-16 の「いいとこ取り」をして合成しましょう。
10-3. PixelMath で合成
まず、通常の明るさの 図10-14 をアクティブにして、メニューバーから IMAGE > Extract > Green Channel を選択します。
図10-17. G画像を抽出
すると、図10-14 の G 画像が出力されます。
STF と HT を使って、明るい領域をさらに明るくし、暗い領域はほとんど見えないくらいに調整します。そして、メニューバーの PROCESS の中から invert を選択して明暗を逆にします。
これをマスクとして 図10-14(通常の明るさの画像)に適用します。マスクの適用は、下図のように、マスク画像名のタグを適用先の画像の左側の枠(タグ以外の場所)にドラッグ・アンド・ドロップして行います。
図10-20. マスクを適用
ところで、画像にマスクを適用して処理を行うと、「マスクの白いところだけ処理が行われる」と説明されることが多いですね。もちろんそれで間違ってはいないのですが、より正確に表現すると、マスクは「元画像と処理後の画像のブレンド比の分布」です。マスクを適用した画像に処理を行うと、元画像と処理後の画像をマスクの明るさに応じてブレンドすることになります。白い部分ほど処理後の画像の割合を多くしてブレンドします。したがって、マスクに明るさ 1 の真っ白な領域と明るさ 0 の真っ黒な領域しかなければ、「マスクの白いところだけ処理が行われる」のと同じことになるわけですね。このように、マスクとは「元画像と処理後の画像のブレンド比の分布」と理解した方が、画像処理におけるマスクの意味を理解しやすくなります。
さて、マスクを適用したら、次に PixelMath (PM) を起動します。
図10-21. PixelMath (PM)
PM は、自由度の高さが「売り」の PI の中でも最も自由度の高いプロセスで、自由に数式や論理式を書いてその通りに実行させることができます。ただ、何の補助機能もなく式を書けと言っても大変なので、Expression Editor という補助ツールが付いていて、PI が今読み込んでいる画像名や、PMで使用できる論理記号等をリストから選択して入力することができるようになっています。
その Expression Editor を使って、"RGB/K" と "Symbols" に次のように書きます。
RGB/K: k*$T + ~k* [明るい画像名]
Symbols: k=0.2
"OK" ボタンを押せば、PM に反映できます。
図10-23. PixelMath に式と定数値を入力
"$T" は、処理対象の画像(元画像)を意味する変数で、PM ではこう書くことになっています。これからこれを通常の明るさの画像(図10-14)に対して実行するので、$T は 図10-14 を意味することになります。
"k" は単なる定数で、"~k" は k の invert つまり、"1-k" を意味します。したがって、RGB/K の欄に書いた式は、通常の明るさの画像と過度に明るくした画像とをブレンドするという意味で、k を小さくするほど明るい画像に近づくことになります。
先ほど、マスクもブレンドを意味すると言いました。そして、ここでもブレンドします。言ってみれば二重にブレンドするわけですが、マスクだけでブレンドすると、その比率を変えるのにマスクごと変えなければならなくなって面倒です。ですから、処理自体を「ブレンド」にして、そのブレンド比は自由に変えられるようにしたのです。こうすれば、k の値を変えて再実行するだけで、得られる画像を調整することができます。
図10-23 の PM を 図10-14 の画像に対して実行(いつものように左下の三角マークをドラッグ・アンド・ドロップ)すると、次のようになります。
明るい領域も、暗く淡い星雲も、ともに適度な明るさで表示されるようになりました。
ちなみに、今節の最初で G画像をマスクの元としました。通常、マスクを作るときには、L画像を元とすることが多いのですが、今回 G画像を元としたのには少々わけがあります。図10-14 や 図10-16 には、右上に赤い星雲(Sh2-27)が淡く写っていましたね。この星雲は、L画像や R画像、さらには B画像にも写っていました。ところが、G画像にはほとんど写っていないのです。赤い星雲がほとんど写っていないということは、invert すればそこはほぼ真っ白になります。それをマスクにすれば、赤い星雲を効率的に浮かび上がらせるような合成ができます。このように、マスクの元とする画像を目的に応じて変えるというのも、細かいですがコツの一つではないでしょうか。
10-4. ここまでのまとめと動画の紹介
今回の内容でストレッチまで終わりました。ストレッチではハイライトクリッピングは原則としてすべきではないということ、そして、PI には、色を変えずに明るさを増幅させる ArcsinhStretch というプロセスがあるということを紹介しました。ArcsinhStretch は色を変えないので、普通のストレッチより色を鮮やかに保ったまま明るくすることができます。ここでもう一度その効果を見てみましょう。
一つは ArcsinhStretch でストレッチしたもの、もう一つは STF のオートストレッチ(とHT)を使ってストレッチしたものです。オートストレッチはいわば「普通の」ストレッチです。両者の全体的な明るさはほとんど変わりませんが、色合いの違いは一目瞭然ですね。逆に言うと、普通のストレッチはこれだけ色を落としてしまっていたというわけです。皆さんも、ストレッチで色を薄くしてしまっていませんか?
デジタル画像において、おそらく「現像」の明確な定義は存在せず、どんな形であれ、画像化すればそれを現像と言うのでしょうが、第6回で述べたように、とくに、debayer(カラー画像化)、色合わせ(色調補正)、明るさ調整の3つは大抵含まれますよね。いわゆる「RAW現像」ができるプログラムでRAW現像した場合も、プログラム内部でこの3つの処理は必ず行われます。この3つをやらないと、人間が普通に写真だと思える画像にはならないからです。その意味で言うと、debayer は前処理(第7回)の段階でやり、色合わせは第9回でやりました。そして今回ストレッチをしたということで、ここまでがとりあえず「現像」に相当すると言ってもそれほど間違ってはいないと思います。天体写真の出来は、前処理を含めてこの「現像」までの比較的早い段階の処理でその9割以上は決まってしまいます。
第7回の DBE、第8回の PCC 、そして今回の ArcsinhStretch は、いずれもなかなか他のプログラムにはできない処理でしょう。中でもとくに、PCC や ArcsinhStretch なんかは属人的なテクニックや「慣れ」を必要とする要素がありません。他のプログラムだと、ここまでの段階でトーンカーブをよく使うと思いますが、あれこそ天体写真の画像処理を難しくしている元凶だと思います。トーンカーブを使った処理は属人的なテクニックや慣れが多分に必要ですし、もう一回やってくれと言われても「もう二度とできませんっ!」てなことがありますよね。画像処理で非常に重要な早い段階での処理に、誰がいつ何度やってもほぼ同じ結果が得られるようなユニークで強力なツールが使える、というところが PI の大きな魅力となっています。
なお、この入門とは素材の画像が違いますが、第7回から今回までの「DBE での光害除去」、「PCC での色合わせ」、「ArcsinhStretch でのストレッチ」の操作を簡単に紹介した動画があります。文字を読むより動画を視聴する方が理解しやすいかと思いますので、こちらも是非ご覧ください。
● 『天体写真を PixInsight で画像処理 Post processing 前編』
-
「PixInsight ではこんなことができる」 といったような紹介を目的とした動画です。今回の入門よりもざっくりとした内容ですが、だいたい同じようなことを言っています。20分弱ですので、気楽にご覧ください。
<つづく>
« PixInsightで画像処理を始めよう ~ 第9.5回 【補足】 天体写真の色 | トップページ | PixInsightで画像処理を始めよう ~ 第11回 嗚呼、星はいい(6) 星ハロ除去 »
「PixInsight」カテゴリの記事
- PixInsightで画像処理を始めよう ~ 最終回 嗚呼、星はいい(8) 主なレタッチ処理2(2018.09.14)
- PixInsightで画像処理を始めよう ~ 第12回 嗚呼、星はいい(7) 主なレタッチ処理1(2018.09.02)
- PixInsightで画像処理を始めよう ~ 第11回 嗚呼、星はいい(6) 星ハロ除去(2018.08.21)
- PixInsightで画像処理を始めよう ~ 第9.5回 【補足】 天体写真の色(2018.07.25)
- PixInsightで画像処理を始めよう ~ 第10回 嗚呼、星はいい(5) ストレッチ(2018.08.11)
「画像処理」カテゴリの記事
- PixInsightで画像処理を始めよう ~ 最終回 嗚呼、星はいい(8) 主なレタッチ処理2(2018.09.14)
- PixInsightで画像処理を始めよう ~ 第12回 嗚呼、星はいい(7) 主なレタッチ処理1(2018.09.02)
- PixInsightで画像処理を始めよう ~ 第11回 嗚呼、星はいい(6) 星ハロ除去(2018.08.21)
- PixInsightで画像処理を始めよう ~ 第9.5回 【補足】 天体写真の色(2018.07.25)
- PixInsightで画像処理を始めよう ~ 第10回 嗚呼、星はいい(5) ストレッチ(2018.08.11)