En una fotografía obtenida con proyección rectilínea (la que hacen el 99,9% de cámaras del mundo), es posible cambiar el punto de vista, es decir la dirección en la que se apuntó la cámara, con una matriz de rotación que modele 3 movimientos básicos:
Esto es lo que hace en sus tripas cualquier visor panorámico como el Street View de Google, y también seguramente la corrección de perspectiva de tu revelador RAW. El cálculo de la matriz para cada uno de los ajustes se puede ver a continuación. Además definidos varios ajustes podemos agruparlos en una única matriz final multiplicando las matrices parciales. Aplicada la matriz de rotación final sobre la imagen, todos los cambios se realizarán de golpe con una sola interpolación de la imagen:
Con Gemini Pro y tras algunas iteraciones para poder añadir un parámetro de zoom y cambiar un par de detalles, he obtenido una función en C++ ultrarrápida que aplica las transformaciones definidas por cualquier matriz de rotación sobre cualquier imagen. Solo necesita el parámetro de la distancia focal con que fue obtenida dicha imagen. Aquí se muestra una escena de partida sobre la que se aplica una rotación completa que incluye cambios de roll, pitch y yaw:
Pero he ido un paso más allá: si en una escena real existe algún rectángulo que por efecto de la perspectiva aparece en la fotografía como un trapezoide irregular, podemos realizar una corrección del punto de vista hasta llevar la cámara a una dirección perpendicular a dicho rectángulo, con lo que este aparecerá en sus dimensiones reales.
He pedido a Gemini que, a partir de la localización de las 4 esquinas del trapezoide (marcado en amarillo), devuelva la matriz de rotación que aplicada a la imagen apuntará la cámara de forma perpendicular a dicho rectángulo, restaurando sus proporciones reales. Un ejemplo de rotación radical con este método:
Lo que me ha construido Gemini Pro en un par de horas de juego, incomprensiblemente no lo hace ningún programa profesional de tratamiento de imágenes: Photoshop, Lightroom o Capture One. Permiten definir el trapezoide irregular pero luego ninguno de ellos puede, a partir de él, restaurar la relación de aspecto real del objeto. Esto es algo utilísimo, por no decir imprescindible, en fotografía de arquitectura y de interiorismo.
Pasado a limpio: Cambio del punto de vista de cámara mediante homografías con R
Salu2!
- Yaw/Paneo: rotación a izquierda/derecha
- Cabeceo/Pitch: rotación arriba/abajo
- Roll/Alabeo: rotación sobre el eje de la cámara
Esto es lo que hace en sus tripas cualquier visor panorámico como el Street View de Google, y también seguramente la corrección de perspectiva de tu revelador RAW. El cálculo de la matriz para cada uno de los ajustes se puede ver a continuación. Además definidos varios ajustes podemos agruparlos en una única matriz final multiplicando las matrices parciales. Aplicada la matriz de rotación final sobre la imagen, todos los cambios se realizarán de golpe con una sola interpolación de la imagen:
Con Gemini Pro y tras algunas iteraciones para poder añadir un parámetro de zoom y cambiar un par de detalles, he obtenido una función en C++ ultrarrápida que aplica las transformaciones definidas por cualquier matriz de rotación sobre cualquier imagen. Solo necesita el parámetro de la distancia focal con que fue obtenida dicha imagen. Aquí se muestra una escena de partida sobre la que se aplica una rotación completa que incluye cambios de roll, pitch y yaw:
Pero he ido un paso más allá: si en una escena real existe algún rectángulo que por efecto de la perspectiva aparece en la fotografía como un trapezoide irregular, podemos realizar una corrección del punto de vista hasta llevar la cámara a una dirección perpendicular a dicho rectángulo, con lo que este aparecerá en sus dimensiones reales.
He pedido a Gemini que, a partir de la localización de las 4 esquinas del trapezoide (marcado en amarillo), devuelva la matriz de rotación que aplicada a la imagen apuntará la cámara de forma perpendicular a dicho rectángulo, restaurando sus proporciones reales. Un ejemplo de rotación radical con este método:
Lo que me ha construido Gemini Pro en un par de horas de juego, incomprensiblemente no lo hace ningún programa profesional de tratamiento de imágenes: Photoshop, Lightroom o Capture One. Permiten definir el trapezoide irregular pero luego ninguno de ellos puede, a partir de él, restaurar la relación de aspecto real del objeto. Esto es algo utilísimo, por no decir imprescindible, en fotografía de arquitectura y de interiorismo.
Pasado a limpio: Cambio del punto de vista de cámara mediante homografías con R
Salu2!
Última edición:

