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

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

GetAffineTransform

Computes affine transform coefficients to map the source ROI to the quadrangle with the specified vertex coordinates

Syntax

IppStatus ippiGetAffineTransform (IppiRect srcRoi, const double quad[4][2], double coeffs[2][3]);

Include Files

ippi.h

Flavors with the _L suffix: ippi_l.h

Domain Dependencies

Headers: ippcore.h, ippvm.h, ipps.h

Libraries: ippcore.lib, ippvm.lib, ipps.lib

Parameters

srcRoi

Region of interest in the source image (of the IppiRect type).

quad

Vertex coordinates of the quadrangle, to which the source ROI is mapped by the affine transform function.

coeffs

Output array. Contains the target affine transform coefficients.

Description

This function operates with ROI (see ROI Processing in Geometric Transforms).

This function is used as a support function for the ippiWarpAffineLinear, WarpAffineNearest, and WarpAffineCubic functions. It computes the coefficients coeffs of the affine transform that must be used by the warping function to map the source rectangular ROI to the quadrangle with the specified vertex coordinates quad. The first dimension [4] of the array quad[4][2] is equal to the number of vertices, and the second dimension [2] means x and y coordinates of the vertex. Quadrangle vertices have the following meaning:

quad[0] corresponds to the transformed top-left corner of the source ROI, quad[1] corresponds to the transformed top-right corner of the source ROI, quad[2] corresponds to the transformed bottom-right corner of the source ROI, quad[3] corresponds to the transformed bottom-left corner of the source ROI.

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 quad, the function returns the warning message and continues operation with the computed values.

Return Values

ippStsNoErr

Indicates no error. Any other value indicates an error or warning.

ippStsRectErr

Indicates an error condition if width or height of the srcRoi is less than or equal to 1.

ippStsCoeffErr

Indicates an error condition if c00*c11 - c01*c10 = 0.

ippStsSizeErr

Indicates an error condition if srcRoi has a size field with zero or negative value.

ippStsAffineQuadChanged

Indicates a warning that coordinates of the 4th vertex of the specified quadrangle quad are not correct.