mediaLib Library Functions mlib_ImagePolynomialWarp_Fp(3MLIB)
NAME
mlib_ImagePolynomialWarp_Fp - polynomial-based image warp
SYNOPSIS
cc [ flag... ] file... -lmlib [ library... ]
#include
mlib_status mlib_ImagePolynomialWarp_Fp(mlib_image *dst,
const mlib_image *src, const mlib_d64 *xCoeffs,
const mlib_d64 *yCoeffs, mlib_s32 n, mlib_d64 preShiftX,
mlib_d64 preShiftY, mlib_d64 postShiftX, mlib_d64 postShiftY,
mlib_d64 preScaleX, mlib_d64 preScaleY, mlib_d64 postScaleX,
mlib_d64 postScaleY, mlib_filter filter, mlib_edge edge);
DESCRIPTION
The mlib_ImagePolynomialWarp_Fp() function performs a
polynomial-based image warp on a floating-point image.
The images must have the same type, and the same number of channels. The images can have 1, 2, 3, or 4 channels. Thedata type of the images can be MLIB_FLOAT or MLIB_DOUBLE.
The source and destination images may have different sizes. The xCoeffs and yCoeffs parameters must contain the same number of coefficients of the form (n + 1)(n + 2)/2 for somen, where n is the degree power of the polynomial. The coef-
ficients, in order, are associated with the terms: 1, x, y, x**2, x*y, y**2, ...,x**n, x**(n-1)*y, ..., x*y**(n-1), y**n
and coefficients of value 0 cannot be omitted. The image pixels are assumed to be centered at .5 coordinatepoints. In other words, the upper-left corner pixel of an
image is located at (0.5, 0.5). For each pixel in the destination image, its center point D is backward mapped to a point S in the source image. Then the source pixels with their centers surrounding point S are selected to do one of the interpolations specified by the filter parameter to generate the pixel value for point D.SunOS 5.11 Last change: 2 Mar 2007 1
mediaLib Library Functions mlib_ImagePolynomialWarp_Fp(3MLIB)
The mapping is defined by the two bivariate polynomial func-
tions X(x, y) and Y(x, y) that map destination (x, y) coor-
dinates to source X and Y positions respectively. The functions X(x, y) and Y(x, y) are: preX = (x + preShiftX)*preScaleX preY = (y + preShiftY)*preScaleY n iwarpedX = SUM {SUM {xCoeffs_ij * preX**(i-j) * preY**j}}
i=0 j=0 n iwarpedY = SUM {SUM {yCoeffs_ij * preX**(i-j) * preY**j}}
i=0 j=0X(x, y) = warpedX*postScaleX - postShiftX
Y(x, y) = warpedY*postScaleY - postShiftY
The destination (x, y) coordinates are pre-shifted by
(preShiftX, preShiftY) and pre-scaled by the factors preS-
caleX and preScaleY prior to the evaluation of the polyno-
mial. The results of the polynomial evaluations are scaledby postScaleX and postScaleY, and then shifted by (-
postShiftX, -postShiftY) to produce the source pixel coordi-
nates. This process allows for better precision of the results and supports tiled images.PARAMETERS
The function takes the following arguments: dst Pointer to destination image. src Pointer to source image. xCoeffs Destination to source transform coefficients for the X coordinate. yCoeffs Destination to source transform coefficients for the Y coordinate.SunOS 5.11 Last change: 2 Mar 2007 2
mediaLib Library Functions mlib_ImagePolynomialWarp_Fp(3MLIB)
n Degree power of the polynomial.preShiftX Displacement to apply to destination X posi-
tions.preShiftY Displacement to apply to destination Y posi-
tions. postShiftX Displacement to apply to source X positions. postShiftY Displacement to apply to source Y positions.preScaleX Scale factor to apply to destination X posi-
tions.preScaleY Scale factor to apply to destination Y posi-
tions. postScaleX Scale factor to apply to source X positions. postScaleY Scale factor to apply to source Y positions. filter Type of resampling filter. It can be one of the following:MLIB_NEAREST
MLIB_BILINEAR
MLIB_BICUBIC
MLIB_BICUBIC2
edge Type of edge condition. It can be one of the following:MLIB_EDGE_DST_NO_WRITE
MLIB_EDGE_SRC_PADDED
RETURN VALUES
The function returns MLIB_SUCCESS if successful. Otherwise
it returns MLIB_FAILURE.
SunOS 5.11 Last change: 2 Mar 2007 3
mediaLib Library Functions mlib_ImagePolynomialWarp_Fp(3MLIB)
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Interface Stability | Committed ||_____________________________|_____________________________|
| MT-Level | MT-Safe |
|_____________________________|_____________________________|
SEE ALSO
mlib_ImagePolynomialWarp(3MLIB),
mlib_ImagePolynomialWarpTable(3MLIB),
mlib_ImagePolynomialWarpTable_Fp(3MLIB), attributes(5)
SunOS 5.11 Last change: 2 Mar 2007 4