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.