En visión por computadora, una matriz de cámara o matriz de proyección (de cámara) es una matriz que describe el mapeo de una cámara estenopeica desde puntos 3D en el mundo a puntos 2D en una imagen.
Sea una representación de un punto 3D en coordenadas homogéneas (un vector de 4 dimensiones), y sea una representación de la imagen de este punto en la cámara estenopeica (un vector tridimensional). Entonces se cumple la siguiente relación
donde es la matriz de la cámara y el signo implica que los lados izquierdo y derecho son iguales excepto por una multiplicación por un escalar distinto de cero :
Dado que la matriz de la cámara está involucrada en la aplicación entre elementos de dos espacios proyectivos , también puede considerarse un elemento proyectivo. Esto significa que tiene solo 11 grados de libertad, ya que cualquier multiplicación por un escalar distinto de cero da como resultado una matriz de cámara equivalente.
La correspondencia de las coordenadas de un punto 3D P con las coordenadas de la imagen 2D de la proyección del punto sobre el plano de la imagen, según el modelo de cámara estenopeica , viene dada por
donde son las coordenadas 3D de P relativas a un sistema de coordenadas centrado en la cámara, son las coordenadas de la imagen resultante y f es la distancia focal de la cámara para la que asumimos f > 0. Además, también asumimos que x 3 > 0 .
Para obtener la matriz de la cámara, la expresión anterior se reescribe en términos de coordenadas homogéneas. En lugar del vector 2D, consideramos el elemento proyectivo (un vector 3D) y, en lugar de la igualdad, consideramos la igualdad hasta la escala por un número distinto de cero, denotado . Primero, escribimos las coordenadas de la imagen homogénea como expresiones en las coordenadas 3D habituales.
Finalmente, también las coordenadas 3D se expresan en una representación homogénea y así aparece la matriz de la cámara:
¿Dónde está la matriz de la cámara, que aquí viene dada por
y la matriz de cámara correspondiente ahora se convierte en
El último paso es una consecuencia de ser en sí mismo un elemento proyectivo.
La matriz de cámara obtenida aquí puede parecer trivial en el sentido de que contiene muy pocos elementos distintos de cero. Esto depende en gran medida de los sistemas de coordenadas particulares que se hayan elegido para los puntos 3D y 2D. Sin embargo, en la práctica, son comunes otras formas de matrices de cámara, como se mostrará a continuación.
La matriz de la cámara derivada en la sección anterior tiene un espacio nulo que está abarcado por el vector
Esta es también la representación homogénea del punto 3D que tiene coordenadas (0,0,0), es decir, el "centro de la cámara" (también conocido como la pupila de entrada ; la posición del orificio de una cámara estenopeica ) está en O. Esto significa que el centro de la cámara (y solo este punto) no puede ser mapeado a un punto en el plano de la imagen por la cámara (o equivalentemente, se mapea a todos los puntos en la imagen ya que cada rayo en la imagen pasa por este punto).
Para cualquier otro punto 3D con , el resultado está bien definido y tiene la forma . Esto corresponde a un punto en el infinito en el plano de la imagen proyectiva (aunque, si el plano de la imagen se toma como un plano euclidiano , no existe ningún punto de intersección correspondiente).
La matriz de cámara derivada anteriormente se puede simplificar aún más si suponemos que f = 1 :
donde aquí denota una matriz identidad. Nótese que la matriz aquí se divide en una concatenación de una matriz y un vector tridimensional. La matriz de la cámara a veces se denomina forma canónica .
Hasta ahora todos los puntos del mundo 3D se han representado en un sistema de coordenadas centrado en la cámara , es decir, un sistema de coordenadas que tiene su origen en el centro de la cámara (la ubicación del orificio de una cámara estenopeica ). En la práctica, sin embargo, los puntos 3D se pueden representar en términos de coordenadas relativas a un sistema de coordenadas arbitrario (X1', X2', X3'). Suponiendo que los ejes de coordenadas de la cámara (X1, X2, X3) y los ejes (X1', X2', X3') son de tipo euclidiano (ortogonales e isotrópicos), existe una transformación euclidiana 3D única (rotación y traslación) entre los dos sistemas de coordenadas. En otras palabras, la cámara no está necesariamente en el origen mirando a lo largo del eje z .
Las dos operaciones de rotación y traslación de coordenadas 3D se pueden representar como dos matrices
donde es una matriz de rotación y es un vector de traslación tridimensional. Cuando la primera matriz se multiplica por la representación homogénea de un punto tridimensional, el resultado es la representación homogénea del punto rotado, y la segunda matriz realiza en su lugar una traslación. Al realizar las dos operaciones en secuencia, es decir, primero la rotación y luego la traslación (con el vector de traslación dado en el sistema de coordenadas ya rotado), se obtiene una matriz combinada de rotación y traslación.
Suponiendo que y son precisamente la rotación y las traslaciones que relacionan los dos sistemas de coordenadas (X1,X2,X3) y (X1',X2',X3') anteriores, esto implica que
donde es la representación homogénea del punto P en el sistema de coordenadas (X1',X2',X3').
Suponiendo también que la matriz de la cámara está dada por , el mapeo de las coordenadas en el sistema (X1, X2, X3) a las coordenadas de la imagen homogénea se convierte en
En consecuencia, la matriz de la cámara que relaciona los puntos en el sistema de coordenadas (X1', X2', X3') con las coordenadas de la imagen es
una concatenación de una matriz de rotación 3D y un vector de traslación tridimensional.
Este tipo de matriz de cámara se denomina matriz de cámara normalizada , supone que la longitud focal es 1 y que las coordenadas de la imagen se miden en un sistema de coordenadas donde el origen se encuentra en la intersección entre el eje X3 y el plano de la imagen y tiene las mismas unidades que el sistema de coordenadas 3D. Las coordenadas de la imagen resultantes se denominan coordenadas de imagen normalizadas .
Nuevamente, el espacio nulo de la matriz de cámara normalizada, descrita anteriormente, está abarcado por el vector de 4 dimensiones
Éstas son también, de nuevo, las coordenadas del centro de la cámara, ahora relativas al sistema (X1',X2',X3'). Esto se puede ver aplicando primero la rotación y luego la traslación al vector tridimensional y el resultado es la representación homogénea de las coordenadas 3D (0,0,0).
Esto implica que el centro de la cámara (en su representación homogénea) se encuentra en el espacio nulo de la matriz de la cámara, siempre que esté representado en términos de coordenadas 3D relativas al mismo sistema de coordenadas al que se refiere la matriz de la cámara.
La matriz de cámara normalizada ahora se puede escribir como
donde son las coordenadas 3D de la cámara relativas al sistema (X1',X2',X3').
Dado el mapeo producido por una matriz de cámara normalizada, las coordenadas de imagen normalizadas resultantes se pueden transformar mediante una homografía 2D arbitraria . Esto incluye traslaciones y rotaciones 2D, así como escalas (isotrópicas y anisotrópicas), pero también transformaciones de perspectiva 2D generales . Dicha transformación se puede representar como una matriz que mapea las coordenadas de imagen normalizadas homogéneas a las coordenadas de imagen transformadas homogéneas :
Insertando la expresión anterior para las coordenadas de la imagen normalizada en términos de las coordenadas 3D se obtiene
Esto produce la forma más general de matriz de cámara.