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 2D | Ejemplo (imagen original y transformada) | Matriz de transformación | |
---|---|---|---|
Traslación | 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 |
| 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 |
| 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 | φ 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:
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:
| ||
Rotación |
| θ 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 | Ejemplo | Matriz de transformación | |
---|---|---|---|
Inclinación |
| 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 3D | Matriz de transformación | ||
---|---|---|---|
Traslación | Traslación en cantidades de tx, ty y tz en las direcciones x, y y z, respectivamente:
| ||
Escala | Escala por factor de escala sx, sy y sz en las direcciones x, y y z respectivamente:
| ||
Sesgo | Sesgo en el plano y-z:
de modo que
| Sesgo en el plano x-z:
de modo que
| Sesgo en el plano x-y:
de modo que
|
Reflexión | Reflexión a lo largo del plano y-z, negando la coordenada x:
| Reflexión a lo largo del plano x-z, negando la coordenada y:
| Reflexión a lo largo del plano x-y, negando la coordenada z:
|
Rotación | Rotación en el plano y-z, por el ángulo θx sobre el eje x, en grados:
| Rotación en el plano x-z, por el ángulo θx sobre el eje y, en grados:
| Rotación en el plano x-y, por el ángulo θx sobre el eje z, en grados:
|
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
imwarp
| fitgeotform2d
| affinetform2d
| affinetform3d
| projtform2d