Página 1 de 2

Cómo se implementa la Corrección de perspectiva

NotaPublicado: Dom Sep 24, 2023 12:42 am
por Guillermo Luijk
Aprovechando una discusión de otra red he hecho un ejercicio de aplicar por código una corrección de distorsión de perspectiva (mal llamada así, porque lo que alteramos realmente es la dirección de observación) a una fotografía donde las líneas verticales no convergen por haber tenido que apuntar la cámara hacia arriba.

Esta transformación, que es la misma que aplican en sus tripas Photoshop y todos los programas con este tipo de corrección, tiene una solución única y de formulación cerrada resultado de resolver un sistema lineal de 8 ecuaciones con 8 incógnitas, fruto de basar el modelo en 4 puntos de referencia entre la imagen distorsionada y la corregida. Es una transformación geométricamente lineal que permite reproyectar cualquier punto entre los dominios con y sin distorsión.

Perdonad que ponga las imágenes como enlaces (en Tapatalk se ven directamente).

La formulación matemática y su implementación en lenguaje R:

http://guillermoluijk.com/misc/keystonecorrectionequationsplus.png

Una muestra de que esta transformación es geométricamente lineal, es decir, mantiene como rectas todas las rectas que pueda haber en la imagen origen:

http://guillermoluijk.com/misc/rectilinear.png

La transformación se define por la correspondencia de 4 puntos entre el espacio origen y destino, definiendo así dos trapezoides que pueden ser arbitrarios en forma, posición, tamaño,... Aquí un ejemplo de cómo se transforma una serie de círculos concéntricos dibujando ambos trapezoides:

http://guillermoluijk.com/misc/circles.png

Ahora va una imagen real a la que he aplicado la corrección. Aquí la versión capturada contrapicando la cámara (la imagen presenta fugas verticales):

http://guillermoluijk.com/misc/distorted.jpg

Y aquí la comparación entre la imagen anterior corregida y la obtenida desde el mismo sitio con un descentrable con SHIFT aplicado y apuntado en horizontal:

http://guillermoluijk.com/misc/keystone.gif

Ambas imágenes, la descentrada y la corregida, son geométricamente idénticas. La mínima diferencia de perspectiva (ver los árboles vs el fondo por ejemplo) se debe únicamente al microcambio en la posición de la pupila de entrada al contrapicar la cámara.

Esto sirve además como ejemplo de que con un descentrable no se obtiene nada, a efectos de geometría y perspectiva, que no puedas obtener aplicando una corrección software a una focal no descentrable lo suficientemente angular. Aquí usando la misma focal solo se perdían los trocitos en negro; habría bastado un 20mm para tenerlo todo.

Salu2!

Re: Cómo se implementa la Corrección de perspectiva

NotaPublicado: Dom Sep 24, 2023 9:21 am
por Rafa Buscaret
Te creo bajo palabra.

Y me quedo con esto:
"Esto sirve además como ejemplo de que con un descentrable no se obtiene nada, a efectos de geometría y perspectiva, que no puedas obtener aplicando una corrección software a una focal no descentrable lo suficientemente angular. Aquí usando la misma focal solo se perdían los trocitos en negro; habría bastado un 20mm para tenerlo todo."

Salu2!


De lo poco que entiendo a la primera [emoji38]

Re: Cómo se implementa la Corrección de perspectiva

NotaPublicado: Dom Sep 24, 2023 9:50 am
por Guillermo Luijk
He añadido un "a efectos de geometría y perspectiva" porque la única comparación que quería hacer con el descentrable se refería a ese apartado.

La imagen no tiene la misma calidad con un descentrable que con la corrección, dependerá de cada caso, y no siempre será a favor del descentrable. Mi imagen no demuestra nada ni a favor ni en contra del descentrable porque no tiene un tamaño suficiente, aparte mi interpolación es básica.

La ventaja del descentrable es facilidad e inmediatez. Puedes ver in situ cómo va a quedar la composición, la perspectiva y te ahorras el tiempo y engorro del procesado posterior. También evitas sorpresas de que tras la corrección software luego te falte un trozo de escena.

