mlib_ImagePolynomialWarpTable 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_ImagePolynomialWarpTamediaLibBLibrarymlib_ImagePolynomialWarpTable(3MLIB)

NAME
       mlib_ImagePolynomialWarpTable - polynomial-based image warp with table-
       driven interpolation

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

       mlib_status mlib_ImagePolynomialWarpTable(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()  function  performs	a  polynomial-
       based image warp with table-driven interpolation.

       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_BYTE, MLIB_SHORT, MLIB_USHORT, or MLIB_INT. 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_Fp(3MLIB),		 mlib_ImagePolynomial‐
       Warp(3MLIB), mlib_ImagePolynomialWarp_Fp(3MLIB), attributes(5)

SunOS 5.10			  2 Mar 20mlib_ImagePolynomialWarpTable(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