Kameno external storage

由無し事をたまに綴るブログです。

天体写真コンポジットスクリプトを作成

複数枚の画像を重ね合わせて平均化し、画像のS/N(信号雑音比)を向上させるコンポジット処理を行なうRスクリプトを「imageSynth.R」作成しました。GitHubで公開していますので誰でもコードを見たりダウンロードして利用できます。
https://github.com/kamenoseiji/imageSynth

2015年1月23日追記: 彗星の追尾機能を加えました。詳細は d:id:kamenoseiji:20150123 をご覧下さい。

効果と機能


さそり座の球状星団M4付近を180mm望遠レンズで撮影した画像(の一部を拡大)したものです。極軸がずれていたために星像が南北方向に流れているのはご愛嬌。1フレームの画像(左側)に比べて、8フレームを平均化した結果(右側)はバックグラウンドのノイズが低減されていることが分かります。また、星の偽色もほぼ消えて自然な色で表現されています。
このように、同一視野を撮影した複数枚の画像をコンポジットすることで、像のS/Nを向上させ、淡い天体像を浮かび上がらせることができます。長時間露光した1枚に比べると、1枚当たりの露光時間が短いので星の追尾誤差の影響が小さい(あまり流れない)ことと、読み出しノイズを低減させられる点もメリットです。

複数フレームの平均をとる際には、追尾誤差などのために画像ごとにずれた星像の位置を合わせる操作が必要です。imageSynth.Rでは、X方向とY方向の画像プロファイルの相互相関をとって位置ずれを計測し、補正してから平均化します。

コンポジット機能を持つ天体画像処理ソフトとしてはステラナビゲーターが定番になっていますが、Windowsでしか動作しないし、高価です。imageSynth.Rは、統計解析言語「R」を使って処理を行ないますので、Rが動作するLinux, Mac, Windowsのどこでも使えるはずです。なお、RはGNUが配布するフリーソフトです。

インストール

  1. Rをインストールしておきます。また、以下のパッケージもインストールしておきます。
    1. tiff
    2. jpeg
    3. png
  2. GitHubから imageSynth.R をダウンロードし、適当な作業用ディレクトリに保存します。

使い方

  1. 作業用ディレクトリにコンポジット元の複数ファイルを置きます。imageSynth.Rとコンポジット元のファイルは、同一ディレクトリに存在する必要があります。
  2. コマンドラインにて Rscript imageSynth.R file1 file2 … と打ちます。ここでfile1, file2, …はコンポジット元のファイル名です。ワイルドカードも使えます。
    1. 例: Rscript imageSynth.R DSCF2234.png DSCF2235.png
    2. 例: Rscript imageSynth.R *.tif
  3. file1._synth.png という名前のファイルでコンポジット後の画像が保存されます。出力はPNGフォーマットです。

実行例

Rscript imageSynth.R *.png
[2] DSCF2226.png: -9 pixel shift in X,  -22 pixel shift in Y
[3] DSCF2227.png: -8 pixel shift in X,  -40 pixel shift in Y
[4] DSCF2228.png: -10 pixel shift in X,  -57 pixel shift in Y
[5] DSCF2229.png: -9 pixel shift in X,  -71 pixel shift in Y
[6] DSCF2230.png: -12 pixel shift in X,  -87 pixel shift in Y
[7] DSCF2231.png: -11 pixel shift in X,  -101 pixel shift in Y
[8] DSCF2232.png: -11 pixel shift in X,  -115 pixel shift in Y

制限

  1. コンポジット元のピクセルサイズは全て同一でなくてはなりません。一つでもピクセルサイズが違う画像が混ざっているとエラーになります。
  2. 出力はPNGフォーマット固定ですが、imageSynth.Rの最後の行を編集すればTIFFJPEGで保存することもできます。
  3. MacOSX 10.9 (Maverics) では、Rのtiff, jpeg, pngライブラリが使えないようですので動作しません。Rの対応待ちです。

提供されているライブラリを組み合わせただけの創意工夫に乏しいプログラムですが、私には便利ですので、使いたい方はご自由にどうぞ。