finds a geometric transformation that aligns positions specified by pts2 with pts1, returning the alignment error together with the transformation function.


finds geometric transformations that align each of the ptsi with ref.


finds geometric transformations that align each of the ptsi with pts1.

Details and Options

  • FindGeometricTransform returns an expression of the form {err,trfun}, where err is an estimate of the average alignment error, and trfun is a transformation function. The function trfun can be applied to the positions pts2 to align them with the positions pts1.
  • The geometries pts1 and pts2 can be given as lists of position coordinates or Wolfram Language graphics objects.
  • FindGeometricTransform[image1,image2] finds the geometric transformation to align 2D or 3D images.
  • FindGeometricTransform works with points in any dimensions as well as with built-in 2D and 3D graphics primitives.
  • The following options can be specified:
  • Method Automaticalignment method to use
    TransformationClass Automaticgeometrical relation between images
  • By default, the most suitable alignment method and transformation class are used for calculating the transformation.
  • Available fitting methods:
  • "Linear"linear solver based on SVD
    "RANSAC"random sample consensus method
    "FindFit"uses FindFit
    {"ImageAlign",method}ImageAlign transformation using the given method
  • With the setting "RANSAC", some positions may be considered as outliers and may not be used to determine the geometric transformation.
  • Possible settings for the TransformationClass option include:
  • "Translation"translation only
    "Rigid"translation and rotation
    "Similarity"translation, rotation, and scaling
    "Affine"linear transformation and translation
    "Perspective"linear fractional transformation


open allclose all

Basic Examples  (2)

Determine the spatial transformation between two sets of positions:

Find the similarity transformation between two sets of two points:

Scope  (6)

Transformation between graphic primitives:

Apply the transformation and display the result:

A three-dimensional geometric transformation:

Transformation between images:

Transformation between 3D images:

Find transformations between reference points and each point set of a list:

Find transformations between each element of a list and the first element:

Options  (8)

Method  (4)

The method "Linear" is typically faster than "RANSAC":

The "RANSAC" method works best if there are outliers or erroneous correspondences:

For images, the "ImageAlign" method returns the transformation found by ImageAlign:

Use the "Keypoints" method using KAZE keypoints:

TransformationClass  (4)

Find a linear fractional transformation:

Find an affine transformation:

Find a rigid transformation:

Find a translation transform:

Applications  (3)

Use an estimated transformation of the corresponding points for aligning two images:

A basic image-stitching method:

Find the geometric transformation that aligns images:

Transform one image and compose on top of the other one:

Find a geometric alignment for a list of images with different exposures:

Properties & Relations  (2)

Find a 3D transformation and apply it using GeometricTransformation:

Find the parameters of an affine transformation:

Wolfram Research (2010), FindGeometricTransform, Wolfram Language function, (updated 2017).


Wolfram Research (2010), FindGeometricTransform, Wolfram Language function, (updated 2017).


Wolfram Language. 2010. "FindGeometricTransform." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2017.


Wolfram Language. (2010). FindGeometricTransform. Wolfram Language & System Documentation Center. Retrieved from


@misc{reference.wolfram_2024_findgeometrictransform, author="Wolfram Research", title="{FindGeometricTransform}", year="2017", howpublished="\url{}", note=[Accessed: 21-July-2024 ]}


@online{reference.wolfram_2024_findgeometrictransform, organization={Wolfram Research}, title={FindGeometricTransform}, year={2017}, url={}, note=[Accessed: 21-July-2024 ]}