Developer Reference

  • 2020
  • 07/15/2020
  • Public Content
Contents

Remap

Performs the look-up coordinate mapping of the elements of the source volume.

Syntax

Case 1:
Operation on non-contiguous volume data
IppStatus ipprRemap_8u_C1PV(const Ipp8u*
pSrc
[], IpprVolume
srcVolume
, int
srcStep
, IpprCuboid
srcVoi
, const Ipp32f*
pxMap
[], const Ipp32f*
pyMap
[], const Ipp32f*
pzMap
[], int
mapStep
, Ipp8u*
pDst
[], int
dstStep
, IpprVolume
dstVolume
, int
interpolation
);
IppStatus ipprRemap_16u_C1PV(const Ipp16u*
pSrc
[], IpprVolume
srcVolume
, int
srcStep
, IpprCuboid
srcVoi
, const Ipp32f*
pxMap
[], const Ipp32f*
pyMap
[], const Ipp32f*
pzMap
[], int
mapStep
, Ipp16u*
pDst
[], int
dstStep
, IpprVolume
dstVolume
, int
interpolation
);
IppStatus ipprRemap_32f_C1PV(const Ipp32f*
pSrc
[], IpprVolume
srcVolume
, int
srcStep
, IpprCuboid
srcVoi
, const Ipp32f*
pxMap
[], const Ipp32f*
pyMap
[], const Ipp32f*
pzMap
[], int
mapStep
, Ipp32f*
pDst
[], int
dstStep
, IpprVolume
dstVolume
, int
interpolation
);
Case 2:
Operation on contiguous volume data
IppStatus ipprRemap_8u_C1V(const Ipp8u*
pSrc
, IpprVolume
srcVolume
, int
srcStep
, int
srcPlaneStep
, IpprCuboid
srcVoi
, const Ipp32f*
pxMap
, const Ipp32f*
pyMap
, const Ipp32f*
pzMap
, int
mapStep
, int
mapPlaneStep
, Ipp8u*
pDst
, int
dstStep
, int
dstPlaneStep
, IpprVolume
dstVolume
, int
interpolation
);
IppStatus ipprRemap_16u_C1V(const Ipp16u*
pSrc
, IpprVolume
srcVolume
, int
srcStep
, int
srcPlaneStep
, IpprCuboid
srcVoi
, const Ipp32f*
pxMap
, const Ipp32f*
pyMap
, const Ipp32f*
pzMap
, int
mapStep
, int
mapPlaneStep
, Ipp16u*
pDst
, int
dstStep
, int
dstPlaneStep
, IpprVolume
dstVolume
, int
interpolation
);
IppStatus ipprRemap_32f_C1V(const Ipp32f*
pSrc
, IpprVolume
srcVolume
, int
srcStep
, int
srcPlaneStep
, IpprCuboid
srcVoi
, const Ipp32f*
pxMap
, const Ipp32f*
pyMap
, const Ipp32f*
pzMap
, int
mapStep
, int
mapPlaneStep
, Ipp32f*
pDst
, int
dstStep
, int
dstPlaneStep
, IpprVolume
dstVolume
, int
interpolation
);
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 of the source volume.
srcStep
Distance, in bytes, between the starting points of consecutive lines in every 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).
srcVoi
Region of interest in the source volume.
pxMap
,
pyMap
,
pzMap
Arrays of pointers to the starts of the 2D buffers, containing tables of the x-, y- and z-coordinates. If the referenced coordinates correspond to a voxel outside of the source VOI, no mapping of the source pixel is done.
mapStep
Step, in bytes, through the buffers containing tables of the x-, y- and z-coordinates.
mapPlaneStep
Distance, in bytes, between the starting points of consecutive lines in every plane of the buffers containing tables (for
8u_C1V
,
16u_C1V
, and
32f_C1V
flavors).
pDst
Array of the pointers to the planes in 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).
dstVolume
Size of the destination volume.
interpolation
The 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).
Description
This function operates with volume of interest (VOI).
This function transforms the source volume by remapping its voxels. Voxel remapping is performed using
pxMap
,
pyMap
and
pzMap
buffers to look-up the coordinates of the source volume voxel that is written to the target destination volume voxel. The application has to supply these look-up tables.
The remapping of the source voxels to the destination voxels is made according to the following formulas:
dst_voxel
[
i
,
j
,
k
] =
src_voxel
[
pxMap
[
i
,
j
,
k
],
pyMap
[
i
,
j
,
k
],
pzMap
[
i
,
j
,
k
]]
where
i
,
j
,
k
are the
x-
,
y-
and
z
-coordinates of the target destination volume voxel
dst_voxel
;
pxMap
[
i
,
j
,
k
] contains the
x
-coordinates of the source volume voxels
src_voxel
that are written to
dst_voxel
.
pyMap
[
i
,
j
,
k
] contains the
y
-coordinates of the source volume voxels
src_voxel
that are written to
dst_voxel
.
pzMap
[
i
,
j
,
k
] contains the
z
-coordinates of the source volume voxels
src_voxel
that are written to
dst_voxel
.
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 has zero or negative value.
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