« PixInsightで画像処理を始めよう ~ 第11回 嗚呼、星はいい(6) 星ハロ除去 | トップページ | PixInsightで画像処理を始めよう ~ 最終回 嗚呼、星はいい(8) 主なレタッチ処理2 »

2018年9月 2日 (日)

PixInsightで画像処理を始めよう ~ 第12回 嗚呼、星はいい(7) 主なレタッチ処理1

【目次】

12-1. 星像を小さくする(スターリダクション)
 (1) MorphologicalTransformation (MT) 再び
 (2) 周辺部の星だけを小さくする
 (3) UnsharpMask でシャープに
12-2. コントラスト強調
12-3. 暗黒帯を強調する


通常、天体写真の画像処理は、第10回のストレッチまででほぼ出来上がりです。今回の素材画像の場合は星ハロが目立ったので、前回(第11回)それを除去しましたが、星ハロが気にならない画像であれば不要な処理です。そして今回は、天体写真の画像処理でよく使われる仕上げの加工処理について、代表的なものを幾つか紹介していこうと思います。

以前も述べましたが、これから紹介する処理はすべての天体写真に必須の処理ではありませんし、決まった順番があるわけでもありません。画像に応じて、必要な処理だけを選んでやってください。また、やり方や考え方がわかれば、所謂レタッチソフトでも実現することはある程度可能だろうと思います。レタッチソフトでの処理に慣れている方は、この連載で考え方だけを吸収し、使い慣れたソフトで同じことをやってみる、というスタンスでも良いと思います。

12-1. 星像を小さくする(スターリダクション)

前回は盛大に出ていた星ハロを除去しました。その画像をもう一度見てみましょう。

12_01_afterrmhalo
図12-1. 星ハロ除去後の画像

これはこれで十分な気もしますが、これでもやや星が目立ちすぎてやかましいと感じる人もいるかもしれませんね。そういう場合には、星像を少し小さくしましょう。星像を小さくすると小さな星は消えて星の数が減るので、スターリダクションとも呼ばれます。

(1) MorphologicalTransformation (MT) 再び

星像を小さくすると言えば、星ハロ除去でも使った MT ですね。多くのレタッチソフトで「明るさの最小値」「明るさの最大値」として知られているフィルターに相当する処理を行うことができます。

ですが、処理の前に、まずはこの時点でのスターマスクを作りましょう。基本的な作り方は 11-3節(1) の通りです。大きく写った輝星がある場合には、MLT の Layers の値を変えることで微光星と輝星に分けてスターマスクを作り、それらを PixelMath で合成した方が良いケースが多いと思います。合成には max() 関数を次のように使って、いわゆる「比較明合成」をすると良いでしょう。

 max([微光星のスターマスク], [輝星のスターマスク])

今回は 図12-1 の画像のスターマスクとして以下のマスク画像を作りました。

12_02_starmask1
図12-2. スターマスク

これを 図12-1 にかけて、MT を Erosion で実行します。

12_03_mt
図12-3. MT

このとき、MT の Size というパラメータを大きくすると、一気に星を小さくしたり、微光星を消したりすることができるようになります。星が小さくなると、あるいは星の数が少なくなると、相対的に星雲が目立つようになるので、星の数をドカンと減らしてほとんど星が目立たないくらいにし、星雲を思いっきり目立たせるように仕上げる、というのも表現方法の一つだと思います。

しかし、「せっかく写っているものをあまり消したくはない」とか、「星が写ってこそ天体写真だ」といった考え方もあるかと思います。私もどちらかというとそう考えるタイプでして、せっかく写っているものを消すのはもったいないということで、Size を最小の 3 にし、Amount も 0.5~0.6 くらいに小さくすることが多いです。Amount をさらに小さくしてもう一度実行することもあります。どの程度が正解ということはないので、お好みで調整してください。今回は、中央やや左に写っている散開星団(M23)が分離した状態を保持している段階で止めることとしました。

12_04_sr
図12-4. MTでスターリダクション(全体)

12_05_srx2
図12-5. MTでスターリダクション(中央を2:1拡大)

目次へ戻る この節のトップへ戻る

(2) 周辺部の星だけを小さくする

光学系の中には、中央部はシャープでも周辺部は星が少しぼやけて写ってしまうものも多いでしょう。周辺部まで全面シャープな光学系はなかなか無いものです。今回の画像も、中央部に比べて周辺部の星は若干ぼやけて大きく写ってしまっていますので、周辺部の星だけを小さくするという処理も加えたいと思います。

ここでもやはりマスクを使うのですが、要するに、図12-2 のスターマスクのうち周辺部だけを抽出したものを作れば良いわけです。そこで、PixelMath に以下のような式を書いてみましょう。

RGB/K: r=rdist(cen_x, cen_y);
iif(r<R, (r/R)^3, 1)
Symbols: r, cen_x=2700, cen_y=1550, R=2700

12_06_pixelmath
図12-6. PixelMath(円形グラデーション)

