1

「顔置換システム」というタイトルの画像処理プロジェクトを行っており、http://thesai.org/Downloads/Volume1No6/Paper_22_A_Face_Replacement_System_Based_on_Face_Pose_Estimation.pdfを参照しています。

ソース画像(顔)(ターゲット画像を置き換える)を、ターゲット画像(顔)のポーズに合わせてシフト、回転、拡大縮小する「画像ワーピング」を実装しました。画像ワーピング後に得られた結果には穴があります。つまり、ターゲット画像のすべてのピクセルがソース画像にマッピングされているわけではありません。この論文は解決策について言及していません。

簡単な解決策を試しました。各穴の8つの接続された隣接ピクセルからピクセルの平均を取ります。他のアルゴリズムも試しました。しかし、結果は良くありません。

この場合に実装するのに最適なアルゴリズムは何ですか?

4

2 に答える 2

2

アフィン変換(「シフト、回転、スケーリング」)を使用しているため、逆変換を計算して「逆マッピング」を行うことができます。宛先ピクセルごとに、対応するソースピクセルを見つけます。したがって、穴の外観は完全に排除されます。

編集:コメントディスカッションのための双一次補間

foreach pixel in newimage do
   (px, py) = Transform(pixel.x, pixel.y) //float
    x = Floor(px), y = Floor(py)  //integer base coordinates in old image, rounded to -Infinity
    tx = px - x, ty = py - y   //float parametric coordinates in old image cell
    Coeff00 = (1 - tx) * (1 - ty)
    Coeff01 = tx * (1 - ty) 
    Coeff10 = (1 - tx) * ty
    Coeff11 = tx * ty
    NewRedValue = OldRedValue[x, y] * Coeff00 + 
                  OldRedValue[x + 1, y] * Coeff01 + 
                  OldRedValue[x, y + 1] * Coeff10 + 
                  OldRedValue[x + 1, y + 1] * Coeff11
    the same for blue, green  
于 2012-05-25T04:53:35.383 に答える
0

あなたが説明しているメディアンフィルター(8つの接続されたネイバーのもの)のように聞こえますが、おそらく最良でしょう。より具体的なフィルタリングを行うこともできますが、特に「穴」がそれほど大きくない場合は、特殊化はおそらく必要ありません。

于 2012-05-25T02:48:56.707 に答える