あたご工房
天文と電子工作とコンピュータなどについて日々の出来事を書いています。
| ホーム |
GIMPでArcsinhStretchの再現
あたごは天文用画像処理ソフトに疎いのですが、最近PixInsightというソフトについて知りました。
PixInsightの機能の中で一番気になったのがArcsinhStretchという強調処理です。
PixInsightについて解説されているこちらのHPでは通常のトーンカーブによる強調処理を行うと色が薄くなったり、カラーバランスが崩れる原理について分かりやすく書かれています。
ArcsinhStretchではピクセルの色の配分を保持したまま明るさを変える(=強調する)事ができるという事のようです。
原理は分かりましたが、本当にそうなのかフリーのフォトレタッチツールであるGIMPを使って実験してみます。
GIMPで適当なサイズでキャンバスを新規作成します。
次に半分くらいの領域をR,G,B=10,20,30の割合とした色で塗りつぶします。
同様にもう半分をR,G,B=20,40,60と割合は変えずにそれぞれの色の値を倍にします。
こうしてできた画像がこちら。
左が10,20,30、右が20,40,60の値で塗りつぶしたものになります。
さて、トーンカーブを使って左の領域が右と同じになるように調整してみます。
トーンカーブのダイアログが開いたら画面のそれぞれの領域をクリックして動かす輝度を確認します。
縦線がその領域の明るさを示しているので、斜めの線との交点をクリックして操作点を追加しておきます。
右側の領域については明るさが変化しないように前後にもアンカー的に点を打っておきます。
さていよいよ左の操作点を上方に動かして右の領域と明るさが同じになるように調整します。
このときの画面がこちら。
元の画像と切り替えながら見ると違いがよく分かります。
左の明るくしたい領域は色が薄っぽくなり、元画像の右領域よりも明るい感じがします。
問題なのは明るさを変えたくなかった右の領域まで色と明るさが変化してしまっています。
実は明るさの調整をしようとしても、光の3原色それぞれのレベルが異なっているため右側の領域も色の配合が変化してしまったという事のようです。
さて最初の方に書きましたが、色の配分を変化させずに明るさのみを調整する機能がPixInsightのArcsinhStretchですが、どうにかしてその処理を再現することはできないのでしょうか。
1ピクセルごとに持ち上げたい明度分の係数を乗算すれば良さそうです。
ふと思い出したのがレイヤ間の演算表示です。
レタッチソフトではレイヤ間で加減乗除が行えます。
つまり明度の強調割合を表すレイヤを作り、それと元画像を乗算すれば色の配分を変えずに明るさのみを持ち上げられそうに思います。
強調カラー画像 = 元のカラー画像 × 強調割合画像
明度の強調割合を示すレイヤですが、こちらは元画像の明度(モノクロ)画像とそれを強調した画像をレイヤ間演算で除算すれば良さそうです。
強調割合画像 = 元画像のモノクロ画像を強調した画像 ÷ 元画像のモノクロ画像
うん、何かできそうな気がしてきました。
まずは元画像をモノクロ化します。
レイヤを複製して、Hue-Chroma(色相彩度)でchroma(彩度)を0にします。
これでモノクロ画像の準備OKです。
次にこのレイヤを複製後、左の領域が右の領域と同じ明るさになるようにトーンカーブで調整します。
最初に行ったのと同じ要領です。
モノクロ化すると明るさの表現が変わるので操作点の位置が変わっています。
モノクロ=明度だけなのでほぼピッタリの明るさにできます。
モノクロのレイヤ2つはレイヤグループにまとめます。
そして強調画像が上になる状態でモードはDivide(除算)を選びます。
そうするとこのような強調割合画像ができあがります。
レイヤの順番が逆ですが最後の乗算を除算にすれば辻褄は合うはずなのでこのまま進めます。
このマスクを適用するのですが、レイヤーグループのままだと作業しづらいので、ここまで作業したレイヤーグループをコピー&レイヤーグループの統合を実行して1つのレイヤにします。
それと同時にこれまで作業していたレイヤグループは目のマークを押して非表示にします。
そして出来上がった強調割合画像レイヤを元の画像に演算処理(前述の通り、今回は除算)します。
どうでしょう。手で強調をかけているので多少の誤差は出ましたが、ほぼ同じ色、明るさになりました。
ピクセル情報もR,G,B≒20,40,60になっていますし、右側の領域の色も変化しません。
フリーのGIMPでArcsinhStretch(原理)を再現できたと言っていいのではないでしょうか。
さっそく前回のM31とM33に適用してみようと思います。
今週末は天気が悪そうなので...
↓押して頂けると嬉しいです。
PixInsightの機能の中で一番気になったのがArcsinhStretchという強調処理です。
PixInsightについて解説されているこちらのHPでは通常のトーンカーブによる強調処理を行うと色が薄くなったり、カラーバランスが崩れる原理について分かりやすく書かれています。
ArcsinhStretchではピクセルの色の配分を保持したまま明るさを変える(=強調する)事ができるという事のようです。
原理は分かりましたが、本当にそうなのかフリーのフォトレタッチツールであるGIMPを使って実験してみます。
GIMPで適当なサイズでキャンバスを新規作成します。
次に半分くらいの領域をR,G,B=10,20,30の割合とした色で塗りつぶします。

