Perspectiva de deformación e imágenes de puntada / superposición (C ++)

Estoy detectando y haciendo coincidir las características de un par de imágenes, usando una combinación típica de detector-des, criptor-matcher y luegofindHomography para producir una matriz de transformación.

Después de esto, quiero que las dos imágenes se superpongan (la segunda (imgTrain) sobre el primero (imgQuery), así que deforma la segunda imagen usando la matriz de transformación usando:

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

De aquí en adelante, no sé cómo producir una imagen que contenga el originalimgQuery con la deformadaimgTrainWarped en eso. Considero dos escenarios: 1) Uno donde el tamaño de la imagen final es el tamaño deimgQuery 2) Uno donde el tamaño de la imagen final es lo suficientemente grande como para acomodar ambosimgQuery yimgTrainWarped, ya que se superponen solo parcialmente, no completamente. Entiendo que este segundo caso podría tener espacio en blanco / negro en algún lugar alrededor de las imágenes.

Respuestas a la pregunta(3)

Su respuesta a la pregunta