Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

geometricTransform3d

objeto de transformación geométrica 3-D

Descripción

Un objeto define una transformación geométrica 3-D personalizada mediante funciones de asignación de puntos.geometricTransform3d

Creación

Descripción

ejemplo

tform = geometricTransform3d(inverseFcn) crea un objeto y establece el valor de la propiedad de función de correlación inversa,geometricTransform3d InverseFcn Para.inverseFcn

tform = geometricTransform3d(inverseFcn,forwardFcn) también establece el valor de la propiedad de función de mapeo Forward, ForwardFcn Para.forwardFcn

Propiedades

expandir todo

Función de correlación inversa, especificada como un manejador de funciones. La función debe aceptar y devolver las coordenadas como una matriz numérica de-por-3 que representa las coordenadas empaquetadas (,,) de los puntos.nxyzn

Para obtener más información acerca de los identificadores de función, vea.Crear identificador de función (MATLAB)

Ejemplo: ifcn = @(xyz) [xyz(:,1).^2,xyz(:,2).^2,xyz(:,3).^2];

Función de mapeo Forward, especificada como un manejador de funciones. La función debe aceptar y devolver las coordenadas como una matriz numérica de-por-3 que representa las coordenadas empaquetadas (,,) de los puntos.nxyzn

Para obtener más información acerca de los identificadores de función, vea.Crear identificador de función (MATLAB)

Ejemplo: ffcn = @(xyz) [sqrt(xyz(:,1)),sqrt(xyz(:,2)),sqrt(xyz(:,3))];

Funciones del objeto

transformPointsForwardAplicar la transformación geométrica hacia adelante
transformPointsInverseAplicar la transformación geométrica inversa

Ejemplos

contraer todo

Especifique las coordenadas empaquetadas (,,) de cinco puntos de entrada.xyz Las coordenadas empaquetadas se almacenan como una matriz de 5 por 3, donde la primera, segunda y tercera columnas contienen el-,-, y coordenadas, respectivamente.xy z-

XYZ = [5 25 20;10 5 25;15 10 5;20 15 10;25 20 15];

Defina una función de correlación inversa que acepte y devuelva puntos en formato empaquetado (,,).xyz

inverseFcn = @(c) [c(:,1)+c(:,2),c(:,1)-c(:,2),c(:,3).^2];

Crear un objeto de transformación geométrica 3-D, que almacena esta función de correlación inversa.tform

tform = geometricTransform3d(inverseFcn)
tform =    geometricTransform3d with properties:          InverseFcn: @(c)[c(:,1)+c(:,2),c(:,1)-c(:,2),c(:,3).^2]         ForwardFcn: []     Dimensionality: 3  

Aplique la transformación inversa de esta transformación geométrica 3-D a los puntos de entrada.

UVW = transformPointsInverse(tform,XYZ)
UVW = 5×3

    30   -20   400
    15     5   625
    25     5    25
    35     5   100
    45     5   225

Especifique los vectores de-,-y de coordenadas de cinco puntos que se transformarán.xyz

x = [3 5 7 9 11]; y = [2 4 6 8 10]; z = [5 9 13 17 21];

Defina las funciones de correlación inversa y forward que acepten y devuelvan puntos en formato empaquetado (,,).xyz

inverseFcn = @(c)[c(:,1).^2,c(:,2).^2,c(:,3).^2]; forwardFcn = @(c)[sqrt(c(:,1)),sqrt(c(:,2)),sqrt(c(:,3))];

Cree un objeto de transformación geométrica 3D, que almacena estas funciones de asignación inversa y de reenvío.tform

tform = geometricTransform3d(inverseFcn,forwardFcn)
tform =    geometricTransform3d with properties:          InverseFcn: @(c)[c(:,1).^2,c(:,2).^2,c(:,3).^2]         ForwardFcn: @(c)[sqrt(c(:,1)),sqrt(c(:,2)),sqrt(c(:,3))]     Dimensionality: 3  

Aplique la transformación inversa de esta transformación geométrica 3-D a los puntos de entrada.

[u,v,w] = transformPointsInverse(tform,x,y,z)
u = 1×5

     9    25    49    81   121

v = 1×5

     4    16    36    64   100

w = 1×5

    25    81   169   289   441

Aplique la transformación geométrica hacia delante a los puntos transformados, yuvw.

[x,y,z] = transformPointsForward(tform,u,v,w)
x = 1×5

     3     5     7     9    11

y = 1×5

     2     4     6     8    10

z = 1×5

     5     9    13    17    21

Defina una función de correlación inversa que realice la reflexión sobre el eje horizontal. La función debe aceptar y devolver las coordenadas empaquetadas (,,), donde las columnas primera, segunda y tercera contienen las coordenadas-,-, y-, respectivamente.xyzxyz

inverseFcn = @(xyz)[xyz(:,1),-xyz(:,2),xyz(:,3)];

Crear un objeto de transformación geométrica 3-D, que almacena esta función de correlación inversa.tform

tform = geometricTransform3d(inverseFcn)
tform =    geometricTransform3d with properties:          InverseFcn: @(xyz)[xyz(:,1),-xyz(:,2),xyz(:,3)]         ForwardFcn: []     Dimensionality: 3  

Cargue y visualice un volumen de RMN que se transformará.

s = load('mri'); mriVolume = squeeze(s.D);

Se utiliza para aplicar la transformación geométrica inversa al volumen de la resonancia magnética de entrada.imwarp

[mriVolumeTransformed] = imwarp(mriVolume,tform,'nearest','SmoothEdges',true);

Visualice los cortes de imagen desde el volumen de la RMN de entrada como montaje.

montage(mriVolume,'Size',[4 8],'BackgroundColor','w') title('Image Slices from 3-D MRI','FontSize',14)

Visualice los trozos de imagen del volumen de RMN transformado como un montaje. Los sectores de imagen transformados son el reflejo de los sectores de la imagen de entrada en el eje.x

montage(mriVolumeTransformed,'Size',[4 8],'BackgroundColor','w') title('Image Slices from Inverse Geometric Transformation of 3-D MRI','FontSize',14)

Introducido en R2018b