Calcular desplazamiento / sesgo / rotación de imágenes similares en C ++

Tengo varias imágenes tomadas simultáneamente apuntando en la misma dirección desde la misma ubicación de inicio. Sin embargo, todavía hay un ligero desplazamiento porque estas cámaras no estaban en laexact mismo lugar cuando se tomó la foto. Estoy buscando una manera de calcular la traslación / cizallamiento / inclinación / rotación óptimas necesarias para aplicar una imagen a otra para que se superpongan (casi) perfectamente.

Las imágenes están en formato .raw que estoy leyendo en 16 bits a la vez.

He sugerido (por mi empleador que no es programador [soy un pasante interno por cierto]) que tome una parte de la imagen de origen (no en los bordes) y busque por la fuerza bruta una parte del mismo tamaño con un Alta correlación en los valores de los datos. Espero que haya un algoritmo menos derrochador.

Respuestas a la pregunta(3)

Su respuesta a la pregunta