Intel® Integrated Performance Primitives (Intel® IPP) Developer Guide and Reference

ID 790148
Date 6/24/2024
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

WarpBilinearBack

MODIFIED API. Performs an inverse bilinear warping of the source image.

Syntax

IppStatus ippiWarpBilinearBack_<mod>(const Ipp<datatype>* pSrc, IppiSize srcSize, int srcStep, IppiRect srcRoi, Ipp<datatype>* pDst, int dstStep, IppiRect dstRoi, const double coeffs[2][4], 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).

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).

coeffs

The bilinear transform coefficients.

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.

pBuffer

Pointer to the external work buffer.

Description

IMPORTANT:
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 performs the inverse transform to that defined by ippiWarpBilinear function. Pixel coordinates x' and y' in the transformed image are obtained from the following equations

c00* x'*y' + c01* x' + c02* y' + c03 = x

c10* x'*y' + c11* x' + c12* y' + c13 = y

where x and y denote the pixel coordinates in the source image, and coefficients cij are given in the array coeffs. Thus, you do not need to invert transform coefficients in your application program before calling ippiWarpBilinearBack.

Note that inverse transform functions handle source and destination ROI in a different way than other geometric transform functions. The implementation of the inverse transform functions has the following logic:

  • Backward transform is applied to coordinates of each pixel in the destination ROI. The result is coordinates of some pixel in the source image.

  • If the obtained source pixel is inside the source ROI, the corresponding pixel in the destination ROI is modified accordingly; otherwise, no changes are made.

Before using this function, compute the size of the external work buffer pBuffer using the WarpBilinearGetBufferSize function.

Example shows how to use the function ippiWarpBilinearBack_32f_C1R.

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.

ippStsCoeffErr

Indicates an error condition if coefficient values are invalid.

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 transformed source ROI has no intersection with the destination ROI.

See Also