モノクロカメラのLRGB合成にチャレンジされる方が多くなってきました。私は天体写真を始めて最初の数ヶ月は一眼カメラで撮影していましたが、CMOSのモノクロ冷却カメラを買って以降は、モノクロカメラでの撮影によるLRGB合成ばっかりです(でも最近ようやくカラーカメラを買いました!カラーの解説もこれから増やしていこうと思います)。
やってみるとわかるのですが、LRGB合成は実行して結果がでるまでうまくいっているかわからず、いつも処理中はドキドキします。「うまくいきますように!」とお祈りをしながら結果を待ち、失敗していると「あちゃ〜」と言いつつやり直しです。今回は、これまでのたくさんの失敗を通じて、私が気をつけている点について解説します。
(お約束1) ストレッチ済みの画像で合成する
色を表現するには、おなじみのRGB色空間以外にもさまざまな方法があります。LRGB合成は、色空間の一つであるL*a*b*色空間(もしくはL*c*h*色空間)を使用しています。L*a*b*色空間については、ここでわかりやすく解説されていました。
LRGBCombinationでは、RGB画像をL*a*b*色空間に変換し、LチャネルをLフィルターで撮影したL画像に置き換えます。一般にRGBの各フィルターで撮影した画像よりLフィルターの画像の方が淡い部分まで写っているなど品質が高いため、RGBフィルターは色情報だけを利用して、Lフィルターの明度情報を使って高精細な画像を作ります。
そのとき、RGBおよびL画像はそれぞれストレッチしてある必要があります。というのもL*a*b*色空間はノンリニアな空間であるためです。リニアな状態でLRGB合成をすると、輝星にノイズがでるなどところどころで画像が破綻してしまいます。リニアフェーズのDeconvolution, Color Calibrationなどを済ませ、ストレッチをしてからLRGB合成をしてください。
(お約束2) ヒストグラムの形を揃える
LRGBの合成をするときに、RGB画像とL画像のヒストグラムの幅とピーク位置をなるだけ揃えた方が失敗が少なく思います。ここで失敗といっているのは主に色についてです。LRGB合成後に色の処理に苦労しないために、ヒストグラムを揃えています。ヒストグラムが近くない場合、例えばRGBでシグナルが弱いのに、L画像で強くなるなどして色が極端に薄くなったりします。またRGBとLとでノイズの質が変わるため、と聞いたこともあります。
私はストレッチは基本的にSTFやHistogram Transformationを使うので、両者のヒストグラムの形がほぼ一致しています。
それほど厳密に一致させる必要はなく、「だいたいあっているな」というレベルで良いと思います。少なくとも、ヒストグラムのピークの位置は一致させた方が失敗が少なくなります。
しかし、たとえばRGB画像のストレッチは彩度を高めるためArchsinh Stretch、L画像のストレッチは淡いところをだすためにMasked Stretchというように分けている方もいらっしゃるかと思います。そのときも最後はHistogram Transformationを活用してなるだけ形を揃えた方が失敗が少ないと思います。
またLinear Fitを使って、L画像をRGB画像のLにあわせる運用をされる方もいらっしゃいます。これも有用な手段です。私は、目で見てヒストグラムが一致していれば大丈夫であった経験と、ヒストグラムをなんだか勝手に変えられたくないという、合理的というよりも感覚的な理由から、Linear Fitを使用せず、目で見て調整しています。
(お約束3) RGBは彩度高めに、輝度は暗めに
LRGB合成中はドキドキする、と書きました。これは本当にそうで、雰囲気が大きく変わります。とくに色の濃さが全く変わり、多くの場合、色が薄くなります。色が薄くなるのは、RGB画像に比べてL画像の方がシグナルが強いので、L*a*b*色空間の中で、明るい方にシフトするからと理解しています。先ほど紹介したL*a*b*色空間の解説したページの、立体図のなかで上の方に移動して明るく、色が薄くなるイメージです。私はこれを「パステル化現象」と勝手に呼んでいます。
そのためLRGBの段階では、カラーバランスは調整されている必要はあるものの、色味自体は意味がそれほどなく、私は気持ち彩度を高めにしています。また全体の輝度は低く目の方が、LRGB合成後の処理がしやすいように感じます。
(お約束4) ピンクになるときはRGBWorkingSpaceを活用
この記事の公開時にはお約束を3つ書いていましたが、1週間たって新たなお約束が生まれました。私を長年悩ませていた「LRGB合成時にピンクになってしまう問題」にRGBWorkingSpace用いた解決策が見つかりました。ぜひあわせてご覧ください。
LRGB合成の方法
最後にLRGB合成の方法について解説します。ストレッチ済みのRGB画像とL画像を用意します。ヒストグラムの形は、彩度、輝度もお約束に従って調整しておきます。
ProcessメニューのColor SpacesからRGBWorking Spaceを起動します。
Red, Green, Blueにそれぞれ1を入力します。これはL画像をRGBから作るときの比率を1:1:1にするためのものです。またLRGB合成後に赤がピンクになるなどの問題は、このパラメータを調整することで改善できます。こちらもご覧ください。
ProcessメニューのColor SpacesからLRGBCombinationを起動します。
LにL画像の情報をいれます。右端のボタンを押しても良いですし、タブをドロップするという謎な操作でも入力できます。
R, G, Bはチェックをオフにします。この状態で▲ボタンをRGB画像にドロップして実行します。
私はパラメーターはデフォルトのままで使っています。Channel Weightsを調整するとL画像のブレンド比率を変更することができます。星沼会でも「RGBのL画像を捨てて、置き換えるのはもったいない」という議論はこれまでに何度もしてきました。そのためRGBから抽出したL画像と、LフィルターのL画像を50%ずつブレンドして使うことがあります。こうすることで「SN比が高まる」という結果も出ているとのこと。これはChannel WeighsのLを0.5にすると同じことができます。しかし、私は逆に「L画像を50%しか使わないのはもったいない」ような気がして、いつも1.0にしています。
またSamさんのブログ記事では、RGBの露光がすくなくRGBにノイズが多い場合に、Lの比率を高めると良いという記載があります。LとRGBの品質に差がある場合はWeightsは効果的のとのことです。これまで気がつきませんでした。確かに効きそうです。この場合は、Lの比率をRGBに比べて高くするためにR, G, Bのチェックをオフにするのではなく、すべてチェックして、同時に合成する実行する必要があります。
Transfrer Functionsも調整が難しく、ほとんど使ったことがありません。ちなみにChannel WeightsもTransfer Functionsをデフォルトのまま使う場合は、Channel CombinationのL*a*b*モードでLを置き換えるのと結果は同じになります。
LRGB合成をより勉強したいかたは、PixInsightフォーラムのこちらのスレッドをぜひ読んでみて下さい。10数年まえの書き込みですが、とても有名なスレッドです。今回の記事のベースとなっており、私もなんども読み直しています。「どうしてもリニアで合成したいときはLRGBではなくYRGBを使う」とか「Linear FitでLとRGBを合わせると良いよ」とか、フォーラムのスレッドとは思えない情報が満載です。
LRGB合成は、まだまだ未開拓です。たとえばHα-RGB合成なども深掘りしたい領域です。また調査が進んだら報告します!
なぜ、LRGBにストレッチが必要か? – Twitterの議論から
この記事を書いてから、LRGB合成にはなぜストレッチが必要かについて、熱く議論しました。お付き合いいただいた、Samさん、botchさん、だいこもんさん、ありがとうございます。議論の内容をまとめておきます。
- LRGB合成に使用されるL*a*b*色空間(もしくはその発展系のL*c*h色空間)は人間の目に自然になるように、中間の階調を明るくする変換がされている。結果としてRGBがリニアだとしても、そこから抽出されたLはストレッチされたノンリニアになる
- そのためリニアなRGB画像とリニアなL画像をLRGB合成すると、「ノンリニアなLをリニアなLで置き換える」ことになる。リニアなRGBから抽出されるLはノンリニアであるため。
- ノンリニアなLはストレッチされているので、リニアのLと輝度差が発生する。輝度差が発生すると、エラーが発生することが多い。ノンリニアなLは中間調が持ち上がっているので輝度差があり、明るめの星の色が破綻することがある事実と符合する。
- またLRGB合成によりLを入れ替えする処理により、L*a*b*色空間のaやbにも影響を与えるので、LRGB合成は不可逆的変化と言える。実際、値が1の真っ白なLを使ってLRGB合成すると、RGB画像から色がほとんど抜け、もとのLに戻しても画像は復活せずモノクロに近い画像になる。
- リニアなLRGB合成するスクリプトも存在する。このスクリプトではHSI変換をしてIとLの入れ替えをしている模様で、今後検証したい。
Twitterの投稿はこちら。議論の詳細はコメント欄をご覧ください。
アッチッチの議論です!
SamさんがTwitterの議論を記事にまとめてくれました。
ネットの楽しさが全部出たような今回のTwitterのディスカッション。実に楽しい。私の中では、このSamさんの記事は、もはやみんなでいった春の旅行の思い出日記です!まだまだ謎は残ります。次回は梅雨のとき!?