# transformPointsInverse

Apply inverse geometric transformation

## Syntax

``[u,v] = transformPointsInverse(tform,x,y)``
``[u,v,w] = transformPointsInverse(tform,x,y,z)``
``U = transformPointsInverse(tform,X)``

## Description

example

````[u,v] = transformPointsInverse(tform,x,y)` applies the inverse transformation of 2-D geometric transformation `tform` to the points specified by coordinates `x` and `y`.```
````[u,v,w] = transformPointsInverse(tform,x,y,z)` applies the inverse transformation of 3-D geometric transformation `tform` to the points specified by coordinates `x`, `y`, and `z`.```
````U = transformPointsInverse(tform,X)` applies the inverse transformation of `tform` to the input coordinate matrix `X` and returns the coordinate matrix `U`. `transformPointsInverse` maps the kth point `X`(k,:) to the point `U`(k,:).```

## Examples

collapse all

Define a 3-by-3 geometric transformation matrix. This example specifies a matrix for an affine transformation consisting of vertical shear and horizontal stretch.

`A = [1.5 0 0; 0.8 1 0; 0 0 1];`

Create an `affinetform2d` object from the transformation matrix.

`tform = affinetform2d(A);`

Apply the inverse geometric transformation to a point.

```x = 7.5; y = 14; [u,v] = transformPointsInverse(tform,x,y)```
```u = 5 ```
```v = 10 ```

Specify the packed (x,y) coordinates of five input points. The packed coordinates are stored in a 5-by-2 matrix, where the x-coordinate of each point is in the first column, and the y-coordinate of each point is in the second column.

`XY = [10 15;11 32;15 34;2 7;2 10];`

Define the inverse mapping function. The function accepts and returns points in packed (x,y) format.

`inversefn = @(c) [c(:,1)+c(:,2),c(:,1)-c(:,2)]`
```inversefn = function_handle with value: @(c)[c(:,1)+c(:,2),c(:,1)-c(:,2)] ```

Create a 2-D geometric transform object, `tform`, that stores the inverse mapping function.

`tform = geometricTransform2d(inversefn)`
```tform = geometricTransform2d with properties: InverseFcn: @(c)[c(:,1)+c(:,2),c(:,1)-c(:,2)] ForwardFcn: [] Dimensionality: 2 ```

Apply the inverse geometric transform to the input points.

`UV = transformPointsInverse(tform,XY)`
```UV = 5×2 25 -5 43 -21 49 -19 9 -5 12 -8 ```

Define a rigid geometric transformation consisting only of translation.

```t = [10 20.5 15]; tform = transltform3d(t);```

Apply the forward geometric transformation to an input point.

```x = 11; y = 21.5; z = 16.01; [u,v,w] = transformPointsInverse(tform,x,y,z)```
```u = 1 ```
```v = 1 ```
```w = 1.0100 ```

Specify the packed (x,y,z) coordinates of five input points. The packed coordinates are stored as a 5-by-3 matrix, where the first, second, and third columns contain the x-, y-, and z- coordinates,respectively.

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

Define an inverse mapping function that accepts and returns points in packed (x,y,z) format.

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

Create a 3-D geometric transformation object, `tform`, that stores this inverse mapping function.

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

Apply the inverse transformation of this 3-D geometric transformation to the input points.

`UVW = transformPointsInverse(tform,XYZ)`
```UVW = 5×3 30 -20 400 15 5 625 25 5 25 35 5 100 45 5 225 ```

## Input Arguments

collapse all

Geometric transformation, specified as a geometric transformation object listed in the table.

Geometric Transformation ObjectDescription
2-D Linear Geometric Transformations
`transltform2d`Translation transformation
`rigidtform2d`Rigid transformation: translation and rotation
`simtform2d`Similarity transformation: translation, rotation, and isotropic scaling
`affinetform2d`Affine transformation: translation, rotation, anisotropic scaling, reflection, and shearing
`projtform2d`Projective transformation
3-D Linear Geometric Transformations
`transltform3d`Translation transformation
`rigidtform3d`Rigid transformation: translation and rotation
`simtform3d`Similarity transformation: translation, rotation, and isotropic scaling
`affinetform3d`Affine transformation: translation, rotation, anisotropic scaling, reflection, and shearing
Nonlinear Geometric Transformations
`geometricTransform2d`Custom 2-D geometric transformation using point-wise mapping functions
`geometricTransform3d`Custom 3-D geometric transformation using point-wise mapping functions
`LocalWeightedMeanTransformation2D`2-D local weighted means transformation
`PiecewiseLinearTransformation2D`2-D piecewise linear transformation
`PolynomialTransformation2D`2-D polynomial transformation

Note

You can also specify `tform` as an object of type `rigid2d`, `rigid3d`, `affine2d`, `affine3d`, or `projective2d`. However, these objects are not recommended. For more information, see Compatibility Considerations.

x-coordinates of points to be transformed, specified as an m-by-n or m-by-n-by-p numeric array. The number of dimensions of `x` matches the dimensionality of `tform`.

Data Types: `single` | `double`

y-coordinates of points to be transformed, specified as an m-by-n or m-by-n-by-p numeric array. The size of `y` must match the size of `x`.

Data Types: `single` | `double`

z-coordinates of points to be transformed, specified as an m-by-n-by-p numeric array. `z` is used only when `tform` is a 3-D geometric transformation. The size of `z` must match the size of `x`.

Data Types: `single` | `double`

Coordinates of points to be transformed, specified as an l-by-2 or l-by-3 numeric array. The number of columns of `X` matches the dimensionality of `tform`.

The first column lists the x-coordinate of each point to transform, and the second column lists the y-coordinate. If `tform` represents a 3-D geometric transformation, `X` has size l-by-3 and the third column lists the z-coordinate of the points to transform.

Data Types: `single` | `double`

## Output Arguments

collapse all

x-coordinates of points after transformation, returned as an m-by-n or m-by-n-by-p numeric array. The number of dimensions of `u` matches the dimensionality of `tform`.

Data Types: `single` | `double`

y-coordinates of points after transformation, returned as an m-by-n or m-by-n-by-p numeric array. The size of `v` matches the size of `u`.

Data Types: `single` | `double`

z-coordinates of points after transformation, returned as an m-by-n-by-p numeric array. The size of `w` matches the size of `u`.

Data Types: `single` | `double`

Coordinates of points after transformation, returned as a numeric array. The size of `U` matches the size of `X`.

The first column lists the x-coordinate of each point after transformation, and the second column lists the y-coordinate. If `tform` represents a 3-D geometric transformation, the third column lists the z-coordinate of the points after transformation.

Data Types: `single` | `double`

## Version History

Introduced in R2013a

expand all