Ich versuche Stichbilder in Matlab, aber hässliche Überlappungslinien zu bekommen. Wie kann ich Bilder richtig mischen? Momentan benutze ich den Code unten, aber er mischt sich zu sehr (vor allem Gebäudefenster werden mit Geisterartefakten gemischt, ebenso das schwarze Gebäude).Wie kann man beim Stitchen von Bildern in Matlab richtig mischen?
%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
Die Artefakte im Bild sind darauf zurückzuführen, dass das Panorama leicht versetzt ist. Sie sind nicht auf Ihren Mischcode zurückzuführen. Dies erzeugt eine lineare gewichtete Mischung zwischen den überlappenden Bildern. Sie können diese Fehlausrichtung sogar in Ihrem oberen Bild sehen, ohne die Überblendung, auf der falsch ausgerichteten Oberseite des schwarzen Gebäudes und den leicht verschobenen Kreuzen auf dem anderen großen Gebäude. Möglicherweise müssen Sie einige Anpassungen an Ihren Bildern vornehmen, um diese kleinen Fehler global zu verfeinern. – jcollomosse
Ich denke, ich möchte nur Region um 10px von der Linie mischen, vielleicht würde es mir helfen. Jetzt wird die Überlappungsregion überblendet – user3082220
Das würde die Unschärfe außer an den Grenzen reduzieren und Sie sehen immer noch die Artefakte aufgrund der schlechten Ausrichtung. Besser wäre es, die Ausrichtung zu verbessern. – Trilarion