POLYWARP

The POLYWARP procedure performs polynomial spatial warping.

Using least squares estimation, POLYWARP determines the coefficients Kx ( i,j ) and Ky ( i,j ) of the polynomial functions:

Kx and Ky can be used as inputs P and Q to the built-in function POLY_2D. This coordinate transformation may be then used to map from Xo, Yo coordinates into Xi, Yi coordinates.

This routine is written in the IDL language. Its source code can be found in the file polywarp.pro in the lib subdirectory of the IDL distribution.

Calling Sequence

POLYWARP, Xi, Yi, Xo, Yo, Degree, Kx, Ky

Arguments

Xi, Yi

Vectors of X and Y coordinates to be fit as a function of Xo and Yo.

Xo, Yo

Vectors of X and Y independent coordinates. These vectors must have the same number of elements as Xi and Yi .

Degree

The degree of the fit. The number of coordinate pairs must be greater than or equal to ( Degree +1) 2 .

Kx

A named variable that will contain the array of coefficients for Xi as a function of ( Xo, Y o). This parameter is returned as a ( Degree +1) by ( Degree +1) element array.

Ky

A named variable that will contain the array of coefficients for Yi . This parameter is returned as a ( Degree +1) by ( Degree +1) element array.

Example

The following example shows how to display an image and warp it using the POLYWARP and POLY_2D routines.

Create and display the original image by entering:

A = BYTSCL(SIN(DIST(250)))

TVSCL, A

Now set up the Xi's and Yi's. Enter:

XI = [24, 35, 102, 92]

YI = [81, 24, 25, 92]

Enter the Xo's and Yo's:

XO = [61, 62, 143, 133]

YO = [89, 34, 38, 105]

Run POLYWARP to obtain a Kx and Ky:

POLYWARP, XI, YI, XO, YO, 1, KX, KY

Create a warped image based on Kx and Ky with POLY_2D:

B = POLY_2D(A, KX, KY)

Display the new image:

TV, B

See Also

POLY_2D , WARP_TRI