C#7の星空周遊

愛知県の山とベランダで星空撮影

PixelMath活用の背景グラデーション補正

PixInsightの背景補正ツールは優れているものの、もうちょっとなぁーーーと言う点はある。3つ前の記事でPixelMath作図機能を活用して背景補正用の画像を作ったが、今回はもう少し実用性のある図形をやれないかと取り組んでみた。
右図は周辺減光補正が不十分のようで
リング状のグラデーションが残ってしまった。この程度でも淡い銀河腕の強調をやろうとすると以外と目立ってくるので何とかしたいものの、この程度の変化だとPixInsightの背景補正ツールでは何ともならなかった。淡い腕の強調レベルを控え目にすればそのまま放置で済む話なのだが。(*'ω'*)



10日間ほどPixelMath数学に取り組んだ結果、円形グラデーションと直線的なグラデーシヨンが作図できるようになった。下の図は実際にPixInsightの中で作図したもので、白リング内にグラデーションが形成されるようにしたもので、右の直線グラデーションと組み合わせれば応用範囲はそこそこありそうだ。但し全て数値をいじっての作図となるので、ホイホイ作図には慣れが必要だが、白リングのグラデーションはPhotoshopでも簡単には作れないので、この点は強みだ。実際の使用では白リングの方はConvolutionを使ってのボカシ画像(StdDev=100)にする必要がある。直線グラデーションではエッジは出てこないため特にボカシ処理は要らない。
f:id:kenwoodyjoy:20210226151433j:plain:w550

グラデーションの輝度変化はガンマ変換ができるよう
にしてあり、また輝度自体も設定できるようにしたので、画像の状況を見て様々に調整できる。周辺減光の残り分がガンマ変換での分布なのか知らないが、Photoshopのグラデーションツールの輝度分布はガンマ変換(γ値=2)らしいとネットで記事を見つけたのでこれを参考にした。





下の画像は円形グラデーションを作図できるPixelMathの式を記述した部分と定数と変数を定義したSymbolsの中身で、Smybolsの中の数値のある記号は定数や設定値で、それ以外は計算に使う変数となる。
●座標原点は画像の左上で、円の中心座標(cx,cy) 黒円半径ri, 白リング幅rw と円に関わるものはこの4つ。
●xs,ysはグラデーション開始位置、dhはグラデーション終点でxs,ys点からの距離(ピクセル値)、anglは角度で、右方向水平が0度で時計方向+, dirは方向を示す数値で基準は1(左から右へ)、反対方向は1以外の数値、cofは白の明度(0~1の実数)、ganmはガンマ値(0以上の実数)
なお直線グラデーション作図のPixelMathの式とSymbolsは、円形グラデーションの式とSymbolsから円に関わる部分を削除すればできる。(iif分岐式の中の円に関わる部分も全て)
f:id:kenwoodyjoy:20210226173512j:plain

次の画像はこの2つを使って背景を補正
したもので、画像マスクとして使い、Curvestransformationでの低輝度部のoutput数値で調整した。上の画像が補正前で、下の画像は補正後。
完璧とまではいかないが、余分な背景グラデーションは結構除去できた。画像の右側のリンググラデーションはほぼ消え、左側の薄いグラデーションも消えた。

本来ならコンポジット前の画像1枚1枚を補正できたらいいが、今は未だどうやれば良いのか分からない。Forumで検索するとやれるかものようだが、書いてある事がさっぱり理解できない。( *´艸`)

以上