En cuanto a calidad se podría hablar mucho y dependerá de qué descentrable, de qué angular pongas a competir con él, y de qué nivel de exigencia tenga la corrección de la escena. De forma general puedo imaginar escenas donde un buen descentrable de más calidad que otro angular corregido, pero también me puedo imaginar casos donde el angular, aún corregido, supere al descentrable. Hay que pensar que el descentrable en cuanto a calidad óptica parte con dos hándicaps:
- Tiene que estar muy bien corregido en distorsión (me refiero a barril/cojín, no a la perspectiva que tratamos aquí), o al trabajar con él descentrado se hace muy complicado eliminar la distorsión. Y objetivo muy corregido en distorsión equivale a objetivo menos nítido y con más aberraciones.
- Por otro lado un descentrable requiere abarcar un círculo de imagen muy amplio (mayor al sensor). De nuevo más círculo significa menos nitidez general y más aberraciones.

Así que no basta decir que como con él no interpolas vaya a dar más calidad.

En resumidas cuentas opino que los descentrables son un poco dinosaurios de la época analógica, donde la corrección de perspectiva era imposible (o casi, salvo que fueras un virguero del laboratorio). En digital, salvo que aproveches masivamente sus ventajas de facilidad e inmediatez (por ejemplo para trabajo profesional), lo veo un tipo de objetivo a extinguir. Yo lo tengo por capricho del pasado y no lo compraría de nuevo, aunque es verdad que no me quiero deshacer de él, que sería lo racional. Es un objetivo que te enseña mucho sobre óptica y geometría.

Salu2!

Re: Cómo se implementa la Corrección de perspectiva

NotaPublicado: Dom Sep 24, 2023 11:53 am
por Manolo Portillo
Guillermo Luijk escribió:Ambas imágenes, la descentrada y la corregida, son geométricamente idénticas. La mínima diferencia de perspectiva (ver los árboles vs el fondo por ejemplo) se debe únicamente al microcambio en la posición de la pupila de entrada al contrapicar la cámara.

Esto sirve además como ejemplo de que con un descentrable no se obtiene nada, a efectos de geometría y perspectiva, que no puedas obtener aplicando una corrección software a una focal no descentrable lo suficientemente angular. Aquí usando la misma focal solo se perdían los trocitos en negro; habría bastado un 20mm para tenerlo todo.

Salu2!


Yo usé antaño, y cuando digo antaño es muy antaño :D , objetivos descentrables y cámaras técnicas. Pero desde que se inventaron las rótulas que permiten descentrar la cámara y hacer coincidir los ejes de giro con la pupila de entrada del objetivo y realizar series de fotos variando la dirección de visión sin variar la perspectiva, y el poder hacer panorámicas esféricas equirrectangulares en las que tienes todas las posibles direcciones de observación desde un mismo punto, vendí toda esa parafernalia.

A partir de una equirrectangular de 360 grados, tienes mucho más de lo que te da un descentrable. Es cierto que al seleccionar un trozo y ponerlo en proyección rectilínea se pierde algo de calidad, pero eso se resuelve usando una cámara con muchísimos MP, o haciendo muchas más fotos con un objetivo que no sea ojo de pez.

Se podría abrir un hilo sobre correcciones, panorámicas y proyecciones para fotografía de arquitectura, por ejemplo.

¡Saludos!

Re: Cómo se implementa la Corrección de perspectiva

NotaPublicado: Dom Sep 24, 2023 10:27 pm
por Guillermo Luijk
Lo digital le ha dado la vuelta a muchas cosas. Pero Manolo, no descartes que se vuelva a poner de moda andar con cámaras técnicas, hay gente que encuentra aliciente en rescatar antiguas esencias.

He hecho otro ejercicio. El que puse del puente, aunque pudiera parecer un ejercicio de corrección de perspectiva en realidad no lo era, era un mapeo de la foto hecha con fugas verticales sobre la foto obtenida con el descentrable. Mapeé 4 puntos escogidos de la escena con fugas sobre esos mismos puntos de la toma descentrada, y como no podía ser de otro modo se mapearon todos los demás elementos de la escena, y claro, de rebote se corrigieron las verticales.

