Developer Reference

  • 2020
  • 07/15/2020
  • Public Content
Contents

WarpQuadCubicInit

Initializes the specification structure for warping an arbitrary quadrangle in the source image to the quadrangle in the destination image with the cubic interpolation method.

Syntax

IppStatus ippiWarpQuadCubicInit(IppiSize
srcSize
, const double
srcQuad[4][2]
, IppiSize
dstSize
, const double
dstQuad[4][2]
, IppiWarpTransformType
transform
, IppDataType
dataType
, int
numChannels
, Ipp64f
valueB
, Ipp64f
valueC
, IppiBorderType
borderType
, const Ipp64f*
pBorderValue
, int
smoothEdge
, IppiWarpSpec*
pSpec
, Ipp8u*
pInitBuf
);
Include Files
ippi.h
Domain Dependencies
Headers:
ippcore.h
,
ippvm.h
,
ipps.h
Libraries:
ippcore.lib
,
ippvm.lib
,
ipps.lib
Parameters
srcSize
Size of the source image, in pixels.
srcQuad
Quadrangle in the source image.
dstSize
Size of the destination image, in pixels.
dstQuad
Quadrangle in the destination image.
transform
Type of the warp tranform. Supported values:
ippWarpAffine
Affine warping
ippWarpPerspective
Perspective warping
dataType
Data type of the source and destination images. Supported values:
ipp8u
,
ipp16u
,
ipp16s
, and
ipp32f
.
numChannels
Number of channels in the image. Supported values: 1, 3, or 4.
valueB
,
valueC
The first (B) and second (C) parameter for the cubic filter.
borderType
Type of border. Supported values:
ippBorderTransp
Outer pixels are not processed.
ippBorderInMem
Border is obtained from the source image pixels in memory.
pBorderValue
Pointer to the constant value to assign to pixels of the constant border. This parameter is applicable only to the
ippBorderConst
border type.
smoothEdge
Flag for edge smoothing. Supported values:
  • 0
    - transformation without edge smoothing.
  • 1
    - transformation with edge smoothing.
pSpec
Pointer to the specification structure.
pInitBuf
Pointer to the temporary buffer for the cubic filter initialization.
Description
This function initializes the
IppiWarpSpec
structure for warping an arbitrary quadrangle in the source image to quadrangle in the destination image with the cubic interpolation method. Before using this function, compute the size of the specification structure and the size of the external buffer
pInitBuf
using the WarpQuadGetSize function.
Transformation coefficients are computed internally, based on the mapping of the source quadrangle to the specified destination quadrangle
dstQuad
and transform type
transform
. In case of affine transform, the function computes the coordinates of the fourth vertex of the destination quadrangle that uniquely depends on the three other vertices. If the computed coordinates are not equal to the corresponding values specified in
dstQuad
, the function returns the warning message and continues initialization with the computed values.
The first dimension [4] of the array specifying the quadrangle
srcQuad[4][2]
or
dstQuad[4][2]
is equal to the number of vertices, and the second dimension [2] contains the
x
and
y
coordinates of the vertex.
For an example on how to use this function, refer to the example provided with the WarpQuadNearestInit function description.
You can apply the edge smoothing feature only if the source quadrangle entirely lies in the source image.
Return Values
ippStsNoErr
Indicates no error.
ippStsNullPtrErr
Indicates an error when:
  • One of the specified pointers is
    NULL
    , excepting
    pBorderValue
  • The value of
    pBorderValue
    is
    NULL
    when the border type is set to
    ippBorderConst
ippStsSizeErr
Indicates an error when width or height of the source or destination image is less than, or equal to one.
ippStsDataTypeErr
Indicates an error when
dataType
has an illegal value.
ippStsWarpTransformErr
Indicates an error when
transform
has an illegal value.
ippStsQuadErr
Indicates an error when any of the given quadrangles is non-convex or degenerates into a triangle, line, or point.
ippStsWrongIntersectQuad
Indicates a warning that no operation is performed if the transformed source image extended with borders has no intersection with the destination image.
ippStsAffineQuadChanged
Indicates a warning when coordinates of the fourth vertex of
dstQuad
are changed by the function, if
transform
is set to
ippWarpAffine
.
ippStsBorderErr
Indicates an error when
borderType
has an illegal value.
ippStsNumChannelsErr
Indicates an error when
numChannels
has an illegal value.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804