Main Content

imregtform

Estimate geometric transformation that aligns two 2-D or 3-D images

Description

example

tform= imregtform(moving,fixed,transformType,optimizer,metric)estimates the geometric transformation that aligns the moving imagemovingwith the fixed imagefixedtransformTypeis a string scalar or character vector that defines the type of transformation to estimate.optimizeris an object that describes the method for optimizing the metric.metricis an object that defines the quantitative measure of similarity between the images to optimize. The outputtformis a geometric transformation object that mapsmovingtofixed

tform= imregtform(moving,Rmoving,fixed,Rfixed,transformType,optimizer,metric)estimates the geometric transformation whereRmovingandRfixedspecify the spatial referencing objects associated with themovingandfixedimages. The outputtformis a geometric transformation object in units defined by the spatial referencing objectsRmovingandRfixed

tform= imregtform(___,Name,Value)estimates the geometric transformation using name-value pairs to control aspects of the operation.

Examples

collapse all

Read two images. This example uses two magnetic resonance (MRI) images of a knee. The fixed image is a spin echo image, while the moving image is a spin echo image with inversion recovery. The two sagittal slices were acquired at the same time but are slightly out of alignment.

fixed = dicomread('knee1.dcm'); moving = dicomread('knee2.dcm');

View the misaligned images.

imshowpair(fixed, moving,'Scaling','joint')

Figure contains an axes object. The axes object contains an object of type image.

Create the optimizer and metric, setting the modality to'multimodal'since the images come from different sensors.

[optimizer, metric] = imregconfig('multimodal')
optimizer = registration.optimizer.OnePlusOneEvolutionary Properties: GrowthFactor: 1.050000e+00 Epsilon: 1.500000e-06 InitialRadius: 6.250000e-03 MaximumIterations: 100
metric = registration.metric.MattesMutualInformation Properties: NumberOfSpatialSamples: 500 NumberOfHistogramBins: 50 UseAllPixels: 1

Tune the properties of the optimizer to get the problem to converge on a global maxima and to allow for more iterations.

optimizer.InitialRadius = 0.009; optimizer.Epsilon = 1.5e-4; optimizer.GrowthFactor = 1.01; optimizer.MaximumIterations = 300;

Find the geometric transformation that maps the image to be registered (moving) to the reference image (fixed).

tform = imregtform(moving, fixed,'affine', optimizer, metric)
tform = affine2d with properties: T: [3x3 double] Dimensionality: 2

Apply the transformation to the image being registered (moving) using theimwarpfunction. The example uses the'OutputView'parameter to preserve world limits and resolution of the reference image when forming the transformed image.

movingRegistered = imwarp(moving,tform,'OutputView',imref2d(size(fixed)));

View the registered images.

figure imshowpair(fixed, movingRegistered,'Scaling','joint')

Figure contains an axes object. The axes object contains an object of type image.

Input Arguments

collapse all

图像是注册ed, specified as a 2-D or 3-D grayscale image.

Data Types:single|double|int8|int16|int32|uint8|uint16|uint32

Spatial referencing information associated with the image to be registered, specified as animref2dorimref3dobject.

Reference image in the target orientation, specified as a 2-D or 3-D grayscale image.

Data Types:single|double|int8|int16|int32|uint8|uint16|uint32

Spatial referencing information associated with the reference (fixed) image, specified as animref2dorimref3dobject.

Geometric transformation to be applied to the image to be registered, specified as one of the following values:

Value Description
'translation' (x,y)translation.
'rigid' Rigid transformation consisting of translation and rotation.
'similarity' Nonreflective similarity transformation consisting of translation, rotation, and scale.
'affine' Affine transformation consisting of translation, rotation, scale, and shear.

The'similarity'and'affine'transformation types always involve nonreflective transformations.

Data Types:char|string

Method for optimizing the similarity metric, specified as aRegularStepGradientDescentorOnePlusOneEvolutionaryoptimizer object.

Image similarity metric to be optimized during registration, specified as aMeanSquaresorMattesMutualInformationmetric object.

Name-Value Arguments

Specify optional pairs of arguments asName1=Value1,...,NameN=ValueN, whereNameis the argument name andValueis the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and encloseNamein quotes.

Example:'DisplayOptimization',1enables verbose optimization mode.

Verbose optimization flag, specified as the comma-separated pair consisting of'DisplayOptimization', and the logical valuetrueor。Controls whetherimregisterdisplays optimization information in the command window during the registration process.

Data Types:logical

从几何变换, specified as the comma-separated pair consisting of'InitialTransformation'and anaffine2doraffine3dobject.

Number of pyramid levels used during the registration process, specified as the comma-separated pair consisting of'PyramidLevels'and a positive integer.

Example:'PyramidLevels',4sets the number of pyramid levels to4

Output Arguments

collapse all

Geometric transformation, returned as anaffine2doraffine3dobject. If the input matrices are 3-D,imregtformreturns anaffine3dobject.

Tips

  • When you have spatial referencing information available, it is important to provide this information toimregtform, using spatial referencing objects. This information helpsimregtformconverge to better results more quickly because scale differences can be considered.

  • Bothimregtformandimregisteruse the same underlying registration algorithm.imregisterperforms the additional step of resamplingmovingto produce the registered output image from the geometric transformation estimate calculated byimregtform。使用imregtformwhen you want access to the geometric transformation that relatesmovingtofixed。使用imregisterwhen you want a registered output image.

  • Getting good results from optimization-based image registration usually requires modifying optimizer and/or metric settings for the pair of images being registered. Theimregconfigfunction provides a default configuration that should only be considered a starting point. See the output of theimregconfigfor more information on the different parameters that can be modified.

Version History

Introduced in R2013a