同様にもう半分をR,G,B=20,40,60と割合は変えずにそれぞれの色の値を倍にします。
こうしてできた画像がこちら。
左が10,20,30、右が20,40,60の値で塗りつぶしたものになります。

さて、トーンカーブを使って左の領域が右と同じになるように調整してみます。
トーンカーブのダイアログが開いたら画面のそれぞれの領域をクリックして動かす輝度を確認します。
縦線がその領域の明るさを示しているので、斜めの線との交点をクリックして操作点を追加しておきます。
右側の領域については明るさが変化しないように前後にもアンカー的に点を打っておきます。

さていよいよ左の操作点を上方に動かして右の領域と明るさが同じになるように調整します。

このときの画面がこちら。
元の画像と切り替えながら見ると違いがよく分かります。
左の明るくしたい領域は色が薄っぽくなり、元画像の右領域よりも明るい感じがします。
問題なのは明るさを変えたくなかった右の領域まで色と明るさが変化してしまっています。

実は明るさの調整をしようとしても、光の3原色それぞれのレベルが異なっているため右側の領域も色の配合が変化してしまったという事のようです。
さて最初の方に書きましたが、色の配分を変化させずに明るさのみを調整する機能がPixInsightのArcsinhStretchですが、どうにかしてその処理を再現することはできないのでしょうか。
1ピクセルごとに持ち上げたい明度分の係数を乗算すれば良さそうです。
ふと思い出したのがレイヤ間の演算表示です。
レタッチソフトではレイヤ間で加減乗除が行えます。
つまり明度の強調割合を表すレイヤを作り、それと元画像を乗算すれば色の配分を変えずに明るさのみを持ち上げられそうに思います。
強調カラー画像 = 元のカラー画像 × 強調割合画像
明度の強調割合を示すレイヤですが、こちらは元画像の明度(モノクロ)画像とそれを強調した画像をレイヤ間演算で除算すれば良さそうです。
強調割合画像 = 元画像のモノクロ画像を強調した画像 ÷ 元画像のモノクロ画像
うん、何かできそうな気がしてきました。
まずは元画像をモノクロ化します。
レイヤを複製して、Hue-Chroma(色相彩度)でchroma(彩度)を0にします。
これでモノクロ画像の準備OKです。

次にこのレイヤを複製後、左の領域が右の領域と同じ明るさになるようにトーンカーブで調整します。
最初に行ったのと同じ要領です。
モノクロ化すると明るさの表現が変わるので操作点の位置が変わっています。
モノクロ=明度だけなのでほぼピッタリの明るさにできます。

モノクロのレイヤ2つはレイヤグループにまとめます。
そして強調画像が上になる状態でモードはDivide(除算)を選びます。

そうするとこのような強調割合画像ができあがります。

レイヤの順番が逆ですが最後の乗算を除算にすれば辻褄は合うはずなのでこのまま進めます。
このマスクを適用するのですが、レイヤーグループのままだと作業しづらいので、ここまで作業したレイヤーグループをコピー&レイヤーグループの統合を実行して1つのレイヤにします。
それと同時にこれまで作業していたレイヤグループは目のマークを押して非表示にします。

そして出来上がった強調割合画像レイヤを元の画像に演算処理(前述の通り、今回は除算)します。

どうでしょう。手で強調をかけているので多少の誤差は出ましたが、ほぼ同じ色、明るさになりました。
ピクセル情報もR,G,B≒20,40,60になっていますし、右側の領域の色も変化しません。
フリーのGIMPでArcsinhStretch(原理)を再現できたと言っていいのではないでしょうか。
さっそく前回のM31とM33に適用してみようと思います。
今週末は天気が悪そうなので...
↓押して頂けると嬉しいです。
コメント
コメントの投稿
トラックバック
| ホーム |