Main Content

Control Point Registration

Control point registration, or point mapping, enables you to register two images based on corresponding features that you manually select from the two images. One image, called the fixed image, is a reference image in the desired orientation. The other image, called the moving image, is the image that you want to align to the reference image. Control points are pairs of points that identify the same features or landmarks in the fixed and moving images. Control point registration consists of these steps:

The figure provides an illustration of this process. See Register Images with Projection Distortion Using Control Points for an extended example.

Select control points using cpselect, optionally fine tune the control points using cpcorr, estimate the transformation using fitgeotform2d, then warp the moving image using imwarp.

You may need to perform several iterations of this process, experimenting with different types of transformations, before you achieve a satisfactory result. Sometimes, you can perform successive registrations, removing gross global distortions first, and then removing smaller local distortions in subsequent passes.

Select Pairs of Control Points

To select control points in a pair of 2-D images interactively, use the Control Point Selection tool. Open the tool by using the cpselect function. The figure shows the default appearance of the tool when you first start it, with the moving image on the left and the fixed image on the right.

On the left side of the tool are a magnified view and overview of the moving image. On the right side of the tool are a magnified view and overview of the fixed image. The top menu has navigation and magnification tools.

Select control points by pointing and clicking in the moving and fixed images, in either the Detail or the Overview windows. Each point you specify in the moving image must have a match in the fixed image. For more information, see Select Matching Control Point Pairs.

To save control points to the workspace, select File on the Control Point Selection tool menu bar, then choose the Export Points to Workspace option. The control points are now available for the next steps in image registration.

Fine-Tune Control Point Placement

You can fine-tune the position of the 2-D control points by using cross-correlation. To use cross-correlation, pass sets of control points in the moving and fixed images, along with the images themselves, to the cpcorr function.

The cpcorr function defines 11-by-11 pixel regions around each control point in the moving image and around the matching control point in the fixed image. The function then calculates the correlation between the values at each pixel in the region. Next, the cpcorr function finds the position with the highest correlation value and uses it as the optimal position of the control point. The function only moves control points up to four pixels based on the results of the cross-correlation.

Note

Features in the two images must be at the same scale and have the same orientation. They cannot be rotated relative to each other.

If cpcorr cannot correlate some of the control points, it returns their unmodified values in movingPoints.

Estimate the Geometric Transformation

The fitgeotform2d function can infer the parameters from control point pairs for the following types of geometric transformations, listed in order of complexity. The function returns a geometric transformation object that stores the parameters for applying the transformation to an image.

Transformation Type

DescriptionMinimum Number of Control Point PairsExample
"similarity"Use this transformation when shapes in the moving image are unchanged, but the image is distorted by some combination of translation, rotation, and isotropic scaling. Straight lines remain straight, and parallel lines are still parallel.2

Original and transformed checkerboard image. The transformed image appears rotated 45 degrees.

"reflectivesimilarity"Same as "similarity" with the addition of optional reflection.3

Original and transformed checkerboard image. The transformed image appears reflected and rotated 45 degrees.

"affine"Use this transformation when shapes in the moving image exhibit shearing. Straight lines remain straight, and parallel lines remain parallel, but rectangles become parallelograms.3

Original and transformed checkerboard image. The transformed image appears sheared in the horizontal direction.

"projective"Use this transformation when the scene appears tilted. Straight lines remain straight, but parallel lines converge toward a vanishing point.4

Original and transformed checkerboard image. The transformed image appears tilted out of plane of the image.

"polynomial"Use this transformation when objects in the image are curved. The higher the order of the polynomial, the better the fit, but the result can contain more curves than the fixed image.

6 (order 2)

10 (order 3)

15 (order 4)

Original and transformed checkerboard image. The transformed image appears curved.

"pwl"Use this transformation (piecewise linear) when parts of the image appear distorted differently.4

Original and transformed checkerboard image. The right side of the transformed image appears stretched horizontally.

"lwm"Use this transformation (local weighted mean), when the distortion varies locally and piecewise linear is not sufficient. 6 (12 recommended)

Original and transformed checkerboard image. The transformed image appears nonuniformly stretched.

Your choice of transformation type affects the number of control point pairs you must select. For example, a similarity transformation without reflection requires at least two control point pairs. A fourth order polynomial transformation requires 15 control point pairs. For more information about these transformation types, and the special syntaxes they require, see cpselect.

To learn about 3-D point mapping, see fitgeotform3d (Medical Imaging Toolbox).

Apply the Geometric Transformation

Use the imwarp function to apply the geometric transformation to the moving image. The imwarp function returns a version of the moving image that is registered to the fixed image.

See Also

| | | (Medical Imaging Toolbox) |

Related Examples

More About