Documentation

# affine3d

3-D affine geometric transformation

## Description

An `affine3d` object encapsulates a 3-D affine geometric transformation.

## Creation

You can create an `affine3d` object using the following methods:

• `imregtform` — Estimates a geometric transformation that maps a moving image to a fixed image using similarity optimization

• The `affine3d` function described here

### Syntax

``tform = affine3d``
``tform = affine3d(A)``

### Description

````tform = affine3d` creates an `affine3d` object with default property settings that correspond to the identity transformation.```

example

````tform = affine3d(A)` sets the property `T` with a valid affine transformation defined by nonsingular matrix `A`.```

## Properties

expand all

Forward 3-D affine transformation, specified as a nonsingular 4-by-4 numeric matrix.

The matrix `T` uses the convention:

`[x y z 1] = [u v w 1] * T`

where `T` has the form:

``` [a b c 0; d e f 0; g h i 0; j k l 1];```

The default of `T` is the identity transformation.

Data Types: `double` | `single`

Describes the dimensionality of the geometric transformation for both input and output points, specified as the value 3.

## Object Functions

 `invert` Invert geometric transformation `isRigid` Determine if transformation is rigid transformation `isSimilarity` Determine if transformation is similarity transformation `isTranslation` Determine if transformation is pure translation `outputLimits` Find output spatial limits given input spatial limits `transformPointsForward` Apply forward geometric transformation `transformPointsInverse` Apply inverse geometric transformation

## Examples

collapse all

Create an `affine3d` object that scales a 3-D image by a different factor in each dimension.

```Sx = 1.2; Sy = 1.6; Sz = 2.4; tform = affine3d([Sx 0 0 0; 0 Sy 0 0; 0 0 Sz 0; 0 0 0 1])```
```tform = affine3d with properties: Dimensionality: 3 T: [4x4 double] ```

Load a 3-D volume into the workspace.

```load('mri'); D = squeeze(D);```

Apply the geometric transformation to the image using `imwarp`.

`B = imwarp(D,tform);`

Visualize an axial slice through the center of each volume to see the effect of scale translation. Note that the center slice of the transformed volume has a different index than the center slice of the original volume because of the scaling in the z-dimension.

```figure imshowpair(D(:,:,14),B(:,:,33),'montage');``` The original image is on the left, and the transformed image is on the right. The transformed image is scaled more in the vertical direction than in the horizontal direction, as expected since `Sy` is larger than `Sx`.

Download now