OpenCV Stitching

La técnica de stitching permite generar imágenes panorámicas o imágenes de un espacio amplio  a partir de un conjunto de imágenes que representan porciones pequeñas de la escena que deseamos generar. 

image

En OpenCV 3.x el módulo stitching contiene todo lo necesario para realizar esta tarea, si lo utilizamos de una manera simple solo debemos crear un objeto cv::Stitcher, indicar el conjunto de imágenes a procesar y el método que deseamos utilizar.

vector<Mat> imgs;

imgs.push_back(imread("stitching/imagen1.jpg"));
imgs.push_back(imread("stitching/imagen2.jpg"));

Mat pano;
Ptr<Stitcher> stitcher = Stitcher::create(Stitcher::PANORAMA, false);
Stitcher::Status status = stitcher->stitch(imgs, pano);

Stitcher::create(mode, use_gpu) crea el objeto Stitcher necesario, este es creado usando la configuración por defecto, mode establece el modo que deseamos utilizar, PANORAMA si se trata de un conjunto de imágenes alineadas una al lado de la otra, SCANS si el conjunto de imágenes esta disperso, use_gpu establecido a true indica que se utilizará la aceleración por GPU si esta disponible.

pano

Si deseas ver un ejemplo más complejo de la técnica de stitching con OpenCV puede ver en la carpeta de ejemplos el archivo: opencv/samples/cpp/stitching_detailed.cpp

Puedes encontrar imágenes de prueba en la carpeta: opencv stitching test images.

Código en GitHub: OpenCV Image Stitch

Comentarios

  1. Hola, excelente aporte, me funciona excelente cuando junto un par de imagenes, pero como se puede aumentar el tamaño del size para el objeto stitch? es decir juntar imagenes que dan un tamaño mucho mas grande.

    ResponderEliminar

Publicar un comentario

Temas relacionados

Entradas populares de este blog

tkinter Grid

Conectar SQL Server con Java

Histogramas OpenCV Python

Controles y Contenedores JavaFX 8 - I