Saltar al contenido

Deformar imágenes en perspectiva y unir/superponer (C++)

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *