Developer Reference

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

WarpAffine

Performs the general affine transform of the source volume.

Syntax

IppStatus ipprWarpAffine_8u_C1PV(const Ipp8u* const
pSrc
[], IpprVolume
srcVolume
, int
srcStep
, IpprCuboid
srcVoi
, Ipp8u* const
pDst
[], int
dstStep
, IpprCuboid
dstVoi
, const double
coeffs
[3][4], int
interpolation
, Ipp8u*
pBuffer
);
IppStatus ipprWarpAffine_16u_C1PV(const Ipp16u* const
pSrc
[], IpprVolume
srcVolume
, int
srcStep
, IpprCuboid
srcVoi
, Ipp16u* const
pDst
[], int
dstStep
, IpprCuboid
dstVoi
, const double
coeffs
[3][4], int
interpolation
, Ipp8u*
pBuffer
);
IppStatus ipprWarpAffine_32f_C1PV(const Ipp32f* const
pSrc
[], IpprVolume
srcVolume
, int
srcStep
, IpprCuboid
srcVoi
, Ipp32f* const
pDst
[], int
dstStep
, IpprCuboid
dstVoi
, const double
coeffs
[3][4], int
interpolation
, Ipp8u*
pBuffer
);
IppStatus ipprWarpAffine_8u_C1V(const Ipp8u*
pSrc
, IpprVolume
srcVolume
, int
srcStep
, int
srcPlaneStep
, IpprCuboid
srcVoi
, Ipp8u*
pDst
, int
dstStep
, int
dstPlaneStep
, IpprCuboid
dstVoi
, const double
coeffs[3][4]
, int
interpolation
, Ipp8u*
pBuffer
);
IppStatus ipprWarpAffine_16u_C1V(const Ipp16u*
pSrc
, IpprVolume
srcVolume
, int
srcStep
, int
srcPlaneStep
, IpprCuboid
srcVoi
, Ipp16u*
pDst
, int
dstStep
, int
dstPlaneStep
, IpprCuboid
dstVoi
, const double
coeffs[3][4]
, int
interpolation
, Ipp8u*
pBuffer
);
IppStatus ipprWarpAffine_32f_C1V(const Ipp32f*
pSrc
, IpprVolume
srcVolume
, int
srcStep
, int
srcPlaneStep
, IpprCuboid
srcVoi
, Ipp32f*
pDst
, int
dstStep
, int
dstPlaneStep
, IpprCuboid
dstVoi
, const double
coeffs[3][4]
, int
interpolation
, Ipp8u*
pBuffer
);
Include Files
ippi.h
Domain Dependencies
Headers:
ippcore.h
,
ippvm.h
,
ipps.h
Libraries:
ippcore.lib
,
ippvm.lib
,
ipps.lib
Parameters
pSrc
Array of pointers to the planes in the source volume.
srcVolume
Size, in pixels, of the source volume.
srcStep
Distance, in bytes, between the starting points of consecutive lines in each plane of the source volume.
srcPlaneStep
Distance, in bytes, between the starting points of consecutive lines in every plane of the source volume (for
8u_C1V
,
16u_C1V
, and
32f_C1V
flavors).
dstStep
Distance, in bytes, between the starting points of consecutive lines in each plane of the destination volume.
srcVoi
Volume of interest of the source volume.
pDst
Array of pointers to the planes in the destination volume.
dstVoi
Volume of interest of the destination volume.
dstStep
Distance, in bytes, between the starting points of consecutive lines in every plane of the destination volume.
dstPlaneStep
Distance, in bytes, between the starting points of consecutive lines in every plane of the destination volume (for
8u_C1V
,
16u_C1V
, and
32f_C1V
flavors).
coeffs
Coefficients of the affine transform.
interpolation
Type of interpolation, the following values are possible:
  • IPPI_INTER_NN
    -
    nearest neighbor interpolation,
  • IPPI_INTER_LINEAR
    -
    trilinear interpolation,
  • IPPI_INTER_CUBIC
    -
    tricubic interpolation,
  • IPPI_INTER_CUBIC2P_BSPLINE
    -
    B-spline,
  • IPPI_INTER_CUBIC2P_CATMULLROM
    -
    Catmull-Rom spline,
  • IPPI_INTER_CUBIC2P_B05C03
    -
    special two-parameters filter (1/2, 3/10).
pBuffer
Pointer to the external buffer.
Description
This function operates with volume of interest (VOI).
This affine warp function transforms the coordinates (
x,y,z
) of the source volume voxels according to the following formulas:
x' = c
00
*
x
+
c
01
*
y
+
c
02
*
z
+
c
03
y
' =
c
10
*
x
+ c
11
*
y
+
c
12
*
z
+ c
13
z
' =
c
20
*
x
+
c
21
*
y
+
c
22
*
z
+ c
23
where
x'
,
y
' and
z
' denote the voxel coordinates in the transformed volume, and
c
ij
are the affine transform coefficients stored in the array
coeffs
.
Before calling this function, compute the size of the external buffer
pBuffer
using the ipprWarpAffineGetBufSize function.
Return Values
ippStsNoErr
Indicates no error. Any other value indicates an error or a warning.
ippStsNullPtrErr
Indicates an error when one of the specified pointers is
NULL
.
ippStsSizeErr
Indicates an error when width, or height, or depth of the source and destination volumes is less than, or equal to zero.
ippStsCoeffErr
Indicates an error when determinant of the transform matrix
c
ij
is equal to zero.
ippStsInterpolationErr
Indicates an error when
interpolation
has an illegal value.
ippStsWrongIntersectVOI
Indicates a warning when
srcVoi
has no intersection with the source volume, operation is not performed.

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