Previous IDL Reference Guide: Procedures and Functions Next

WARP_TRI

Syntax | Return Value | Arguments | Keywords | Examples | Version History | See Also

The WARP_TRI function returns an image array with a specified geometric correction applied. Images are warped using control (tie) points such that locations (Xi, Yi) are shifted to (Xo, Yo).

The irregular grid defined by (Xo, Yo) is triangulated using TRIANGULATE. Then the surfaces defined by (Xo, Yo, Xi) and (Xo, Yo, Yi) are interpolated using TRIGRID to get the locations in the input image of each pixel in the output image. Finally, INTERPOLATE is called to obtain the result. Linear interpolation is used by default. Smooth quintic interpolation is used if the QUINTIC keyword is set.

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

Syntax

Result = WARP_TRI( Xo, Yo, Xi, Yi, Image [, OUTPUT_SIZE=vector] [, /QUINTIC] [, /EXTRAPOLATE] [, /TPS] )

Return Value

Returns the warped image array.

Arguments

Xo, Yo

Vectors containing the locations of the control (tie) points in the output image.

Xi, Yi

Vectors containing the location of the control (tie) points in the input image. Xi and Yi must be the same length as Xo and Yo.

Image

The image to be warped. Can be any type of data.

Keywords

OUTPUT_SIZE

Set this keyword equal to a 2-element vector containing the size of the output image. If omitted, the output image is the same size as Image.

QUINTIC

Set this keyword to use smooth quintic interpolation. Quintic interpolation is slower, but the derivatives are continuous across triangles, giving a more pleasing result than the default linear interpolation.

EXTRAPOLATE

Set this keyword to extrapolate outside the convex hull of the tie points. Setting this keyword implies the use of QUINTIC interpolation.

TPS

Set this keyword to use Thin Plate Spline interpolation, which interpolates a set of irregularly sampled data value over a regular two dimensional grid. Thin plate splines are ideal for modeling functions with complex local distortions, such as warping functions, which are too complex to be fit with polynomials.

Examples

This example produces a warped image of the world, where the irregular grid has been created using smooth quintic interpolation. The displayed image is in black and white.

filename = FILEPATH(SUBDIRECTORY=['examples','data'], $  
   'worldelv.dat')  
OPENR, lun, filename, /GET_LUN  
thermImage = BYTARR(360,360, /NOZERO)  
READU, lun, thermImage  
FREE_LUN, lun  
  
x1=[1,359,359,1]  
y1=[1,1,359,359]  
x0=[5,250,480,250]  
y0=[250,5,250,480]  
  
warped_image = WARP_TRI(x0, y0, x1, y1, thermImage, $  
   OUTPUT_SIZE=[509,509], /QUINTIC)  
  
LOADCT, 3  
WINDOW, 2, XSIZE=509, YSIZE=509  
TVSCL, warped_image  

 


Note
Also see Warping Images Using Direct Graphics.

Version History

Pre-4.0
Introduced

See Also

INTERPOLATE, TRIANGULATE, TRIGRID

  IDL Online Help (March 06, 2007)