我試圖在matlab中縫合圖像,但得到醜陋的重疊線。我怎樣才能正確地混合圖像?目前我使用下面的代碼,但它混合太多(尤其是建築物的窗戶與黑色建築混合在一起)。如何在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
圖像中的僞影是由於您的全景稍微錯位。它們不是由於您的混合代碼。這是在重疊圖像之間創建線性加權混合。即使在沒有混合的頂部圖像中,您也可以看到這種錯位,在黑色建築物的錯位頂部和另一個大型建築物的略微錯位的十字架上。也許你需要對你的圖像進行一些調整,以改善這些全球性的小錯誤。 – jcollomosse
我想我只是想混合區域大約10px從線,也許它會幫助我。現在它正在混合所有重疊區域 – user3082220
這將減少除邊界外的模糊,並且由於對齊不良,您仍然會看到僞影。更好的辦法是改善路線。 – Trilarion