En este ejercicio no hay toma descentrada, solo una toma contrapicada con fugas verticales, así que es un ejercicio genuino de corrección de las fugas. De nuevo he escogido 4 puntos de control (el algoritmo siempre funciona con una pareja de trapezoides origen y destino formados por 4 puntos), y a partir del trapezoide origen he definido un nuevo trapezoide destino donde las coordenadas Y no cambian, pero las coordenadas X se alinean en el valor medio:

http://guillermoluijk.com/misc/trapezoidsvertical.png

La transformación así garantiza que las dos verticales de control, que aparecen fugando en origen, se tornen verticales. De rebote, y como no puede ser de otro modo, todas las demás verticales del edificio que fugaban se tornan perfectamente verticales:

http://guillermoluijk.com/misc/keystonevertical.gif

Ésta es la forma en que más me gusta cómo funciona la corrección de perspectiva en cualquier programa (creo que Capture One fue el primero en implementarlo): el usuario ayuda al programa a detectar 2 líneas verticales de la escena, pero que no aparecen paralelas por culpa de la fuga. El programa no necesita nada más, solo con esa información puede volver paralelas (y verticales) esas dos líneas y cualquier otro elemento paralelo a ellas de la escena. Sin necesidad de andar tanteando con ningún slider de corrección de perspectiva, que es una pesadilla totalmente innecesaria.

Salu2!

Re: Cómo se implementa la Corrección de perspectiva

NotaPublicado: Lun Sep 25, 2023 10:27 am
por Manolo Portillo
Guillermo Luijk escribió:Ésta es la forma en que más me gusta cómo funciona la corrección de perspectiva en cualquier programa (creo que Capture One fue el primero en implementarlo): el usuario ayuda al programa a detectar 2 líneas verticales de la escena, pero que no aparecen paralelas por culpa de la fuga. El programa no necesita nada más, solo con esa información puede volver paralelas (y verticales) esas dos líneas y cualquier otro elemento paralelo a ellas de la escena. Sin necesidad de andar tanteando con ningún slider de corrección de perspectiva, que es una pesadilla totalmente innecesaria.


PTGui lo hace así también. He corregido las fugas de tu gif, marcando las verticales en las líneas amarillas que has dibujado y en otras verticales cualesquiera y las transformaciones coinciden exactamente con la tuya.
Desde luego que es un mecanismo mucho más preciso de usar que los deslizadores de ACR o Photoshop.

También, en objetos fusionados en dibujos técnicos de Illustrator con perpectivas fugadas, promediando dos verticales se consigue lo mismo.

¡Muchas gracias! Muy instructivo este hilo.

¡Saludos!

Re: Cómo se implementa la Corrección de perspectiva

NotaPublicado: Lun Sep 25, 2023 11:46 am
por JMLA
Guillermo Luijk escribió:Lo digital le ha dado la vuelta a muchas cosas. Pero Manolo, no descartes que se vuelva a poner de moda andar con cámaras técnicas, hay gente que encuentra aliciente en rescatar antiguas esencias.


Bueno, lo interesante hoy de las cámaras técnicas es el manejo de la profundidad de campo, lo referente a la ley de Scheimpflug, que imagino imposible de resolver por software, o eso creo.
Por lo demás muy interesante lo que expones (hasta donde lo he podido seguir, o sea pasando por alto la explicación matemática... :oops: )

Re: Cómo se implementa la Corrección de perspectiva

NotaPublicado: Lun Sep 25, 2023 11:33 pm
por Guillermo Luijk
Manolo Portillo escribió:PTGui lo hace así también. He corregido las fugas de tu gif, marcando las verticales en las líneas amarillas que has dibujado y en otras verticales cualesquiera y las transformaciones coinciden exactamente con la tuya.

Queda por afinar un punto: al haber escogido puntos de referencia que caen en diferentes coordenadas Y, si te fijas mi imagen corregida se ha comprimido ligeramente por la derecha (se puede ver en que los bordes superior e inferior fugan un poco hacia la derecha). Se debe solucionar tomando dos parejas de puntos que coincidan en sus coordenadas Y (o haciendo que la rutina las equipare). En otras palabras, el trapezoide de referencia sobre la imagen distorsionada debería tener sus lados superior e inferior horizontales.

