mlib_ImagePolynomialWarp 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_ImagePolynomialWarp(3mediaLib Library Funcmlib_ImagePolynomialWarp(3MLIB)

NAME
       mlib_ImagePolynomialWarp - polynomial-based image warp

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

       mlib_status mlib_ImagePolynomialWarp(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()	function  performs  a polynomial-based
       image warp.

       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 one of the	inter‐
       polations specified by the filter parameter 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.

       filter	     Type of resampling filter. It can be one of  the  follow‐
		     ing:

		       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.

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

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

SEE ALSO
       mlib_ImagePolynomialWarp_Fp(3MLIB),	    mlib_ImagePolynomialWarpT‐
       able(3MLIB), mlib_ImagePolynomialWarpTable_Fp(3MLIB), attributes(5)

SunOS 5.10			  2 Mar 2007   mlib_ImagePolynomialWarp(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