Main Content

rigidtform3d

Transformación geométrica rígida 3D

Desde R2022b

    Descripción

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

    Creación

    Puede crear un objeto rigidtform3d de los modos siguientes:

    • imregtform: estima una transformación geométrica que asigna una imagen variable a una imagen fija usando la optimización de similitud.

    • Funciones de otras toolboxes que devuelven transformaciones geométricas, incluyendo, entre otras, las siguientes:

    • La función rigidtform3d aquí descrita.

    Descripción

    tform = rigidtform3d crea un objeto rigidtform3d que realiza una transformación identidad.

    tform = rigidtform3d(R,Translation) crea un objeto rigidtform3d que realiza una transformación rígida basada en los valores especificados de las propiedades R y Translation. Estas propiedades indican la matriz de rotación y las cantidades de traslación en las direcciones x-, y- y z.

    tform = rigidtform3d(eulerAngles,Translation) crea un objeto rigidtform3d que realiza una transformación rígida basada en ángulos de Euler y el valor especificado de la propiedad Translation.

    ejemplo

    tform = rigidtform3d(A) crea un objeto rigidtform3d y establece la propiedad A como la matriz de transformación rígida 3D especificada.

    tform = rigidtform3d(tformIn) crea un objeto rigidtform3d a partir de otro objeto de transformación geométrica, tformIn, que representa una transformación geométrica rígida 3D válida.

    Argumentos de entrada

    expandir todo

    Ángulos de Euler en orden x,y,z en grados, especificados como vector numérico de 3 elementos con forma [rx ry rz]. Los ángulos de Euler establecen la propiedad R como un producto con tres matrices de rotación según lo siguiente:

     Rx = [1 0 0; 0 cosd(rx) -sind(rx); 0 sind(rx) cosd(rx)];
     Ry = [cosd(ry) 0 sind(ry); 0 1 0; -sind(ry) 0 cosd(ry)];
     Rz = [cosd(rz) -sind(rz) 0; sind(rz) cosd(rz) 0; 0 0 1];
      R = Rz*Ry*Rx;

    Tipos de datos: double | single

    Transformación geométrica rígida 3D, especificada como objeto affinetform3d, rigidtform3d, simtform3d o transltform3d.

    Propiedades

    expandir todo

    Transformación rígida 3D directa, especificada como matriz numérica de 4 por 4. Al crear el objeto, también puede especificar A como matriz numérica de 3 por 4. En este caso, el objeto concatena el vector fila [0 0 0 1] al final de la matriz, formando una matriz de 4 por 4. El valor predeterminado de A es la matriz identidad.

    La matriz A transforma el punto (u, v, w) en el espacio de coordenadas de entrada en el punto (, x, y, z) en el espacio de coordenadas de salida utilizando la convención:

    [xyz1]=Α×[uvw1]

    En una transformación rígida, A tiene la forma:

    Α=[R(1,1)R(1,2)R(1,3)txR(2,1)R(2,2)R(2,3)tyR(3,1)R(3,2)R(3,3)tz0001]

    donde cada elemento R(i,j) es elemento (i, j) de la matriz de rotación especificada por la propiedad R. tx, ty y tz son la cantidad de traslación en las direcciones x-, y- y z, respectivamente, y corresponden a la propiedad Translation.

    Tipos de datos: double | single

    Matriz de rotación, especificada como matriz numérica de 3 por 3. La matriz de rotación tiene el efecto de rotación por el eje z primero, después por el eje y, y finalmente por el eje x.

    Cantidad de traslación, especificada como vector numérico de 3 elementos con forma [tx ty tz].

    Tipos de datos: double | single

    Esta propiedad o parámetro es de solo lectura.

    Dimensionalidad de la transformación geométrica para puntos tanto de entrada como de salida, especificada como 3.

    Tipos de datos: double

    Funciones del objeto

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

    Ejemplos

    contraer todo

    Especifique ángulos de Euler y cantidades de traslación.

    angles = [30 0 90];
    translation = [10 20.5 15];

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

    tform = rigidtform3d(angles,translation)
    tform = 
      rigidtform3d with properties:
    
        Dimensionality: 3
           Translation: [10 20.5000 15]
                     R: [3x3 double]
    
                     A: [     0   -0.8660    0.5000   10.0000
                         1.0000         0         0   20.5000
                              0    0.5000    0.8660   15.0000
                              0         0         0    1.0000]
    
    

    Examine el valor de la propiedad A.

    tform.A
    ans = 4×4
    
             0   -0.8660    0.5000   10.0000
        1.0000         0         0   20.5000
             0    0.5000    0.8660   15.0000
             0         0         0    1.0000
    
    

    Capacidades ampliadas

    Historial de versiones

    Introducido en R2022b

    expandir todo