シームレスな画像オーバーレイ(ブレンド)とは、ある画像の一部を別の画像に挿入して、挿入された画像の境界に目立った継ぎ目がないようにする方法を意味します。 このメソッドは、いわば、挿入された部分を残りの画像に合わせて調整します。 実際、結果を取得するには、挿入された部分の勾配フィールドと、処理済み領域の境界にある元の画像のピクセル値のみが使用されます。
問題の声明
画像Aがあり、その上に特定の場所に画像Bが重ねられています。
シームレスブレンドの場合、画像領域Bの画像Aの勾配は、画像Bの勾配と等しくなければなりません。領域Bの色回復は、領域Bの勾配と、領域Bの境界上の画像Aの色データに基づきます。
これは、結果の画像を取得するために、その勾配に従って画像を復元する必要があることを意味します。 ポアソン問題を解きます。
以下は、単調な画像の問題の解決策です。 RGB画像の場合、メソッドは各チャンネルに適用されます。
解決策
挿入領域の境界線を次のように定義します。
そして、オーバーレイ画像の勾配を計算します:
これですべてのデータが利用可能になり、ポアソン方程式を作成できます。
ここで、(x、y)は現在のピクセルの座標、Nは境界を含まない隣接ピクセルの数(4以下)、(dx、dy)は隣接ピクセルの座標であり、集合{(-1、0)、(1 、0)、(0、-1)、(0、1)}
したがって、未知のピクセルごとに方程式がコンパイルされます。 その結果、M個の未知数を持つシステムが得られます。Mは挿入された画像のピクセル数です。 このシステムを解決するためだけに残っています。 これを解決するには多くの方法がありますが、解決には通常、Jacobi法とGauss-Seidel法が使用されます。
多くの場合、重ね合わせられた領域では、グラデーションフィールドが元の画像と混合されます。 たとえば、特定のポイントで勾配AまたはBの最大値を取得します。 例を使用して、元のグラデーションと組み合わせたグラデーションの違いを感じるのが最善です。
画像勾配回復B:
画像AとBの最大勾配による回復:
明らかに、透明な構造(水、虹、雲など)を持つオブジェクトに対して、組み合わせたグラデーションからの画像回復を使用することをお勧めします。
しかし、グラデーションの組み合わせがない場合、レインボーオーバーレイはどのように表示されますか
ポアソンブレンディング変換の適用
- 顔の置換/フレームへの新しいオブジェクトの挿入
- 透明な構造を持つフレーム内のオブジェクトをオーバーレイする
- パノラマ作成時の画像スムージング
- オブジェクトの3Dモデルを作成する際の画像の平滑化
参照資料
- オリジナル記事
- 少しの理論、応用、例
- ヤコビ法とガウス-ザイデル法 +ソースによる SLAEソリューション
- プログラム+ Javaソース
- Blend Meで撮影した写真