mlib_ImagePolynomialWarpTable_Fp man page on SunOS

Man page or keyword search:  
man Server   20652 pages
apropos Keyword Search (all sections)
Output format
SunOS logo
[printable version]

mlib_ImagePolynomialWarpTamediaLibMLibrmlib_ImagePolynomialWarpTable_Fp(3MLIB)

NAME
       mlib_ImagePolynomialWarpTable_Fp - polynomial-based image warp with ta‐
       ble-driven interpolation

SYNOPSIS
       cc [ flag... ] file... -lmlib [ library... ]
       #include <mlib.h>

       mlib_status mlib_ImagePolynomialWarpTable_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, const void *interp_table, mlib_edge edge);

DESCRIPTION
       The mlib_ImagePolynomialWarpTable_Fp() function performs a  polynomial-
       based image warp on a floating-point image with table-driven interpola‐
       tion.

       The images must have the same type, and the same	 number	 of  channels.
       The images can have 1, 2, 3, or 4 channels. The data 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 some n, where  n  is  the
       degree power of the polynomial. The coefficients, in order, are associ‐
       ated 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 coordinate points. 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 the	 interpolation
       specified by interp_table to generate the pixel value for point D.

       The  mapping  is defined by the two bivariate polynomial functions X(x,
       y) and Y(x, y) that map destination (x, y) coordinates 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	i
	 warpedX = SUM {SUM {xCoeffs_ij * preX**(i-j) * preY**j}}
		  i=0  j=0

		   n	i
	 warpedY = SUM {SUM {yCoeffs_ij * preX**(i-j) * preY**j}}
		  i=0  j=0

	 X(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 preScaleX and preScaleY	 prior
       to  the	evaluation  of	the  polynomial. The results of the polynomial
       evaluations are scaled by postScaleX and postScaleY, and	 then  shifted
       by  (-postShiftX, -postShiftY) to produce the source pixel coordinates.
       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.

       n	       Degree power of the polynomial.

       preShiftX       Displacement to apply to destination X positions.

       preShiftY       Displacement to apply to destination Y positions.

       postShiftX      Displacement to apply to source X positions.

       postShiftY      Displacement to apply to source Y positions.

       preScaleX       Scale factor to apply to destination X positions.

       preScaleY       Scale factor to apply to destination Y positions.

       postScaleX      Scale factor to apply to source X positions.

       postScaleY      Scale factor to apply to source Y positions.

       interp_table    Pointer to an interpolation table. The table is created
		       by the mlib_ImageInterpTableCreate() function.

       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.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       ┌─────────────────────────────┬─────────────────────────────┐
       │      ATTRIBUTE TYPE	     │	    ATTRIBUTE VALUE	   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Interface Stability	     │Committed			   │
       ├─────────────────────────────┼─────────────────────────────┤
       │MT-Level		     │MT-Safe			   │
       └─────────────────────────────┴─────────────────────────────┘

SEE ALSO
       mlib_ImageInterpTableCreate(3MLIB), mlib_ImageInterpTableDelete(3MLIB),
       mlib_ImagePolynomialWarpTable(3MLIB),  mlib_ImagePolynomialWarp(3MLIB),
       mlib_ImagePolynomialWarp_Fp(3MLIB), attributes(5)

SunOS 5.10			  2 Marmlib_ImagePolynomialWarpTable_Fp(3MLIB)
[top]

List of man pages available for SunOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net