Main Content

Representación matricial de transformaciones geométricas

Puede representar una transformación geométrica lineal como una matriz numérica. Cada tipo de transformación, como la traslación, el escalado, la rotación y la reflexión se define utilizando una matriz cuyos elementos siguen un patrón específico. Puede combinar varias transformaciones con una combinación de las matrices que representan las transformaciones. Para obtener más información, consulte Create Composite 2-D Affine Transformations.

Transformaciones afines 2D

En la tabla siguiente, se enumeran transformaciones afines 2D utilizando la matriz de transformación para definirlas. En las transformaciones afines 2D, la última fila deberá ser [0 0 1].

  • Utilice combinaciones de matrices de traslación 2D para crear un objeto transltform2d que represente una transformación de traslación.

  • Utilice combinaciones de matrices de rotación y traslación 2D para crear un objeto rigidtform2d que represente una transformación rígida no reflectiva.

  • Utilice combinaciones de matrices de escalado, rotación y traslación 2D para crear un objeto simtform2d que represente una transformación de similitud no reflectiva.

  • Utilice cualquier combinación de matrices de transformación 2D para crear un objeto affinetform2d que represente una transformación afín general.

Transformación afín 2DEjemplo (imagen original y transformada)Matriz de transformación
Traslación

Original and translated checkerboard images. The axes limits indicate that the image has been translated horizontally and vertically.

[10tx01ty001]

tx especifica el desplazamiento a lo largo del eje x.

ty especifica el desplazamiento a lo largo del eje y.

Para obtener más información sobre las coordenadas de los píxeles, consulte Sistemas de coordenadas de imagen.

Escala

Original and scaled checkerboard image. The scaled image appears stretched in the horizontal direction.

[sx000sy0001]

sx especifica el factor de escala a lo largo del eje x.

sy especifica el factor de escala a lo largo del eje y.

Sesgo

Original and sheared checkerboard image. The sheared image appears stretched along the horizontal axis.

[1shx0shy10001]

shx especifica el factor de sesgo a lo largo del eje x.

shy especifica el factor de sesgo a lo largo del eje y.

Reflexión

Original and horizontally reflected checkerboard image

[cosd(2φ)sind(2φ)0sind(2φ)cosd(2φ)0001]

φ especifica el ángulo del eje de reflexión, en grados.

Dos reflexiones comunes son la vertical y la horizontal. La reflexión vertical es la reflexión sobre el eje x, de modo que φ es 0 y la matriz de reflexión se simplifica a:

[1 0 0; 0 -1 0; 0 0 1].

La reflexión vertical es la reflexión sobre el eje y, de modo que φ es 90 y la matriz de reflexión se simplifica a:

[-1 0 0; 0 1 0; 0 0 1]

Rotación

Original and rotated checkerboard image. The transformed image has been rotated approximately 30 degrees clockwise.

[cosd(θ)sind(θ)0sind(θ)cosd(θ)0001]

θ especifica el ángulo de rotación sobre el origen, en grados.

Transformaciones proyectivas 2D

La transformación proyectiva permite que se incline el plano de la imagen. Las líneas paralelas convergen hacia un punto de fuga creando una apariencia de profundidad.

La transformación es una matriz de 3 por 3. A diferencia de las transformaciones afines, no hay restricciones en la última fila de la matriz de transformación. Utilice cualquier combinación de matrices de transformación proyectiva y afín 2D para crear un objeto projtform2d que represente una transformación proyectiva general.

Transformación proyectiva 2D EjemploMatriz de transformación
Inclinación

Original and projected checkerboard image. The transformed image appears tilted into a different plane.

[100010EF1]

E y F influyen en el punto de fuga.

Cuando E y F son elevados, el punto de fuga es más cercano al origen y, por lo tanto, las líneas paralelas convergen con mayor rapidez.

Transformaciones afines 3D

En la tabla siguiente, se enumeran transformaciones afines 3D utilizando la matriz de transformación para definirlas. En el caso de transformaciones afines 3D, hay múltiples matrices, en función de cómo desee rotar o sesgar la imagen. En las transformaciones afines 3D, la última fila deberá ser [0 0 0 1].

  • Utilice combinaciones de matrices de traslación 3D para crear un objeto transltform3d que represente una transformación de traslación.

  • Utilice combinaciones de matrices de rotación y traslación 3D para crear un objeto rigidtform3d que represente una transformación rígida no reflectiva.

  • Utilice combinaciones de matrices de escalado, rotación y traslación 3D para crear un objeto simtform3d que represente una transformación de similitud no reflectiva.

  • Utilice cualquier combinación de matrices de transformación 3D para crear un objeto affinetform3d que represente una transformación afín general.

Transformación afín 3DMatriz de transformación
Traslación

Traslación en cantidades de tx, ty y tz en las direcciones x, y y z, respectivamente:

[100tx010ty001tz0001]

Escala

Escala por factor de escala sx, sy y sz en las direcciones x, y y z respectivamente:

[sx0000sy0000sz00001]

Sesgo

Sesgo en el plano y-z:

[1000shxy100shxz0100001]

de modo que

x'=xy'=y+shxyxz'=z+shxzx

Sesgo en el plano x-z:

[1shyx0001000shyz100001]

de modo que

x'=x+shyxyy'=yz'=z+shyzy

Sesgo en el plano x-y:

[10shzx001shzy000100001]

de modo que

x'=x+shzxzy'=y+shzyzz'=z

Reflexión

Reflexión a lo largo del plano y-z, negando la coordenada x:

[1000010000100001]

Reflexión a lo largo del plano x-z, negando la coordenada y:

[1000010000100001]

Reflexión a lo largo del plano x-y, negando la coordenada z:

[1000010000100001]

Rotación

Rotación en el plano y-z, por el ángulo θx sobre el eje x, en grados:

[10000cosd(θx)sind(θx)00sind(θx)cosd(θx)00001]

Rotación en el plano x-z, por el ángulo θx sobre el eje y, en grados:

[cosd(θy)0sind(θy)00100sind(θy)0cosd(θy)00001]

Rotación en el plano x-y, por el ángulo θx sobre el eje z, en grados:

[cosd(θz)sind(θz)00sind(θz)cosd(θz)0000100001]

Transformaciones proyectivas 3D y multidimensionales

La función imwarp no es compatible con las transformaciones proyectivas 3D ni las transformaciones proyectivas y afines multidimensionales. En su lugar, puede crear una estructura de transformación espacial a partir de una matriz de transformación geométrica utilizando la función maketform. A continuación, aplique la transformación a una imagen utilizando la función tformarray. Para obtener más información, consulte N-Dimensional Spatial Transformations.

Las dimensiones de la matriz de transformación deben ser (N+1) por (N+1). Las funciones maketform y tformarray utilizan la convención de matriz de posmultiplicación. Las matrices de transformación geométrica de la convención de posmultiplicación son la traspuesta de las matrices en la convención de premultiplicación. Por lo tanto, en las matrices de transformación afín multidimensional, la última columna debe contener [zeros(N,1); 1] y no hay restricciones en los valores de la última fila.

Consulte también

| | | |

Ejemplos relacionados

Más acerca de