Main Content

rigid3d

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

Desde R2020a

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

Descripción

Un objeto rigid3d almacena información sobre una transformación geométrica rígida 3D y permite transformaciones directas e inversas.

Creación

Descripción

tform = rigid3d crea un objeto rigid3d predeterminado que se corresponde con una transformación identidad.

tform = rigid3d(t) establece la propiedad T como la matriz de transformación rígida 3D especificada t.

ejemplo

tform = rigid3d(rot,trans) establece las propiedades Rotation y Translation como la matriz de rotación especificada rot y el vector de traslación trans, respectivamente.

Propiedades

expandir todo

Transformación rígida directa, especificada como matriz numérica de 4 por 4. Esta matriz tiene que ser una transformación homogénea que satisfaga la convención de la posmultiplicación dada por:

[xyz1]=[uvw1]*T

T tiene la forma de

[r11r12r130;...r21r22r230;...r31r32r330;...txtytz1];

Tipos de datos: single | double

Componente de rotación de la transformación, especificado como matriz numérica de 3 por 3. Esta matriz de rotación satisface la convención de la posmultiplicación que da:

[xyz]=[uvw]*R

Tipos de datos: single | double

Componente de traslación de la transformación, especificado como vector fila numérico de 3 elementos. Este vector de traslación satisface la convención que da

[xyz]=[uvw]+t

Tipos de datos: single | double

Esta propiedad o parámetro es de solo lectura.

Dimensionalidad de transformación geométrica, especificada como el valor 3.

Funciones del objeto

invertInvertir la transformación geométrica
outputLimitsFind output spatial limits given input spatial limits
transformPointsForwardApply forward geometric transformation
transformPointsInverseApply inverse geometric transformation

Ejemplos

contraer todo

Especifique un ángulo de rotación en grados y cree una matriz de rotación de 3 por 3.

theta = 30;
rot = [ cosd(theta) sind(theta) 0; ...
       -sind(theta) cosd(theta) 0; ...
       0 0 1];

Especifique la cantidad de traslación horizontal, vertical y de profundidad respectivamente.

trans = [2 3 4];

Cree un objeto rigid3d que realice la rotación y la traslación.

tform = rigid3d(rot,trans)
tform = 
  rigid3d with properties:

       Rotation: [3x3 double]
    Translation: [2 3 4]

Capacidades ampliadas

Historial de versiones

Introducido en R2020a

contraer 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 rigid3d porque utiliza la convención de la posmultiplicación. Aunque no está previsto eliminar el objeto rigid3d por el momento, puede simplificar sus flujos de transformación geométrica cambiando al objeto rigidtform3d, 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 rigid3d a rigidtform3d.

  • Especifique la matriz de transformación como la traspuesta de T o la matriz de rotación como la traspuesta de Rotation. T es o bien el valor de la propiedad T del objeto rigid3d o bien la matriz de transformación usada para crear el objeto rigid3d. Rotation es o bien el valor de la propiedad Rotation del objeto rigid3d o bien la matriz de rotación usada para crear el objeto rigid3d.

Uso no recomendadoReemplazo recomendado

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

T = [1 0 0 0; 0 1 0 0; 0 0 1 0; 5 10 -5 1];
tformPost = rigid3d(T);

Este ejemplo crea un objeto rigidtform3d a partir de la traspuesta de la matriz T.

T = [1 0 0 0; 0 1 0 0; 0 0 1 0; 5 10 -5 1];
tform = rigidtform3d(T');

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

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

Este ejemplo crea un objeto rigid3d a partir de una matriz de rotación rot en la convención de la posmultiplicación y una traslación trans.

theta = 30;
rot = [ cosd(theta) sind(theta) 0; ...
       -sind(theta) cosd(theta) 0; ...
        0 0 1];
trans = [5 10 -5];
tformPost = rigid3d(rot,trans);

Este ejemplo crea un objeto rigidtform3d a partir de la traspuesta de la matriz de rotación rot y una traslación trans.

theta = 30;
rot = [ cosd(theta) sind(theta) 0; ...
       -sind(theta) cosd(theta) 0; ...
        0 0 1];
trans = [5 10 -5];
tform = rigidtform3d(rot',trans);