Unir múltiples imágenes usando OpenCV (Python)

Hola, he visto muchos tutoriales sobre cómo hacer una unión de imágenes simple con dos fotos y eso no es un problema.
Pero, ¿qué hacer cuando quiero hacer un panorama de 4 a 6 imágenes o más?

Tengo un código que toma en la lista de archivos de imagen (las imágenes están en orden desde la primera imagen en la secuencia hasta la última). Luego, para cada imagen calculo los descriptores de la función SIFT. Pero luego estoy atascado, para dos imágenes configuraría un emparejador usando FLANN kd-tree y buscaría coincidencias entre las imágenes y calcularía la homografía. Similar a este tutorialhttp://docs.opencv.org/trunk/doc/py_tutorials/py_feature2d/py_feature_homography/py_feature_homography.html#py-feature-homography

Pero en lugar de mostrar las líneas entre los puntos característicos al final, he usado estohttps://stackoverflow.com/a/20355545/622194 función para hacer un panorama de 2 imágenes. Pero no estoy seguro de qué hacer cuando quiero agregar la tercera y la cuarta imagen al panorama.

EDITAR:

A partir de las respuestas, he intentado implementar mi script de unión de imágenes para calcular una matriz de homografía entre imágenes que están una al lado de la otra en la secuencia de imágenes. Entonces, si tengo I1 I2 I3 e I4 ahora tengo H_12, H_23 y H_34. Luego empiezo cosiendo I1 e I2 usando H_12. Entonces quiero encontrar homografía acumulativa para unir I3 al panorama actual. Busco H_13 = H_12 * H_23 y pego la imagen 3 al panorama actual, pero aquí obtengo un espacio muy aparente en mi imagen panorámica y cuando se cose la siguiente imagen es un espacio aún mayor y las imágenes están muy estiradas. Aqui esta mi codigohttp://pastebin.com/dQjhE5VD

¿Alguien puede decirme si estoy usando el enfoque correcto para esto o alguien puede detectar el error o ver qué estoy haciendo mal?

Respuestas a la pregunta(3)

Su respuesta a la pregunta