Paradójicamente, en una corrección doble (que también quiero hacer), donde se corrijan tanto las fugas verticales como la horizontales (típica foto quasi frontal a fachada de edificio), resulta más sencillo definir el trapezoide.

Salu2!

Re: Cómo se implementa la Corrección de perspectiva

NotaPublicado: Lun Sep 25, 2023 11:45 pm
por Guillermo Luijk
JMLA escribió:(hasta donde lo he podido seguir, o sea pasando por alto la explicación matemática... :oops: )

La explicación matemática no tiene ningún misterio, es un sistema de ecuaciones para calcular los 8 coeficientes que definen plenamente la transformación. Resolver lo que hacíamos en EGB (o en BUP?):

2x + 3y = 8
x - y = 5

Pero en vez de dos ecuaciones con 2 incógnitas, aquí es de 8 ecuaciones con 8 incógnitas.

Salu2!

Re: Cómo se implementa la Corrección de perspectiva

NotaPublicado: Mar Sep 26, 2023 1:11 pm
por JMLA
Guillermo Luijk escribió:
JMLA escribió:(hasta donde lo he podido seguir, o sea pasando por alto la explicación matemática... :oops: )

La explicación matemática no tiene ningún misterio, es un sistema de ecuaciones para calcular los 8 coeficientes que definen plenamente la transformación. Resolver lo que hacíamos en EGB (o en BUP?):

2x + 3y = 8
x - y = 5

Pero en vez de dos ecuaciones con 2 incógnitas, aquí es de 8 ecuaciones con 8 incógnitas.

Salu2!


Dejé las ecuaciones entonces (BUP) y no las he vuelto a usar. Para mi es una cuestión de eficiencia, tener fe, el Guillermo dixit, Vs. tener que actualizar mis ecuaciones.

Me ilusionaba pensando que me ibas a responder con una implementación de la ley de Scheimpflug con photoshop y se me hacía la boca agua :P

Re: Cómo se implementa la Corrección de perspectiva

NotaPublicado: Mar Sep 26, 2023 4:46 pm
por Manolo Portillo
JMLA escribió:Bueno, lo interesante hoy de las cámaras técnicas es el manejo de la profundidad de campo...

Sí, pero con un engendro igual o parecido al que sigue montado en cualquier cámara, y por muy poco dinero, puedes conseguir el plano que quieras completamente enfocado. :D

Imagen

Re: Cómo se implementa la Corrección de perspectiva

NotaPublicado: Mar Sep 26, 2023 6:36 pm
por JMLA
Manolo Portillo escribió:
JMLA escribió:Bueno, lo interesante hoy de las cámaras técnicas es el manejo de la profundidad de campo...

Sí, pero con un engendro igual o parecido al que sigue montado en cualquier cámara, y por muy poco dinero, puedes conseguir el plano que quieras completamente enfocado. :D

Imagen



Poco dinero, no sé yo, con esa pinta de juguete y de viñetear lo que no está escrito, y no me queda si es un objetivo con foco a infinito (ese 50 hace presuponer que sea la distancia focal quizá), ni para qué monturas existe. Lo de "lens baby" no me suena bien. ¿Lo has probado?

Re: Cómo se implementa la Corrección de perspectiva

NotaPublicado: Mar Sep 26, 2023 7:26 pm
por Manolo Portillo
Ese del ejemplo debe de ser lo peor en su especie :D , y no, no he probado ningún trasto de esos.
Mi hermano tiene un Lensbaby, pero no sé si es de estos o uno que hace macro. Si es abatible se lo pediré a ver que tal es.
También los hay más sofisticados y más caros. Incluso he visto por ahí adaptadores descentrables para objetivos M42 a varias monturas, no sé si también los hay abatibles.

Re: Cómo se implementa la Corrección de perspectiva

NotaPublicado: Mar Sep 26, 2023 8:17 pm
por JMLA
A menudo he pensado en fabricarme algo así pero siempre ha acabado dándome pereza :x

Re: Cómo se implementa la Corrección de perspectiva

