WarpAffineQuad

Performs image affine warping that transforms the given source quadrangle to the specified destination quadrangle.

Syntax

Case 1: Operation on pixel-order data

IppStatus ippiWarpAffineQuad_<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);

Supported values for mod:

8u_C1R

16u_C1R

32f_C1R

8u_C3R

16u_C3R

32f_C3R

8u_C4R

16u_C4R

32f_C4R

8u_AC4R

16u_AC4R

32f_AC4R

Case 2: Operation on planar-order data

IppStatus ippiWarpAffineQuad_<mod>(const Ipp<datatype>* const pSrc[3], IppiSize srcSize, int srcStep, IppiRect srcRoi, const double srcQuad[4][2], Ipp<datatype>* const pDst[3], int dstStep, IppiRect dstRoi, const double dstQuad[4][2], int interpolation);

Supported values for mod:

8u_P3R

16u_P3R

32f_P3R

IppStatus ippiWarpAffineQuad_<mod>(const Ipp<datatype>* const pSrc[4], IppiSize srcSize, int srcStep, IppiRect srcRoi, const double srcQuad[4][2], Ipp<datatype>* const pDst[4], int dstStep, IppiRect dstRoi, const double dstQuad[4][2], int interpolation);

Supported values for mod:

8u_P4R

16u_P4R

32f_P4R

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:

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.

Description

The function ippiWarpAffineQuad is declared in the ippi.h file. It operates with ROI (see ROI Processing in Geometric Transforms).

This function applies the affine transform to an arbitrary quadrangle srcQuad in the source image pSrc. The operations take place only inside the intersection of the source image ROI srcRoi and the source quadrangle. The function ippiWarpAffineQuad uses the same formulas for pixel mapping as in the case of the ippiWarpAffine 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 function computes the coordinates of the 4th vertex of the destination quadrangle that uniquely depends on the three other vertices. If the computed coordinates are not equal to the ones specified in dstQuad, the function returns the warning message and continues operation 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] holds x and y coordinates of the vertex.

Edge smoothing interpolation is applicable only if the source quadrangle lies in the source image ROI.

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, line, or point, or if dstQuad has wrong vertex coordinates.

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.

ippStsAffineQuadChanged

Indicates a warning that coordinates of the 4th vertex of the destination quadrangle dstQuad are corrected by the function.

Submit feedback on this help topic

Copyright © 2000 - 2011, Intel Corporation. All rights reserved.