事の起こり
神出鬼没の縮緬ノイズ。今回は自宅庭にて15028NHTとEOS6Dでの撮影テストをしていたらふいに発生しました。
おのれ、殲滅してこます!
これまで経験した縮緬の原因は、マスターフラットの固定ノイズや、ダーク減算のエラーによるものでした。それに対して今回の縮緬ノイズ、結論を先に申しますと原因はズバリ「クールピクセル」*1。よって、あぷらなーと氏考案の「クールファイル補正法」により消し去ることができました。
それで話は済んでしまいますけれど、顧問としては初めてのケースでしたので、詳しく記録しておきたい。よければ少々お付き合いください。
クールピクセルはダーク減算で消せない
縮緬ノイズの原因は、画像の特定のピクセルに生じる固定ノイズと、一定方向のガイドエラーです。
縮緬あるとき必ず固定ノイズありき!です。固定ノイズを消し去りさえすれば縮緬は必ず解決します。しかしながら今回の原因であるクールピクセルは、ダーク減算では消せないのです。言われてみればアタリマエの茶漬け程度のことなのに、これまで顧問はそのことを理解できていませんでした。
その理由を図解します:
上の図の(A)~(C)は、ライトフレーム、マスターダークフレーム、ダーク減算後のライトフレームの輝度を一次元的にあらわしています。(A)のライトフレームに、明るい点として現れるホットピクセルと、暗く凹んだ点として現れるクールピクセルがあるとしましょう。すると、マスターダークフレームの同じ位置にもホットピクセルは存在します。しかしクールピクセルは、もともと輝度が無いので表れません。ですので、ダーク減算を行ってもクールピクセルは補正できないわけです。たとえオフセット値が確保されていてもその事情は変わりません。
縮緬退治の手続き
それでは解決して参りましょう。とその前に、早速取り掛かりたい気持ちを抑えて、縮緬ノイズの原因の切り分け手続きについて、今回の顧問のケースを例に、ドキュメント形式考えます。
縮緬の原因の切り分け(ドキュメント)
元画像はEOS6DをISO100に設定して8分露光で取得した15枚ほどのデータ、その撮って出しのヒストグラムのピークは50%くらいでした。いつも通りにRAW画像をキャリブレーション。スタックしてみたら
おのれ縮緬ノイズ、殲滅してこます!(二度目)
原因を特定するためにまず試すべきは、フラット補正とダーク減算を省略して、撮ってだしのライトフレームをスタックする事です。
次は、そうして得られた画像です。
縮緬ノイズは残っています(一見滑らかになっているように見えるのは、フラット補正を行なっていないため、オートストレッチが強く働かないためです)。もしこれで縮緬が消えれば、原因はキャリブレーションのためのマスターフレームにあることになります。その場合は、マスターダークの取得にミス(温度や露光時間のズレ)があるとか、マスターフラットが十分に滑らかではないなどの原因が考えられます。
うえではそうではなかったので、縮緬の原因はライトフレームの固定ノイズであることがほぼ確定。
それならばダーク減算をしっかり行えば縮緬が消えるかもしれません。冷却CMOSならともかく、デジカメの場合はダーク減算を省略することはよくあり、顧問もそうしていたのです。そこで一晩かけてマスターダークを用意して、しっかりダーク減算をおこなってからスタックしてみました。その結果↓
お、だいぶん滑らかになりました。けれどもまだ薄く縮緬が残っています。
以上から、ダーク減算では原理的取り除ききれないライトフレームの固定ノイズが縮緬の原因であると考えるべきです。次に試すべきはクールピクセルの補正だろうと判断しました。
最後に、各ライトフレームにクールピクセル補正法を適用したあとにスタックした結果がコチラ
おお、ばっちり消えました。ありがとうあぷらなーとさん。
クールピクセル補正法はFlatAideProに実装されていて、その機能だけは無料版でも制限なしに使うことができるそうです。お試しください。
しかし顧問はPixinsightでそれを行いました。最後にその手続きを紹介します。
Pixinsightでクールファイル補正
全体のステップは
- キャリブレーションを行なったライトフレームを用意する
- 1.のライトフレームを位置合わせなしでスタック。その結果を複製して2枚にし、片方にCosmeticCorrectionを適用。両者の差を取った「クールファイル」を作成する。
- PixcelMathを使って、「クールファイル」を元のライトフレームに加算する
- 上で加算したライトフレームをスタックする
の3段階です。
1.キャリブレーション
ここでは、バイアス・ダーク・フラットを指定し、ダーク減算のOptimizeをオンにして、以下の設定で行いました
2.クールファイルの作成
ImageIntegrationを起動し、上のキャリブレーションで生成されたファイルを指定し、以下の設定でスタックを実行します
スタック後のファイル名は”stacked_noAlign.xisf”としました。
上の結果にCosmeticCorrectionを適用します。Add Filesで”stacked_noAlign.xisf”を指定したうえで、Use Auto detect の Cold Sigma にチェックを入れ、閾値を0.0として、実行(●をクリック)します。
つぎに、上の出力結果 ”stacked_noAlign_cc.xisf” から ”stacked_noAlign.xisf” を引き算して「クールファイル」を作成します。そのためにPixcelMathを起動します。
”Create new image”をチェックして、■ボタンをクリックして実行します。以下のような画像が出力されます
これに”coolFile.xisf”と名付けておきます。上の画像の白い部分が、クールピクセルです。もし検出されたピクセルがあまりに多すぎるようでしたら、CosmeticCorrectionのColdSigmaの閾値が小さすぎるかもしれません。その場合は調整が必要です
3.キャリブレーション後のライトフレームにcoolFile.xisfを一括加算
最後のステップです。上で生成した”coolFile.xisf”をキャリブレーション後のライトフレームのそれぞれに加算してあげれば「クールファイル補正」は終了です。それを行うにはImageContainer機能を使います。
赤矢印の”Add Files”をクリックして、キャリブレーション後のライトフレームを追加します。わかりやすさのため出力ファイルに_cf.xisfとしたいので”Output template”を赤線のように書き換えていますが、これはお好みです。
そうしたら、再びPixelMathを起動しcoolFile.xisfを開いた状態で数式欄に
$T+coolfile
と入力します。"Replace target image"を選択しておいて、ImageContainerの三角マークをPixelMath の下のバーの部分にドラッグ&ドロップします。
そうするとCoolFile.xisfがそれぞれ加算されたライトフレームが”*****_cf.xisf”といったファイル名で出力されているはずです。
あとはそれらのファイルをWBPPなどを使ってスタックしてください。以上で!
終わりに疑問点など
上手くいきました。ですが、なぜ今回の撮影データに限ってクールピクセル由来の縮緬が姿を現したのか、実は腑に落ちていません。
あぷらなーとさんが「クールファイル補正法」を発案したのは、かなり短時間露光で輝度の小さいデータに対してです。今回のデータはISO100ながら8分の露光を行い、撮ってだしのヒストグラムのピークも50%を超えていました。
さらに言えば、もともとEOS6Dは固定ノイズの少ない機種です。顧問はこれまで何度もこのカメラを使って撮影してきましたが、ダーク減算なしでも縮緬が発生したことはありませんでした。
余り根拠のない経験則として、縮緬ノイズはどうも光害の強い環境で撮影すると遭遇することが多いと感じています。今回も住宅街の自宅庭での撮影でした。うーん。
縮緬ノイズはめでたく退治できたものの、その神出鬼没の理由はいまだよくわかっていません。