NotaPublicado: Vie Sep 29, 2023 12:43 am
por Guillermo Luijk
JMLA para que por lo menos los entresijos de estas transformaciones no te den pereza, te lo he pasado a limpio :D
En los próximos días escribiré la segunda parte, que se me han ocurrido un par de mejoras.

https://www.overfitting.net/2023/09/tra ... genes.html

Salu2!

Re: Cómo se implementa la Corrección de perspectiva

NotaPublicado: Vie Sep 29, 2023 10:27 am
por Chemax
¿Os puedo preguntar en qué casos consideráis conveniente corregir la perspectiva y en qué casos no?

Lo digo porque estuve dudando con una foto de esta fachada que saqué el otro día con el móvil, y decidí no corregirla porque iba a quedar algo forzado. Además de que algunas perspectivas es laborioso o complejo corregirlas sólo con un par de pasos del programa de edición, es decir, hay algunas que piden más intervención a la hora de actuar sobre la perspectiva.

ImagenFachada Calle Rector Lucena Salamanca by José María Gómez, en Flickr

¿Vosotros en una foto de este tipo o algo más alejada, la habríais dejado así?

Saludos!!!

Re: Cómo se implementa la Corrección de perspectiva

NotaPublicado: Vie Sep 29, 2023 11:33 am
por JMLA
Guillermo Luijk escribió:JMLA para que por lo menos los entresijos de estas transformaciones no te den pereza, te lo he pasado a limpio :D
En los próximos días escribiré la segunda parte, que se me han ocurrido un par de mejoras.

https://www.overfitting.net/2023/09/tra ... genes.html

Salu2!


La curiosidad por el chisme me la provoca el poder jugar con el plano de enfoque, que para lo de las fugas nos arreglamos bien con photoshop ;)

Te está quedando un artículo bonito y fácil de entender.

Re: Cómo se implementa la Corrección de perspectiva

NotaPublicado: Vie Sep 29, 2023 11:41 am
por JMLA
Chemax escribió:¿Os puedo preguntar en qué casos consideráis conveniente corregir la perspectiva y en qué casos no?

Lo digo porque estuve dudando con una foto de esta fachada que saqué el otro día con el móvil, y decidí no corregirla porque iba a quedar algo forzado. Además de que algunas perspectivas es laborioso o complejo corregirlas sólo con un par de pasos del programa de edición, es decir, hay algunas que piden más intervención a la hora de actuar sobre la perspectiva.

ImagenFachada Calle Rector Lucena Salamanca by José María Gómez, en Flickr

¿Vosotros en una foto de este tipo o algo más alejada, la habríais dejado así?

Saludos!!!



Yo no siempre corrijo, o corrijo solo un poco, buscando que me resulte "natural" a la vista. Si hablamos de mis fotos.
Muchas otras veces corrijo tomas de personas a cuerpo entero, que tomadas a la altura de la vista con un móvil (angular) resultan desproporcionadas (me refiero a fotos tomadas por otros y que reviso "editorialmente" por mi trabajo.

En el caso que propones, me parece que la corrección no queda forzada, sin embargo tendría el problema habitual en estos casos de arquitectura, y es que el plano más cercano se queda corto de dimensiones, lo que obliga a recortar y perder mucho de las zonas lejanas (altas), además de resultar encajonado:

Imagen

Re: Cómo se implementa la Corrección de perspectiva

NotaPublicado: Vie Sep 29, 2023 12:44 pm
por Guillermo Luijk
Chemax escribió:¿Vosotros en una foto de este tipo o algo más alejada, la habríais dejado así?

En publicaciones de arquitectura (puedes buscar 'El Croquis' por ejemplo), no se concibe que haya fugas en los edificios.

Esto quizá ha contaminado al resto de usuarios que a veces creen que es una obligación hacer estas correcciones. Si el fin de tu fotografía no es el ultra ortodoxo mundo arquitecturil, lo correcto es que la dejes como a ti más te guste sin dejarte influir por lo que se haga en otros gremios. Tu puerta además no es corregible porque te falta trozo por los lados.

Salu2!

Re: Cómo se implementa la Corrección de perspectiva

NotaPublicado: Dom Oct 01, 2023 4:43 pm
por Guillermo Luijk