天体画像処理のメモと、Sirilを使う際や、流れ、などのメモ
2025年6月現在、記述途中です。
天体画像を、本来の天体像へ戻す
撮影された天体画像から、
周辺減光、ボケや歪み、光害 、減光、変色 → これらを引くと本来の天体像になります。
処理の流れは、
撮影された天体画像 → 周辺減光を補正 → ボケや歪みを補正 → 光害補正 → 減光補正、変色補正 → 本来の天体像
- 周辺減光を補正:フラット補正で行う
- ボケや歪みを補正:ストレッチ直前、若しくは直後に行うのが良いかもしれない。
deconvolutionは、gaussianやmoffat関数でPSFを近似する。
実際は、収差、大気の揺らぎ、追尾誤差があるので、近似関数で補正すると、画像の一部が壊れかもしれません。- DynamicPSFを使って PSF を決定すると、「動的点像分布関数」が表示される。
その中に [RMSE] (root-mean-square error) が表示されている。
この RMSE (二乗平均平方根誤差)は、星像が、gaussianやmoffat関数にどれだけ、合っているかを示す値。小さいほど合っている。
この RMSE の値を、ストレッチ直前、若しくは直後にdeconvolutionを行い、比べるのが丁寧な処理になります。
- DynamicPSFを使って PSF を決定すると、「動的点像分布関数」が表示される。
- 光害補正:引き算で除去する (Subtraction)
- 減光補正、変色補正:SPCC
ここまでは、「自動イコライゼーション」で表示させて、それぞれの処理を行う。明るくさせる増強処理は行いません。
PSF:点光源が広がりを持った分布にボケる。その際の分布をPoint Spread Functionと呼ぶ。
ストレッチ (増強) : GHS (Generalized Hyperbolic Stretch)
ストレッチは、ヒストグラムの左右を引き伸ばすこと。→ 明るくする → 明るさ調整
「ストレッチする」とは、ヒストグラムを引き伸ばし、画像のコントラストを上げる処理を行うこと。
- 明るくする。コントラストを高め、明暗差を大きくする。人間の目の特性に合わせて明るくする。
- 基本変換式 → Generalized Hyperbolic transform
- 強調し明るくする部分を選ぶ → Symmetry Point (S字カーブの変曲点、傾きが一番大きい点を決める)
- 明暗差を大きくする → コントラストを高くする → 変換曲線の傾きを大きくする → Stretch factor を変化させる。
- 高輝度域のピクセルは、なるべく高めない。(HP)
Highlight protection point (HP)を決める。
その点から高輝度部分を直線にし変換曲線が下がり、輝度は下がり、暗くなる。 - 低輝度域のピクセルは、なるべく低めない。(LP)
Shadow protection point (LP)
その点から低輝度域部分を直線にし変換曲線が上がり、輝度は上がり、明るくなる。
GHSの実際
[symmetry point]を換え、複数回、変換を行うと、より良いコントラストを得られる場合があります。
Colour stretch model について
ここでは、ストレッチに適応する変換を選びます。
変換したピクセル値が1を超える場合の処理は、[Clip mode]で選びます。
sirilの Colour stretch model 説明
- Independent channel values : R,G,Bそれぞれ独立した変換
which applies the stretch independently to each channel of the pixel.
ピクセルのRGB各チャンネルに独立してストレッチを適用します。 - Human weighted luminance : 人の肉眼の感度に基づく
which stretches based on a luminance value weighting the R, G and B channels according to the relative sensitvity of the human eye.
Note: human-weighted luminance is not allowed if less than 3 colour channeles are selected as it doesn’t make sense.
人間の目の相対的な感度にしたがってR、G、Bチャンネルを重み付けした輝度値に基づいてストレッチを行う。カラーチャンネルが3つ以下の場合、これは意味をなさないので使用できません。 - Even weighted luminance (Evenly weighted luminance) : 均等に重み付けされた輝度
which calculates the stretch based on a luminance value weighting the R,G and B channels equally.
R,G,Bチャンネルを均等に重み付けした輝度値に基づいてストレッチを計算します。 - Saturation stretch
which applies the stretch to the S component in HSL space. In saturarion mode the saturation histogram curve is show in yellw.
HSL空間のS成分にストレッチを適用します。Saturarionモードでは、彩度ヒストグラム曲線は黄色で表示されます。
Color stretch model の実際
- Independent channel values
Stretche factor (ln(D+1)) を強めると星が白くなり、色が失われる事がある。
その場合ストレッチを終えたならば、次のどちらかを選ぶと色が戻る。- Human weighted luminance
- Even weighted luminance
Clip mode について
明るすぎて、白飛びや変色した恒星を貴方は、どの様に処理をさせますか?
ここでは、ストレッチ処理の際にあるピクセルが “1” を越えたならば、そのピクセルをどの様に処理をするかを、以下で選びます。
- Clip:問答無用で1に変換
変換したピクセル値が “1”を超える場合には、1に変換する。
→ 輝星やその周りの明るい色が変わる場合がある。 - Rescale:ピクセルごとに変換
変換したピクセル値が “1”を超える場合には、”1″を超えたピクセルのみ、割り算を行う。
→ 輝星などは、それだけ暗くなる。 - RGB blend:ピクセルごとに変換
変換したピクセル値が “1”を超える場合には、RGBモードで変換した値とブレンドする。
→ 輝星は、白っぽくなる。
(Pixinsightではブレンド比を調整可能です。Sirilに欲しい。Pythonモジュールにはあるのかな?) - Global rescale:画像全体を変換
変換したピクセル値が “1”を超える場合には、その最大値を調べて、全ピクセルの値をその最大値で割る。
→ 輝星などの色は保たれるが、画像全体に割り算が行われるので、画像全体が暗くなる場合がある。
Generalized Hyperbolic の式
双曲線に基づいて行うヒストグラム変換
以下の式は、次から引用しています。
Generalized Hyperbolic Stretch
[APTips 020] デジタル現像(DDP) 天体写真の画像処理に「いま使うツール」としての評価 [miscellaneous編]
[APTips 028] GeneralizedHyperbolicStretch (GHS) 徹底解説 [PixInsight編]
\( \displaystyle f(x)=k\frac{x}{x+a} +b\) ←この変換関数の要素は \( \displaystyle f(x)=\frac{x}{x+a}\) として、これを変形させます。
\( \displaystyle f(x)=\frac{x}{x+a} =1- \frac{1}{1+\frac{x}{a}}\)
ここで \( \displaystyle \frac{1}{a}\) を Dと表します。Dはストレッチファクターに関するパラメータ
\( \displaystyle =1- \frac{1}{1+Dx}\ = 1-{(1+Dx)}^{-1} \)
\( \hspace{2em} In(1 + Dx) \hspace{5em} 1-e^{ Dx } \hspace{5em} 1-{(1+Dx)}^{-1} \)
\( b:一般化変数=\quad [-1] \hspace{5em} [0] \hspace{5em} [+1]\)
MTF ( Midtone Transfer Function) の式
MTF は、非線形変換の一種
\( \displaystyle f(x)=\frac{(m-1)x}{(2m-1)x-m} \)
m:ミッドトーンを、0.5 より小さくすると、全てのピクセルが明るくなる。
0.5 より大きくすると、全てのピクセルが暗くなる。
利点:飽和していないピクセルは、変換後も飽和させない。
欠点:色が変わってしまう。
右に行くほど(1に近いほど)、傾きが小さくなるので、変換後のRGBの比率が変わってしまう。
非線形変換は、RGBの比率は変わってしまう。
このメモは私的なので、解説になってない文体になっています。ごめんなさい
コメント