Main Content

affine3d

(No recomendado) Transformación geométrica afín 3D mediante la convención de la posmultiplicación

No se recomienda el uso de affine3d. Utilice el objeto affinetform3d en su lugar. Para obtener más información, consulte Consideraciones relativas a la compatibilidad.

Descripción

Un objeto affine3d almacena información sobre una transformación geométrica afín 3D y permite las transformaciones directas e inversas.

Creación

Descripción

tform = affine3d crea un objeto affine3d con valores predeterminados de propiedad que se corresponden con la transformación identidad.

ejemplo

tform = affine3d(t) establece la propiedad T como la matriz de transformación afín 3D válida especificada t.

Propiedades

expandir todo

Transformación afín 3D directa, especificada como matriz numérica de 4 por 4 no única.

La matriz T utiliza la convención:

[x y z 1] = [u v w 1] * T

en la que T tiene la forma:

 [a b c 0;
  d e f 0;
  g h i 0;
  j k l 1];

El valor predeterminado de T es la transformación identidad.

Tipos de datos: double | single

Describe la dimensionalidad de la transformación geométrica tanto para puntos de entrada como de salida, especificada como el valor 3.

Funciones del objeto

invertInvertir la transformación geométrica
isRigidDetermine if geometric transformation is rigid transformation
isSimilarityDetermine if geometric transformation is similarity transformation
isTranslationDetermine if geometric transformation is pure translation
outputLimitsFind output spatial limits given input spatial limits
transformPointsForwardApply forward geometric transformation
transformPointsInverseApply inverse geometric transformation

Ejemplos

contraer todo

Cree un objeto affine3d que permita escalar una imagen 3D mediante un factor diferente en cada dimensión.

Sx = 1.2;
Sy = 1.6;
Sz = 2.4;
T = [Sx 0 0 0; 0 Sy 0 0; 0 0 Sz 0; 0 0 0 1];
tform = affine3d(T)
tform = 
  affine3d with properties:

                 T: [4x4 double]
    Dimensionality: 3

Examine el valor de la propiedad T.

tform.T
ans = 4×4

    1.2000         0         0         0
         0    1.6000         0         0
         0         0    2.4000         0
         0         0         0    1.0000

Capacidades ampliadas

Historial de versiones

Introducido en R2013a

expandir todo

R2022b: No recomendado

A partir de la versión R2022b, la mayoría de funciones de Image Processing Toolbox™ crean y realizan transformaciones geométricas utilizando la convención de la premultiplicación. Por lo tanto, no se recomienda el objeto affine3d porque utiliza la convención de la posmultiplicación. Aunque no está previsto eliminar el objeto affine3d por el momento, puede simplificar sus flujos de transformación geométrica cambiando al objeto affinetform3d, que es compatible con la convención de la premultiplicación. Para obtener más información, consulte Migrate Geometric Transformations to Premultiply Convention.

Para actualizar su código:

  • Cambie las instancias del nombre de la función affine3d a affinetform3d.

  • Especifique la matriz de transformación como la traspuesta de la matriz T, donde T es o bien el valor de la propiedad T del objeto affine3d o bien la matriz de transformación usada para crear el objeto affine3d.

Uso no recomendadoReemplazo recomendado

Este ejemplo crea un objeto affine3d a partir de la matriz de transformación T en la convención de la posmultiplicación.

T = [2 0 0 0; 0 2 0 0; 0 0 4 0; 5 10 -5 1];
tformPost = affine3d(T);

Este ejemplo crea un objeto affinetform3d a partir de la traspuesta de la matriz de transformación T.

T = [2 0 0 0; 0 2 0 0; 0 0 4 0; 5 10 -5 1];
A = T';
tform = affinetform3d(A);

Este ejemplo empieza con un objeto affine3d llamado tformPost y crea un objeto affinetform3d a partir de la traspuesta de la propiedad T de tformPost.

T = tformPost.T;
tform = affinetform3d(T');