transformPointsInverse
Aplicar la transformación geométrica inversa
Sintaxis
Descripción
Ejemplos
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 inversa a un punto.
x = 7.5; y = 14; [u,v] = transformPointsInverse(tform,x,y)
u = 5
v = 10
Especifique las coordenadas empaquetadas (x,y) de cinco puntos de entrada. Las coordenadas empaquetadas se almacenan en una matriz de 5 por 2, donde la coordenada x de cada punto está en la primera columna, y la coordenada y de cada punto está en la segunda columna.
XY = [10 15;11 32;15 34;2 7;2 10];
Defina la función de aplicación inversa. La función acepta y devuelve puntos en formato empaquetado (x,y).
inversefn = @(c) [c(:,1)+c(:,2),c(:,1)-c(:,2)]
inversefn = function_handle with value:
@(c)[c(:,1)+c(:,2),c(:,1)-c(:,2)]
Cree un objeto de transformación geométrica 2D, tform
, que almacene la función de aplicación inversa.
tform = geometricTransform2d(inversefn)
tform = geometricTransform2d with properties: InverseFcn: @(c)[c(:,1)+c(:,2),c(:,1)-c(:,2)] ForwardFcn: [] Dimensionality: 2
Aplique la transformación geométrica inversa a los puntos de entrada.
UV = transformPointsInverse(tform,XY)
UV = 5×2
25 -5
43 -21
49 -19
9 -5
12 -8
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.
x = 11; y = 21.5; z = 16.01; [u,v,w] = transformPointsInverse(tform,x,y,z)
u = 1
v = 1
w = 1.0100
Especifique las coordenadas empaquetadas (x,y,z) de cinco puntos de entrada. Las coordenadas empaquetadas se almacenan como una matriz de 5 por 3, donde la primera, la segunda y la tercera columnas contienen las coordenadas x, y y z, respectivamente.
XYZ = [5 25 20;10 5 25;15 10 5;20 15 10;25 20 15];
Defina una función de aplicación inversa que acepte y devuelva puntos en formato empaquetado (x,y,z).
inverseFcn = @(c) [c(:,1)+c(:,2),c(:,1)-c(:,2),c(:,3).^2];
Cree un objeto de transformación geométrica 3D, tform
, que almacene esta función de aplicación inversa.
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 3D 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
Argumentos de entrada
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 |
LocalWeightedMeanTransformation2D | Transformación 2D de las medias ponderadas locales |
PiecewiseLinearTransformation2D | Transformación lineal por partes 2D |
PolynomialTransformation2D | Transformación polinómica 2D |
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.
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 x
coincide con la dimensionalidad de tform
.
Tipos de datos: single
| double
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 y
debe coincidir con el tamaño de x
.
Tipos de datos: single
| double
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 X
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, X
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
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 u
coincide con la dimensionalidad de tform
.
Tipos de datos: single
| double
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 v
coincide con el tamaño de u
.
Tipos de datos: single
| double
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 w
coincide con el tamaño de u
.
Tipos de datos: single
| double
Coordenadas de puntos después de la transformación, devueltas como arreglo numérico. El tamaño de U
coincide con el tamaño de X
.
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 R2013aA 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
.
A pesar de que transformPointsInverse
todavía admite objetos que utilizan la convención de posmultiplicación, como por ejemplo un objeto affine2d
, estos objetos no están recomendados. Puede simplificar sus flujos de transformación geométrica cambiando a los nuevos objetos de transformación geométrica de premultiplicación. Para obtener más información, consulte Migrate Geometric Transformations to Premultiply Convention.
No hay cambios con respecto a la aceptación de objetos de transformación geométrica no lineal.
Consulte también
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- 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)