Queremos compartir contigo la mejor información que descubrimos en todo internet. Nosotros esperamos que te sirva de ayuda y si deseas comentarnos alguna mejora hazlo con total libertad.
Solución:
Debe deformar a una matriz de destino que tenga las mismas dimensiones que imgQuery
después de eso, recorra toda la imagen deformada y copie el píxel en la primera imagen, pero solo si la imagen deformada realmente contiene un píxel deformado. Eso se hace más fácilmente deformando una máscara adicional. Por favor, intente esto:
cv::Mat imgMask = cv::Mat(imgTrain.size(), CV_8UC1, cv::Scalar(255));
cv::Mat imgMaskWarped;
cv::warpPerspective(imgMask , imgMaskWarped, TRANSFORMATION_MATRIX, imgQuery.size());
cv::Mat imgTrainWarped;
cv::warpPerspective(imgTrain, imgTrainWarped, TRANSFORMATION_MATRIX, imgQuery.size());
// now copy only masked pixel:
imgTrainWarped.copyTo(imgQuery, imgMaskWarped);
por favor intente decir si esto está bien y resuelve scenario 1
. Para el escenario 2, probaría qué tan grande debe ser la imagen antes de deformarse (usando la transformación) y copiaría ambas imágenes a una imagen de destino lo suficientemente grande.
Sección de Reseñas y Valoraciones
Si estás de acuerdo, puedes dejar un ensayo acerca de qué te ha impresionado de este tutorial.