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

ID 790148
Date 3/22/2024
Public
Document Table of Contents

WarpPerspectiveLinearInit

Initializes the specification structure for image perspective warping with the linear interpolation method.

Syntax

IppStatus ippiWarpPerspectiveLinearInit(IppiSize srcSize, IppiRect srcRoi, IppiSize dstSize, IppDataType dataType, const double coeffs[3][3], IppiWarpDirection direction, int numChannels, IppiBorderType borderType, const Ipp64f* pBorderValue, int smoothEdge, IppiWarpSpec* pSpec);

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.

srcRoi

Source image ROI (of the IppiRect type).

dstSize

Size of the destination image, in pixels.

dataType

Data type of the source and destination images. Supported values: ipp8u, ipp16u, ipp16s, and ipp32f.

coeffs

Coefficients for the perspective transform.

direction

Transformation direction. Supported values:

ippWarpForward

Forward transformation

ippWarpBackward

Backward transformation

numChannels

Number of channels in the image. Supported values: 1, 3, or 4.

borderType

Type of border. Supported values:

ippBorderConst

Values of all border pixels are set to a constant.

ippBorderRepl

Border is replicated from the edge pixels.

ippBorderTransp

Outer pixels are not processed.

ippBorderInMem

Border is obtained from the source image pixels in memory.

Mixed borders are also supported. They can be obtained by the bitwise operation OR between ippBorderTransp and the ippBorderInMemTop, ippBorderInMemBottom, ippBorderInMemLeft, ippBorderInMemRight values.

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. This feature is supported only for the ippBorderTransp and ippBorderInMem border types.

pSpec

Pointer to the specification structure.

Description

This function initializes the IppiWarpSpec structure for the ippiWarpPerspectiveLinear function that performs warp perspective transformation with the linear interpolation method. To compute the size of the specification structure, use the WarpPerspectiveGetSize function.

You can set the value of the srcRoi parameter to ippRectInfinite, which means that the ROI is not specified.

Return Values

ippStsNoErr

Indicates no error.

ippStsNullPtrErr

Indicates an error when:
  • pSpec is NULL

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

ippStsRectErr

Indicates an error in the following cases, if the source image ROI is not ippRectInfinite:
  • If the source image ROI has no intersection with the image.

  • Either x or y component of the source image ROI is negative.

  • Width or height of the source image ROI is less than, or equal to zero.

ippStsDataTypeErr

Indicates an error when dataType has an illegal value.

ippStsWarpDirectionErr

Indicates an error when direction has an illegal value.

ippStsCoeffErr

Indicates an error when perspective transformation is singular.

ippStsWrongIntersectQuad

Indicates a warning that no operation is performed if the transformed source image extended with borders has no intersection with the destination image.

ippStsNotSupportedModeErr

Indicates an error when the requested mode is not supported. The edge smoothing feature is not supported for the ippBorderRepl and ippBorderConst border types.

ippStsBorderErr

Indicates an error when borderType has an illegal value.

ippStsNumChannelsErr

Indicates an error when numChannels has an illegal value.

ippStsSizeWrn

Indicates a warning when srcRoi exceeds the source image.

See Also