ものぐさ天体画像処理 (2018/01)  by eibow

1.はじめに

当方の普段使いPCはLinuxOSです。なので、Windows用の天体画像処理ソフトは使えません。
そこでLinuxOSで動くソフトで天体画像処理をする方法を試行錯誤しました。
自分用メモです。

以前ネットを検索していて、天文学者のkamenoseijiさんが「天体写真コンポジットスクリプト」
[imageSynth.R]を公開されているのは知っていました。

このスクリプトは統計解析言語「R」で書かれています。統計解析言語「R」はLinuxで動作します。
ただ、この言語はOSにデフォルトで入っていませんので、インストールから始めなければなりません。

魅力的なスクリプトですが、統計解析言語「R」の敷居が高くて当分の間ほっておきました。
でも、やっぱり画像処理は楽をしたくて試してみました。なにせ「ものぐさ天体写真」ですから。
統計解析言語「R」のインストールについては別の記事で書きます。

[imageSynth.R]は下記GitHubで公開されています。

https://github.com/kamenoseiji/imageSynth

使い方は、「はてなブログ」の記事に書いてあります。

http://d.hatena.ne.jp/kamenoseiji/20140609/1402309169

このスクリプトはRのライブラリを使うため画像はpng、tiff、jpegのいずれかでないとだめです。

今回、富士フィルムのミラーレス一眼で撮影したRAF形式のRAW画像をコンポジットするので
RAW画像を前処理してpng、tiff、jpegのいずれかに変換しておく必要があります。

まずはLinuxでRAF形式のRAW画像が処理できるソフトを探しました。2つありました。
UFRawRawTherapeeです。どちらのソフトもLinuxでもWindowsでも動作するようです。

また、どちらもダークフレーム処理ができますが、RawTherapeeはさらに画像の一括変換も可能です。
なので、より楽ができるRawTherapeeを使うことにしました。


2.前処理

RawTherapeeは「ソフトウェアの管理」からインストールします。楽ちんですね。
起動すると以下の画面が表示されます。普通、ソフトにあるメニューはありません。ちょっと戸惑いますね。

Fig.1:起動画面



まず「ファイルブラウザ」画面よりフォルダを選択して画像をモニターします。
例では「Picture」フォルダの中の「02_X-M1/20170103/m42」フォルダを選択しています。

Fig.2:ファイルブラウザ画面



次にraw現像タブをクリックします。(普通に撮影する人はここは使わないようです。ネットでも説明はほぼ省略されてます。)
ここでダークフレーム画像、フラットフィールド画像を指定して現像します。必要ならデッドピクセルも・・・。
処理する画像毎に前処理、ダークフレーム、フラットフィールドを設定する作業を繰り返します。

Fig.3:raw現像画面



ダークフレーム画像は望遠鏡に蓋をして撮影したもの。
フラットフィールド画像は望遠鏡にレジ袋をかぶせて撮影したものです。
撮影条件は星の写真と合わせてます。

Fig.4:ダーク・フラット指定画面



画像の現像指定が終わったら、処理する画像をすべてキューに登録します。

Fig.5:キュー登録1 Fig.6:キュー登録2



キュータブをクリックして「キュー設定」画面に移行します。
処理画像の出力ディレクトリを設定します。この例ではテンプレートを使うで「.../m42/converted/」に出力します。
出力画像のファイル形式も指定します。ここではpng形式を選択しています。

Fig.7:キュー設定画面1 Fig.8:キュー設定画面2



設定が終わったら「処理開始」をクリックします。

Fig.9:キュー設定画面3



処理が完了したらファイルブラウザ画面の各画像に「保存マーク」が表示されます。
処理画像については「.../m42/converted/」フォルダに出力されています。

Fig.10:ファイルブラウザ画面



これで、RawTherapeeでの作業は完了です。ここでRawTherapeeは終了しておきます。


3.コンポジット

[imageSynth.R]によるコンポジットは作業ディレクトリWorkで行います。
前もってWorkディレクトリを作成しておき、そこに[imageSynth.R]をコピーしておきます。
ファイルマネージャーで「.../m42/converted/」に出力されたpngファイルを、Workディレクトリに移動させます。

次にターミナルエミュレータを起動します。以下ターミナルエミュレータでの作業です。
処理する画像は12枚ありますが、[imageSynth.R]はワイルドカードが使えますので、画像の指定は *.pngで行っています。
楽ですね。
実際のコマンドは、[Rscript imageSynth.R *.png]です。

 $ cd Work
 $ ls

 DSCF0124.png DSCF0129.png DSCF0134.png imageSynth.R
 DSCF0125.png DSCF0130.png DSCF0135.png
 DSCF0126.png DSCF0131.png DSCF0127.png
 DSCF0132.png DSCF0128.png DSCF0133.png

 $ Rscript imageSynth.R *.png
 Stack 12 frames and save as DSCF0124.png_synth.png.
 RGB[2/12] DSCF0125.png: Shift (0, 1) pixels in (X, Y).
 RGB[3/12] DSCF0126.png: Shift (0, 2) pixels in (X, Y).
 RGB[4/12] DSCF0127.png: Shift (0, 0) pixels in (X, Y).
 RGB[5/12] DSCF0128.png: Shift (0, -1) pixels in (X, Y).
 RGB[6/12] DSCF0129.png: Shift (0, 0) pixels in (X, Y).
 RGB[7/12] DSCF0130.png: Shift (0, 0) pixels in (X, Y).
 RGB[8/12] DSCF0131.png: Shift (0, 0) pixels in (X, Y).
 RGB[9/12] DSCF0132.png: Shift (0, 0) pixels in (X, Y).
 RGB[10/12] DSCF0133.png: Shift (0, 0) pixels in (X, Y).
 RGB[11/12] DSCF0134.png: Shift (0, 0) pixels in (X, Y).
 RGB[12/12] DSCF0135.png: Shift (0, 0) pixels in (X, Y).


作業中のターミナルエミュレータ画面です。

Fig.10:ターミナルエミュレータ画面



処理結果は、最初のファイル名+synth.pngで出力されています。
上記の例ですと、[DSCF0124.png_synth.png]となります。

Fig.10:imageSynth.R処理画像



4.後処理

コンポジット処理だけだと、まだ見栄えが悪いので、これをRawTherapeeで適当に補正します。

Fig.10:RawTherapeeで補正した画像


慣れればここまで10分から15分位ですかね。
以上、「ものぐさ天体画像処理」でした。