Developer Reference

  • 2020
  • 10/21/2020
  • Public Content
Contents

WarpBilinearQuad

MODIFIED API.
Performs bilinear warping of the source image that transforms the given source quadrangle to the specified destination quadrangle.

Syntax

IppStatus ippiWarpBilinearQuad_<mod>(const Ipp<datatype>*
pSrc
, IppiSize
srcSize
, int
srcStep
, IppiRect
srcRoi
, const double
srcQuad
[4][2], Ipp<datatype>*
pDst
, int
dstStep
, IppiRect
dstRoi
, const double
dstQuad
[4][2], int
interpolation
, Ipp8u*
pBuffer
);
Supported values for
mod
:
8u_C1R
16u_C1R
32f_C1R
8u_C3R
16u_C3R
32f_C3R
8u_C4R
16u_C4R
32f_C4R
Include Files
ippi.h
Domain Dependencies
Headers:
ippcore.h
,
ippvm.h
,
ipps.h
Libraries:
ippcore.lib
,
ippvm.lib
,
ipps.lib
Parameters
pSrc
Pointer to the source image origin. An array of separate pointers to each plane in case of data in planar format.
srcSize
Size in pixels of the source image.
srcStep
Distance in bytes between starts of consecutive lines in the source image buffer.
srcRoi
Region of interest in the source image (of the
IppiRect
type).
srcQuad
A given quadrangle in the source image.
pDst
Pointer to the destination image origin. An array of separate pointers to each plane in case of data in planar format.
dstStep
Distance in bytes between starts of consecutive lines in the destination image buffer.
dstRoi
Region of interest in the destination image (of the
IppiRect
type).
dstQuad
A given quadrangle in the destination image.
interpolation
Specifies the interpolation mode. Use one of the following values:
IPPI_INTER_NN
Nearest neighbor interpolation
IPPI_INTER_LINEAR
Linear interpolation
IPPI_INTER_CUBIC
Cubic interpolation
IPPI_SMOOTH_EDGE
Use edge smoothing in addition to one of the above modes.
pBuffer
Pointer to the external work buffer.
Description
The API of this function has been modified in Intel IPP 9.0 release.
This function operates with ROI (see ROI Processing in Geometric Transforms).
This function
applies a bilinear transform to an arbitrary quadrangle
srcQuad
in the source image
pSrc
. The
operations take place only in the intersection of the source image ROI
srcRoi
and the source quadrangle
srcQuad
. The function
ippiWarpBilinearQuad
uses the same formulas for pixel mapping as in the case of the
ippiWarpBilinear
function. Transform coefficients are computed internally, based on the mapping of the source quadrangle to the quadrangle
dstQuad
specified in the destination image
pDst
. The
dstQuad
should have a non-empty intersection with the destination image ROI
dstRoi
.
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] holds
x
and
y
coordinates of the vertex.
Edge smoothing interpolation is applicable only if the source quadrangle lies in the source image ROI.
Before using this function, compute the size of the external work buffer
pBuffer
using the WarpBilinearGetBufferSize function.
Return Values
ippStsNoErr
Indicates no error. Any other value indicates an error or a warning.
ippStsNullPtrErr
Indicates an error condition if one of the specified pointers is
NULL
.
ippStsSizeErr
Indicates an error condition if any image dimension has zero or negative value.
ippStsStepErr
Indicates an error condition if
srcStep
or
dstStep
has a zero or negative value.
ippStsInterpolationErr
Indicates an error condition if
interpolation
has an illegal value.
ippStsQuadErr
Indicates an error condition if
srcQuad
or
dstQuad
degenerates into triangle.
ippStsWrongIntersectROIErr
Indicates an error condition if
srcRoi
has no intersection with the source image.
ippStsWrongIntersectQuad
Indicates a warning that no operation is performed if the
srcRoi
has no intersection with the
srcQuad
, or
dstRoi
has no intersection with the
dstQuad
.

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