要するに、点(cen_x, cen_y) を中心とした半径 R の円形グラデーションを描こうというわけです。円の外側の明るさは 1 です。画像を見て、この辺が光軸中心だろうと思われるだいたいの点の座標を (cen_x, cen_y) に入力し、半径 R も画像に応じて適宜変えてください。これを対象画像に対して実行すると、次のような画像ができます。

12_07_circle_grad
図12-7. 円形グラデーション

指定した中心点が真っ暗で、そこから離れるにつれて徐々に明るくなるグラデーションができました。ちなみに、このグラデーションは、中心からある程度のところまではほとんど明るくならず、ある程度離れるとそこから急激に明るくなる、という工夫をしています。レンズや望遠鏡も、光軸の中心からある程度の距離までは収差が少なくて、ある程度の距離が離れるとそこから急激に収差が大きくなるのが一般的でしょう。グラデーションもなるべくそれに合わせるのが理想的です。あとは、このマスクとスターマスクとを掛け合わせれば、周辺部だけのスターマスクができます。

12_08_starmask_corner
図12-8. 周辺部のみのスターマスク

これを 図12-4 に適用して、再度 MT を実行します。

12_09_sr_corner
図12-9. 周辺部のみスターリダクション(前後比較)

目次へ戻る この節のトップへ戻る

(3) UnsharpMask でシャープに

MT でスターリダクションを行うと、星像のシャープさが失われることが多くあります。このまま星を消すのならそれでも構いませんが、星を残すのであれば、星像にはある程度のシャープさが欲しいところです。そこで、もう一度 図12-2 のスターマスクを適用して UnsharpMask を実行することにします。

12_10_unsharpmask
図12-10. UnsharpMask

UnsharpMask も大抵のレタッチソフトで使えると思いますが、これを実行すると、画像に写っている被写体のエッジ(輪郭)が鋭くなります。エッジが鋭くなると、画像がシャープになったように見える効果があるので、天体写真に限らず色んな画像処理でよく使われると思います。

星像をシャープにするために UnsharpMask を使うときのコツとして、「あまりシャープにしすぎない」ということが挙げられると思います。あまりシャープにしすぎると、星像としては逆に不自然に見えてしまうからです。なので、MT で星像を小さくした後、UnsharpMask を適用しない人も多いと思います。この辺は人それぞれの好みの問題でしょう。

PI の UnsharpMask の場合、StdDev を大きくすると、被写体のエッジをよりなだらかにシャープにする(表現として矛盾していますけど(笑))ことができるようになります。また、私は Amount もデフォルトの 0.8 より小さくして、あまりシャープになりすぎないように調整することが多いです。

MT と UnsharpMask を上手に使ってスターリダクションを行うと、自然なシャープさを保ったまま星像を小さくすることができます。

12_11_apply_mtusm
図12-11. MT と UnsharpMask でスターリダクション(中央を2:1拡大)

目次へ戻る この節のトップへ戻る

12-2. コントラスト強調

天体写真は、明るい部分がベタっと明るくなってしまったり、逆に暗い部分もあまり明暗の差がなかったりして、部分的にコントラストが悪い場合が多いと思います。

12_12_after_sr
図12-12. 部分的にやや低コントラスト

ここまで様々な処理を施してきたこの画像も、とくに天の川がベタっと明るくなってしまって、ややコントラストが悪い印象があります。(そんなことないと言えばそんなことないのですが、これも人それぞれの好みの問題かもしれません。)

そんなときにはコントラスト強調を行います。よく使われるのは、月面写真編の第5回でも登場した LocalHistogramEqualization (LHE) でしょう。

12_13_lhe
図12-13. LocalHistogramEqualization (LHE)

LHE は所謂「ローカルコントラスト」を向上させるための処理で、これを適用すると、淡い星雲のエッジや明るい領域内の細かい模様が強調される効果があります。第5.5回でも紹介した通り Image Processing Tips でも取り上げていますので、詳しく知りたい方はそちらをご覧ください。

星野写真の場合には、LHEを使うときにもマスクを作った方が良いでしょう。今回は RangeSelection でマスクを作ることにします。

12_14_rangeselection
図12-14. RangeSelection

Lower limit は、簡単に言うと、それより暗いピクセルを 0(真っ黒)にするという意味で、Upper limit は、その明るさのピクセルを 1(真っ白)にし、それより明るいピクセルを真っ黒にするという意味のパラメータです。つまり、Lower limit から Upper limit までの範囲(Range)の明るさのピクセルだけを抽出し、グラデーションを付けてマスクを作るということになります。左下の白丸ボタンを押してリアルタイムプレビューを表示させ、それを見ながらパラメータを調整すると良いでしょう。

今回は、比較的明るい部分だけのマスクを作ります。図12-14 の RangeSelection を対象画像(図12-12)に対して実行すると、図12-15 のようなマスクができます。

12_15_lhe_mask
図12-15. LHE用のマスク

これを 図12-12 に適用して、LHE を実行します。LHE の使い方は、第5回の 5-2節(2) に書いてありますので、そちらを参照してください。リアルタイムプレビューを見ながらパラメータを調整します。

