Warp-Perspektive und Zusammenfügen / Überlappen von Bildern (C ++)

Ich erkenne und vergleiche Merkmale eines Bildpaares mit einer typischen Detektor-Des-, Criptor-Matcher-Kombination und dannfindHomography, um eine Transformationsmatrix zu erstellen.

Nachdem möchte ich, dass sich die beiden Bilder überlappen (das zweite imgTrain) über dem ersten imgQuery), also verziehe ich das zweite Bild mithilfe der Transformationsmatrix mit:

cv::Mat imgQuery, imgTrain;
...    
TRANSFORMATION_MATRIX = cv::findHomography(...)
...
cv::Mat imgTrainWarped;
cv::warpPerspective(imgTrain, imgTrainWarped, TRANSFORMATION_MATRIX, imgTrain.size());

Ab hier weiß ich nicht, wie ich ein Bild erstellen soll, das das Original enthältimgQuery mit dem verzogenenimgTrainWarped drauf. Ich betrachte zwei Szenarien: 1) Eine, bei der die Größe des endgültigen Bildes der Größe von @ entsprichimgQuery 2) Eine, bei der das endgültige Bild groß genug ist, um beideimgQuery undimgTrainWarped, da sie sich nur teilweise, nicht vollständig überlappen. Ich verstehe, dass dieser zweite Fall irgendwo um die Bilder schwarze / leere Stellen haben könnte.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage