Nota: Eso depende de las coordenadas que use en la imagen redimensionada. Supongo que está utilizando un sistema basado en cero (como C
, a diferencia Matlab
) y 0 se transforma en 0. Además, supongo que no tiene sesgo entre las coordenadas. Si tienes un sesgo, también se debe multiplicar
Respuesta corta : suponiendo que está utilizando un sistema de coordenadas en el que , sí, debe multiplicar por 0.5.tu′= u2, v′= v2unX, unay, u0 0, v0 0
Respuesta detallada La función que convierte un punto en coordenadas mundiales en coordenadas de cámara es:PAG( x , y, z, 1 ) - > ( u , v , S)
⎛⎝⎜unX0 00 00 0uny0 0tu0 0v0 01⎞⎠⎟⎛⎝⎜⎜⎜R11R21R310 0R12R22R320 0R13R23R330 0TXTyTz1⎞⎠⎟⎟⎟⎛⎝⎜⎜⎜Xyz1⎞⎠⎟⎟⎟
Donde , ya que las coordenadas son homogéneas.(u,v,S)−>(u/S,v/S,1)
En resumen, esto se puede escribir como
donde es el producto de las dos matrices mencionadas anteriormente, y es el i ' º fila de la matriz . (El producto es producto escalar).u=m1Pm3P,v=m2Pm3P
MmiM
Se puede pensar en cambiar el tamaño de la imagen:
u′=u/2,v′=v/2
Así
u′=(1/2)M1PM3Pv′=(1/2)M2PM3P
Convertir de nuevo a forma matricial nos da:
⎛⎝⎜0.50000.50001⎞⎠⎟⎛⎝⎜ax000ay0u0v01⎞⎠⎟⎛⎝⎜⎜⎜R11R21R310R12R22R320R13R23R330TxTyTz1⎞⎠⎟⎟⎟⎛⎝⎜⎜⎜xyz1⎞⎠⎟⎟⎟
Que es igual a
⎛⎝⎜0.5 aX0 00 00 00.5 ay0 00.5 u0 00.5 v0 01⎞⎠⎟⎛⎝⎜⎜⎜R11R21R310 0R12R22R320 0R13R23R330 0TXTyTz1⎞⎠⎟⎟⎟⎛⎝⎜⎜⎜Xyz1⎞⎠⎟⎟⎟
Para obtener información adicional, consulte Forsyth , capítulo 3 - Calibración de cámara geométrica.
Andrey mencionó que su solución asume que 0 se transforma a 0. Si está utilizando coordenadas de píxeles, esto probablemente no sea cierto cuando cambie el tamaño de la imagen. La única suposición que realmente necesita hacer es que su transformación de imagen se puede representar mediante una matriz de 3x3 (como demostró Andrey). Para actualizar la matriz de su cámara, puede premultiplicarla por la matriz que representa la transformación de su imagen.
Como ejemplo, supongamos que necesita cambiar la resolución de una imagen por un factor y está utilizando 0 coordenadas de píxeles indexadas. Tus coordenadas son transformadas por las relaciones2norte
esto puede ser representado por la matriz
entonces tu matriz de cámara final sería
fuente