12_16_apply_lhe
図12-16. LHE実行

比較的明るい領域の陰影が強調されましたね。LHE では、Kernel Radius のパラメータが非常に重要で、これを変えると印象が全く違った画像になります。

12_17_lhe_kr
図12-17. Kernel Radius を変えると・・・

これは LHE の効果がわかりやすいように Amount をやや大きくしたものですが、Kernel Radius を小さくすると小さなスケールの構造(模様)が強調され、大きくすると大きなスケールの構造が強調されます。とくに目立たせたい模様が最もはっきりと強調されるような値をリアルタイムプレビューで探してください。

また、暗い部分のコントラストを上げたければ、暗い部分だけのマスクを作り、それを適用して LHE を実行してください。このとき、暗い領域にはそれほど細かな模様はないことが多いので、Kernel Radius は明るい領域よりも大きくすることが多いと思います。

目次へ戻る この節のトップへ戻る

12-3. 暗黒帯を強調する

コントラストを上げる代表的なツールとして LHE を紹介しましたが、ここでもう一つ、別のアプローチによって全体的なコントラストを上げるツールを紹介しましょう。そのアプローチを端的に言うと「暗いところをより暗くする」というアプローチです。

12_18_after_lhe
図12-18. 元画像

この画像を見ると、天の川の真ん中を走る暗黒帯周辺がぼやっと明るい印象を受けますね。そこで、この暗黒帯の明るさを落として、その周辺領域の明るさにメリハリをつけたいところです。ところが、左上から対角線上に走る暗黒帯よりも、実は右上の赤い輝線星雲 Sh2-27 の方がむしろ暗いのです。したがって、単純に輝度情報だけを基に RangeSelection によって「明るいところ」と「暗いところ」を区別しようとすると、図12-19 のように暗黒帯とともに Sh2-27 周辺も黒くなります。

12_19_range_mask
図12-19. 輝度だけを基に作ったマスク

これをマスクにして暗黒帯をより暗くしようとすると、次の図12-20 のように Sh2-27 周辺まで漏れなく暗くなってしまいます。

12_20_darkreduc
図12-20. 図12-19をマスクにして輝度を落とすと・・・

せっかく浮かび上がっていた淡い星雲が暗くなってしまっては、ちょっと残念ですよね。もちろん、レタッチソフトなら、塗り絵用のツールを使って、狙ったところだけを処理するようなマスクを意図的に作ることもできるでしょうが、写真はあくまで写真であって塗り絵ではないので、なるべくそういったことはやらない方向で何か良い手だてはないものでしょうか。

そんなときに使えるのが、DarkStructureEnhance (DSE) というスクリプトです。メニューバーから "SCRIPT" > "Utility" > "DarkStructureEnhance" と辿って起動してください。

12_21_dse
図12-21. DarkStructureEnhance (DSE)

これは、ある大きさのスケールで見たときに顕著に現れる明暗の差を捉えて、それを基に暗い領域をより暗くするツールです。ただ、そう言われてもすぐにはピンとこないでしょうから、まずは第4.5回でも説明した ExtractWaveletLayers (EWL) スクリプトを用いて図12-18 をレイヤー分解してみましょう。

12_22_ewl
図12-22. ExtractWaveletLayers (EWL)

すると、次のような構造が見えてきます。

12_23_layers
図12-23. レイヤー分解した画像

これらを見ると、Layer07 あたりで、天の川の中心を流れる暗黒帯が比較的明確に見えていますよね。一方、右上に写っているはずの輝線星雲 Sh2-27 は、これにはあまりはっきりとは見えていません。DSE はこれを利用して、特定の大きさのレイヤーではっきり見える暗黒帯を暗くしてくれます。

ExtractWaveletLayers での Layer07 は、その他のツールでは Layer 8 に相当するので、DSE の "Layers to remove" を 8 にし、Amount を適宜変えて "OK" ボタンを押すと、以下のようになります。

12_24_after_dse
図12-24. DSEで暗黒帯を暗く強調

暗黒帯だけが暗くなって、メリハリの利いた画像になりましたね。一方、Sh2-27 周辺の明るさはとくに変わっていません。このように、DSE を使うと、単に暗い領域というわけではなく、明るい領域の中にある暗い領域を効率的に暗くすることができます。

なお、DSE で Iteration の回数を増やすと、暗黒帯がどんどん暗くなっていきます。必要に応じて Layers to remove を変えて複数回実行すると良いかもしれません。

こういうツールはレタッチソフトにはなかなか無いかもしれませんね。このように、SCRIPT の中には意外と便利で「使える」ツールが沢山隠れていますので、PROCESS だけでなく、SCRIPT の方もいろいろと試して遊んでみると面白いでしょう。

目次へ戻る この節のトップへ戻る

つづく

« PixInsightで画像処理を始めよう ~ 第11回 嗚呼、星はいい(6) 星ハロ除去 | トップページ | PixInsightで画像処理を始めよう ~ 最終回 嗚呼、星はいい(8) 主なレタッチ処理2 »