transformPointsForward
Aplicar transformación geométrica directa
Sintaxis
Descripción
Ejemplos
Aplicar transformación directa de una transformación geométrica 2D
Defina una matriz de transformación geométrica de 3 por 3. Este ejemplo especifica una matriz correspondiente a una transformación afín que consiste en el corte vertical y el estiramiento horizontal.
A = [1.5 0 0; 0.8 1 0; 0 0 1];
Cree un objeto affinetform2d
a partir de la matriz de transformación.
tform = affinetform2d(A);
Aplique la transformación geométrica directa a un punto de entrada.
u = 5; v = 10; [x,y] = transformPointsForward(tform,u,v)
x = 7.5000
y = 14
Transformar los arreglos de coordenadas usando una transformación 2D personalizada
Especifique los vectores de coordenadas x e y de cinco puntos que desea transformar.
x = [10 11 15 2 2]; y = [15 32 34 7 10];
Defina las funciones de asignación inversa y directa. Ambas funciones aceptan y devuelven puntos en formato empaquetado (x,y).
inversefn = @(c) [c(:,1).^2,sqrt(c(:,2))]; forwardfn = @(c) [sqrt(c(:,1)),c(:,2).^2];
Cree un objeto de transformación geométrica 2D, tform
, que almacene la función de asignación inversa y la función de asignación directa opcional.
tform = geometricTransform2d(inversefn,forwardfn)
tform = geometricTransform2d with properties: InverseFcn: @(c)[c(:,1).^2,sqrt(c(:,2))] ForwardFcn: @(c)[sqrt(c(:,1)),c(:,2).^2] Dimensionality: 2
Aplique la transformación geométrica inversa a los puntos de entrada.
[u,v] = transformPointsInverse(tform,x,y)
u = 1×5
100 121 225 4 4
v = 1×5
3.8730 5.6569 5.8310 2.6458 3.1623
Aplique la transformación geométrica directa a los puntos transformados u
y v
.
[x,y] = transformPointsForward(tform,u,v)
x = 1×5
10 11 15 2 2
y = 1×5
15.0000 32.0000 34.0000 7.0000 10.0000
Aplicar transformación directa de una transformación geométrica 3D
Defina una transformación geométrica rígida que conste únicamente de traslación.
t = [10 20.5 15]; tform = transltform3d(t);
Aplique la transformación geométrica directa a un punto de entrada.
u = 1; v = 1; w = 1.01; [x,y,z] = transformPointsForward(tform,u,v,w)
x = 11
y = 21.5000
z = 16.0100
Transformar arreglos de coordenadas usando una transformación 3D personalizada
Especifique los vectores de coordenadas x, y y z de los cinco puntos que desea transformar.
x = [3 5 7 9 11]; y = [2 4 6 8 10]; z = [5 9 13 17 21];
Defina las funciones de asignación inversa y directa que acepten y devuelvan puntos en formato empaquetado (x,y,z).
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, tform
, que almacene estas funciones de asignación inversa y directa.
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 3D 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 directa a los puntos transformados u
, v
y w
.
[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
Argumentos de entrada
tform
— Transformación geométrica
objeto de transformación geométrica
Transformación geométrica, especificada como un objeto de transformación geométrica que aparece en la tabla.
Objeto de transformación geométrica | Descripción |
---|---|
Transformaciones geométricas lineales 2D | |
transltform2d | Transformación de traslación |
rigidtform2d | Transformación rígida: traslación y rotación |
simtform2d | Transformación de similitud: traslación, rotación y escalado isotrópico |
affinetform2d | Transformación afín: traslación, rotación, escalado anisotrópico, reflexión y cizallado |
projtform2d | Transformación proyectiva |
Transformaciones geométricas lineales 3D | |
transltform3d | Transformación de traslación |
rigidtform3d | Transformación rígida: traslación y rotación |
simtform3d | Transformación de similitud: traslación, rotación y escalado isotrópico |
affinetform3d | Transformación afín: traslación, rotación, escalado anisotrópico, reflexión y cizallado |
Transformaciones geométricas no lineales | |
geometricTransform2d | Transformación geométrica 2D personalizada usando funciones de asignación por puntos |
geometricTransform3d | Transformación geométrica 3D personalizada usando funciones de asignación por puntos |
Nota
También puede especificar tform
como un objeto de tipo rigid2d
, rigid3d
, affine2d
, affine3d
o projective2d
. No obstante, estos objetos no están recomendados. Para obtener más información, consulte Historial de versiones.
u
— Coordenadas x de puntos que desea transformar
Arreglo numérico de m por n o m por n por p
Coordenadas x de puntos que desea transformar, especificadas como arreglo numérico de m por n o m por n por p. El número de dimensiones de u
coincide con la dimensionalidad de tform
.
Tipos de datos: single
| double
v
— Coordenadas y de puntos que desea transformar
Arreglo numérico de m por n o m por n por p
Coordenadas y de puntos que desea transformar, especificadas como arreglo numérico de m por n o m por n por p. El tamaño de v
debe coincidir con el tamaño de u
.
Tipos de datos: single
| double
w
— Coordenadas z de puntos que desea transformar
Arreglo numérico de m por n por p
U
— Coordenadas de puntos que desea transformar
Arreglo numérico de l por 2 o l por 3
Coordenadas de puntos que desea transformar, especificadas como arreglo numérico de l por 2 o l por 3. El número de columnas de U
coincide con la dimensionalidad de tform
.
La primera columna incluye la coordenada x de cada punto que desea transformar y la segunda columna, la coordenada y. Si tform
representa una transformación geométrica 3D, U
tiene un tamaño de l por 3 y la tercera columna incluye la coordenada z de los puntos que desea transformar.
Tipos de datos: single
| double
Argumentos de salida
x
— Coordenadas x de puntos después de la transformación
Arreglo numérico de m por n o m por n por p
Coordenadas x de puntos después de la transformación, devueltas como arreglo numérico de m por n o m por n por p. El número de dimensiones de x
coincide con la dimensionalidad de tform
.
Tipos de datos: single
| double
y
— Coordenadas y de puntos después de la transformación
Arreglo numérico de m por n o m por n por p
Coordenadas y de puntos después de la transformación, devueltas como arreglo numérico de m por n o m por n por p. El tamaño de y
coincide con el tamaño de x
.
Tipos de datos: single
| double
z
— Coordenadas z de puntos después de la transformación
Arreglo numérico de m por n por p
Coordenadas z de puntos después de la transformación, devueltas como arreglo numérico de m por n por p. El tamaño de z
coincide con el tamaño de x
.
Tipos de datos: single
| double
X
— Coordenadas de puntos después de la transformación
Arreglo numérico
Coordenadas de puntos después de la transformación, devueltas como arreglo numérico. El tamaño de X
coincide con el tamaño de U
.
La primera columna incluye la coordenada x de cada punto después de la transformación y la segunda columna, la coordenada y. Si tform
representa una transformación geométrica 3D, la tercera columna incluye la coordenada z de los puntos después de la transformación.
Tipos de datos: single
| double
Historial de versiones
Introducido en R2013aR2022b: Compatibilidad de los nuevos objetos de transformación geométrica
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. En consecuencia, ahora puede especificar tform
como un objeto de transformación geométrica que utiliza la convención de premultiplicación, como por ejemplo un objeto affinetform2d
.
Antes, para las transformaciones geométricas lineales, se especificaba tform
como objeto de transformación geométrica que usa una convención de posmultiplicación, como un objeto affine2d
. Aunque transformPointsForward
sigue aceptando objetos que usan la convención de posmultiplicación, estos objetos no están recomendados. Para obtener más información, consulte Migrate Geometric Transformations to Premultiply Convention.
No hay cambios con respecto a la aceptación de transformaciones geométricas no lineales.
Consulte también
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)