ImageCorrespondingPoints

ImageCorrespondingPoints[image1,image2]

finds a set of matching interest points in image1 and image2 and returns their pixel coordinates.

Details and Options

  • ImageCorrespondingPoints uses ImageKeypoints to find candidate corresponding points.
  • ImageCorrespondingPoints[image1,image2] returns an expression of the form {points1,points2}, where the pointsi are lists of pixel coordinates representing the matching points in imagei.
  • The following options can be specified:
  • KeypointStrengthAutomaticminimum strength of the keypoints
    MaskingAllregion of interest
    MaxFeaturesAutomaticmaximum number of keypoints
    MethodAutomaticthe type of keypoint to use
    TransformationClassNonegeometrical relation between points
  • With the setting Masking->roi, the set of points is restricted so that the returned points points1 of image1 all lie within the region of interest.
  • With the setting MaxFeatures->n, at most n corresponding points with largest average keypoint strength are returned.
  • By default, a suitable keypoint type is used to find corresponding points. Using Methodmethod, a specific keypoint type or a list of types can be specified.
  • Possible settings for method include:
  • "AKAZE"Accelerated KAZE and binary descriptors
    "BRISK"Binary Robust Invariant Scalable Keypoints
    "KAZE"nonlinear scale-space detector and descriptor
    "ORB"FAST detector and Binary Robust Independent Elementary Features (BRIEF) descriptor
    "SURF"Speeded-Up Robust Features
    {method1,method2,}combination of various keypoint correspondences
  • Possible settings for TransformationClass include:
  • Noneno geometric constraints
    "Translation"translation only
    "Rigid"translation and rotation
    "Similarity"translation, rotation, and scaling
    "Affine"linear transformation and translation
    "Perspective"linear fractional transformation
    "Epipolar"epipolar transformation, mapping a point in one image to a line in the other image

Examples

open allclose all

Basic Examples  (1)

Corresponding points of two different images of the same object:

Scope  (3)

Corresponding points in binary images:

Corresponding points in grayscale images:

Corresponding points in color images:

Options  (16)

KeypointStrength  (3)

By default, all keypoints are used in finding corresponding points:

Use only keypoints with individual strength greater or equal to a given threshold:

Increasing the threshold typically results in detecting fewer corresponding points:

Masking  (1)

By default, with Masking->All, all detected corresponding points are returned:

With Masking->maskimage, corresponding points of image1 should lie within maskimage:

Display the detected correspondences for the first image:

MaxFeatures  (2)

Return the best correspondences:

The number of returned correspondences may be less than the value of the MaxFeatures option:

Method  (3)

By default, "SURF" keypoints are used to find correspondences:

Use "KAZE" keypoints:

Use a combination of "SURF" and "BRISK" keypoints:

TransformationClass  (7)

By default, the two detected point sets are not constrained geometrically:

Constrain the pair of point sets to be related by an epipolar transformation:

Constrain the pair of point sets to be related by a linear fractional transformation:

Constrain the pair of point sets to be related by an affine transformation:

Constrain the pair of point sets to be related by a similarity transformation:

Constrain the pair of point sets to be related by a rigid transformation:

Constrain the pair of point sets to be related by a translation:

Applications  (3)

Find matching positions for stereovision applications:

Extract the matching patches from two images:

Find the rotation angle between two images:

Properties & Relations  (1)

ImageCorrespondingPoints converts all images to grayscale:

Neat Examples  (1)

Find and visualize matching points in two images of the Moon:

Introduced in 2010
 (8.0)
 |
Updated in 2012
 (9.0)
2014
 (10.0)
2016
 (11.0)
2017
 (11.1)