# simtform2d

2-D similarity geometric transformation

## Description

A simtform2d object stores information about a 2-D similarity geometric transformation and enables forward and inverse transformations.

## Creation

You can create a simtform2d object in these ways:

• fitgeotform2d — Estimate a geometric transformation that maps pairs of control points between two images.

• The simtform2d function described here.

### Description

tform = simtform2d creates a simtform2d object that performs the identity transformation.

tform = simtform2d(Scale,RotationAngle,Translation) creates a simtform2d object that performs a similarity transformation based on the specified values of the Scale, RotationAngle, and Translation properties. These properties specify the scale factor, rotation angle, and the amount of translation in the x- and y-directions, respectively.

example

tform = simtform2d(Scale,R,Translation) creates a simtform2d object that performs a similarity transformation based on the specified values of the Scale, R, and Translation properties. These properties indicate the scale factor, rotation matrix, and the amounts of translation in the x- and y-directions.

tform = simtform2d(A) creates a simtform2d object and sets the property A as the specified 2-D similarity transformation matrix.

tform = simtform2d(tformIn) creates a simtform2d object from another geometric transformation object, tformIn, that represents a valid 2-D similarity geometric transformation.

### Input Arguments

expand all

Similarity 2-D geometric transformation, specified as an affinetform2d object, rigidtform2d object, simtform2d object, transltform2d object, or projtform2d object.

## Properties

expand all

Forward 2-D similarity transformation, specified as a nonsingular 3-by-3 numeric matrix. When you create the object, you can also specify A as a 2-by-3 numeric matrix. In this case, the object concatenates the row vector [0 0 1] to the end of the matrix, forming a 3-by-3 matrix. The default of A is the identity matrix.

The matrix A transforms the point (u, v) in the input coordinate space to the point (x, y) in the output coordinate space using the convention:

$\left[\begin{array}{c}x\\ y\\ 1\end{array}\right]=Α×\left[\begin{array}{c}u\\ v\\ 1\end{array}\right]$

For a similarity transformation, A has the form:

$Α=\left[\begin{array}{ccc}s×\mathrm{cosd}\left(r\right)& -s×\mathrm{sind}\left(r\right)& {t}_{x}\\ s×\mathrm{sind}\left(r\right)& s×\mathrm{cosd}\left(r\right)& {t}_{y}\\ 0& 0& 1\end{array}\right]$

where s is the scale factor and corresponds to the Scale property. r is the rotation angle and corresponds to the RotationAngle property. tx and ty are the amount of translation in the x- and y-directions, respectively, and correspond to the Translation property.

Data Types: double | single

Scale factor, specified as a nonzero number. The scale factor corresponds to the value s in the similarity transformation matrix defined by property A.

Data Types: double | single

Rotation matrix, specified as a 2-by-2 numeric matrix. The matrix must have the form

R = [cosd(r) -sind(r); sind(r)  cosd(r)]
where r is the value of the RotationAngle property.

Rotation angle about the origin in degrees, specified as a numeric scalar. The rotation angle corresponds to the value r in the transformation matrix defined by A and in the rotation matrix defined by R.

Data Types: double | single

Amount of translation, specified as a 2-element numeric vector of the form [tx ty]. These amounts of translation correspond to the values tx and ty in the similarity transformation matrix defined by A.

Data Types: double | single

Dimensionality of the geometric transformation for both input and output points, specified as 2.

Data Types: double

## Object Functions

 invert Invert geometric transformation outputLimits Find output spatial limits given input spatial limits transformPointsForward Apply forward geometric transformation transformPointsInverse Apply inverse geometric transformation

## Examples

collapse all

Specify the scale factor, rotation angle, and the amount of translation.

scaleFactor = 3;
theta = 30;
translation = [10 20.5];

Create a simtform2d object that performs the specified scaling, rotation, and translation.

tform = simtform2d(scaleFactor,theta,translation)
tform =
simtform2d with properties:

Dimensionality: 2
Scale: 3
RotationAngle: 30
Translation: [10 20.5000]
R: [2x2 double]
A: [3x3 double]

Examine the value of the A property.

tform.A
ans = 3×3

2.5981   -1.5000   10.0000
1.5000    2.5981   20.5000
0         0    1.0000

## Version History

Introduced in R2022b