DIPlib Documentation - ©1995-2017 Quantitative Imaging Group, Delft University of Technology.

Rotation3d_Axis

Interpolation function

SYNOPSIS

#include "dip_interpolation.h"

dip_Error dip_Rotation3d_Axis ( in, out, angle, axis, method, bgval )

DATA TYPES

binary, integer, float

FUNCTION

This function rotates an 3-D image in over angle around axis to out using three skews. The rotation axis is 0 (x), 1 (y) or 2 (z). The function implements the rotation in the mathmetical sense, but note the Y-axis is positive downwards! The rotation is over the centre of the image.

For backwards compatability, the macro Rotation3dAxis calls the function Rotation3d_Axis but uses 1, 2 and 3 to select the axis of rotation.

ARGUMENTS

Data typeNameDescription
dip_ImageinInput image
dip_ImageoutOutput image
dip_floatangle (radians)Rotation angle
dip_intaxisRotation axis
dipf_InterpolationmethodInterpolation method
dip_BackgroundValuebgvalBackground value

The dipf_Interpolation enumaration consists of the following constants:

NameDescription
DIP_INTERPOLATION_DEFAULTDefault method, usually equivalent to DIP_INTERPOLATION_BSPLINE
DIP_INTERPOLATION_BSPLINEB-Spline interpolation
DIP_INTERPOLATION_FOURTH_ORDER_CUBICForth order cubic interpolation
DIP_INTERPOLATION_THIRD_ORDER_CUBICThird order cubic interpolation
DIP_INTERPOLATION_LINEARLinear interpolation
DIP_INTERPOLATION_ZERO_ORDER_HOLDZero order hold interpolation
DIP_INTERPOLATION_NEAREST_NEIGHBOURNearest neighbour interpolation
DIP_INTERPOLATION_LANCZOS_2Lanczos interpolation with a=2
DIP_INTERPOLATION_LANCZOS_3Lanczos interpolation with a=3
DIP_INTERPOLATION_LANCZOS_4Lanczos interpolation with a=4
DIP_INTERPOLATION_LANCZOS_6Lanczos interpolation with a=6
DIP_INTERPOLATION_LANCZOS_8Lanczos interpolation with a=8

All interpolation is performed separably. B-spline interpolation uses all samples on the image line. Cubic interpolation uses a cubic spline kernel (piecewise cubic polynomial), covering 4 (third order) or 6 (fourth order) input samples. Lanczos interpolation uses a sinc function windowed by a wider sinc function, using 2a input samples. Zero order hold and nearest neighbour are the same method, but for the function Resampling, zero order hold results in a shift of half a pixel (i.e. the nearest value "to the left" is always used).

The dip_BackgroundValue enumaration consists of the following flags:

NameDescription
DIP_BGV_DEFAULTDefault: fill with zeros
DIP_BGV_ZEROFill with zeros
DIP_BGV_MAX_VALUEFill with maximum value for data type
DIP_BGV_MIN_VALUEFill with minimum value for data type

KNOWN BUGS

This function is only implemented for 3D images, for rotating 2D images see Rotation.

SEE ALSO

Skewing, Rotation, Rotation3d