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.