<<prev file | next file >>    view single page | view frames    summary: fields | routine    details: routine

Interpolation/

quadrilateral2square.pro

topquadrilateral2square

result = quadrilateral2square(x0in, y0in, x1in, y1in, x2in, y2in, x3in, y3in, xxin, yyin, PERF=PERF)

NAME:quadrilateral2square PURPOSE:warm (or map) an arbitrary quadrilateral onto a unit square according to the 4-point correspondences: (x0,y0) -> (0,0) (x1,y1) -> (1,0) (x2,y2) -> (1,1) (x3,y3) -> (0,1) This is the inverse function of square2quadrilateral.pro The mapping is done using perspective transformation which preserve lines in all orientations and permit quadrilateral to quadrilateral mappings. see ref. bellow. CATEGORY:image/grid manipulation CALLING SEQUENCE: res = square2quadrilateral(x0,y0,x1,y1,x2,y2,x3,y3,xin,yin) INPUTS: x0,y0,x1,y1,x2,y2,x3,y3 the coordinates of the quadrilateral (see above for correspondance with the unit square). Can be scalar or array. (x0,y0), (x1,y1), (x2,y2) and (x3,y3) are given in the anticlockwise order. xin,yin:the coordinates of the point(s) for which we want to do the mapping. Can be scalar or array. KEYWORD PARAMETERS: /DOUBLE: use double precision to perform the computation OUTPUTS: (2,n) array: the new coodinates (xout, yout) of the (xin,yin) point(s) after mapping. If xin is a scalar, then n is equal to the number of elements of x0. If xin is an array , then n is equal to the number of elements of xin. COMMON BLOCKS:none SIDE EFFECTS: RESTRICTIONS: I think degenerated quadrilateral (e.g. flat of twisted) is not work. This has to be tested. EXAMPLE: IDL> splot,[0,5],[0,3],/nodata,xstyle=1,ystyle=1 IDL> tracegrille, findgen(11)*.1, findgen(11)*.1,color=indgen(12)*20 IDL> xin = (findgen(11)*.1)#replicate(1, 11) IDL> yin = replicate(1, 11)#(findgen(11)*.1) IDL> out = square2quadrilateral(2,1,3,0,5,1,2,3, xin, yin) IDL> tracegrille, reform(out[0,*],11,11), reform(out[1,*],11,11),color=indgen(12)*20 IDL> inorg=quadrilateral2square(2,1,3,0,5,1,2,3,out[0,*],out[1,*]) IDL> tracegrille, reform(inorg[0,*],11,11), reform(inorg[1,*],11,11),color=indgen(12)*20 MODIFICATION HISTORY:

Parameters

x0in       

y0in       

x1in       

y1in       

x2in       

y2in       

x3in       

y3in       

xxin       

yyin       

Keywords

PERF       

Produced by IDLdoc 2.0.