ものぐさ天体画像処理 (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つありました。
UFRawとRawTherapeeです。どちらのソフトも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分位ですかね。
以上、「ものぐさ天体画像処理」でした。