| Image Processing Toolbox | ![]() |
Tune control point locations using cross correlation
Syntax
Description
input_points = cpcorr(input_points_in,base_points_in,input,base) uses normalized cross-correlation to adjust each pair of control points specified in input_points_in and base_points_in.
input_points_in must be an M-by-2 double matrix containing the coordinates of control points in the input image. base_points_in is an M-by-2 double matrix containing the coordinates of control points in the base image.
cpcorr returns the adjusted control points in input_points, a double matrix the same size as input_points_in. If cpcorr cannot correlate a pair of control points, input_points contains the same coordinates as input_points_in for that pair.
cpcorr only moves the position of a control point by up to 4 pixels. Adjusted coordinates are accurate to one tenth of a pixel. cpcorr is designed to get subpixel accuracy from the image content and coarse control point selection.
cpcorr cannot adjust a point if any of the following occur:
Inf or NaN
Class Support
The images, input and base, can be of class logical, uint8, uint16, or double and must contain finite values. The control point pairs are of class double.
Algorithm
cpcorr uses the following general procedure.
input control point and a 21-by-21 region around the base control point.
input control point.
Example
This example uses cpcorr to fine-tune control points selected in an image. Note the difference in the values of the input_points matrix and the input_points_adj matrix.
input = imread('lily.tif'); base = imread('flowers.tif'); input_points = [127 93; 74 59]; base_points = [323 195; 269 161]; input_points_adj = cpcorr(input_points,base_points,... input(:,:,1),base(:,:,1)) input_points_adj = 126.0000 94.0000 72.1000 60.0000
See Also
cp2tform, cpselect, imtransform, normxcorr2
| cp2tform | cpselect | ![]() |