8

私はmatlabで画像をステッチしようとしていますが、醜いオーバーラップラインが得られます。画像を適切にブレンドするにはどうすればよいですか? 現在、私は以下のコードを使用していますが、ブレンドが多すぎます (特に、黒い建物のように、建物の窓がゴースト アーティファクトとブレンドされています)。

ブレンドされていない画像 ブレンド画像

%Tx - how much to move picture by x, Ty - by y (homography)
cropX = size(imcyl2, 2); %second image x size
xdimfirst = size(imcyl1, 2); %first image x size
ydimfirst = size(imcyl1, 1); %first image y size
xoverlap = xdimfirst - Tx;
newImg = imcyl1;
for y = 1:size(imcyl2, 1)
   for x = 1:cropX
       if ((Tx+x) > 0 && (Ty+y) >0)
       % if we are in the overlap region, then we need to blend.
               scale1 = (xoverlap - x) / xoverlap;
               scale2 = x / xoverlap;
               r = scale1 * imcyl1(Ty + y, Tx + x, 1) + scale2 * imcyl2(y, x, 1);
               g = scale1 * imcyl1(Ty + y, Tx + x, 2) + scale2 * imcyl2(y, x, 2);
               b = scale1 * imcyl1(Ty + y, Tx + x, 3) + scale2 * imcyl2(y, x, 3);
               newImg(Ty + y, Tx + x, :) = [r g b];
         end
    end
end
4

2 に答える 2

1

まだ問題に取り組んでいる場合は、重複する画像間の色補正手順が必要だと思います. たとえば、一番左の画像の青空と左から 2 番目の画像の青の値は同じである必要があります。明らかに、カメラがコーナーでケラレているため、そうではありません。両方の青の値が互いに近い範囲にあることを確認することで、より良いブレンドが得られます。

于 2014-12-09T17:08:16.533 に答える