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

Skewing

Interpolation function

SYNOPSIS

#include "dip_interpolation.h"

dip_Error dip_Skewing ( in, out, shear, skew, axis, method, bgval, periodicSkew )

DATA TYPES

binary, integer, float

FUNCTION

This function skews the axis axis of in over an angle angle to out using the interpolation method method. The skew is over the centre of the image. If periodicSkew is set to DIP_TRUE, the output image will be of the same size as the input image, and its pixels in the skew dimension wrapped around the image boundaries. bgval is not used in this case.

ARGUMENTS

Data typeNameDescription
dip_ImageinInput image
dip_ImageoutOutput image
dip_floatshear (radians)Shear angle
dip_intskewSkew dimension
dip_intaxisSkew axis
dipf_InterpolationmethodInterpolation method
dip_BackgroundValuebgvalBackground value
dip_BooleanperiodicSkewSkew using periodic image boundaries

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

SEE ALSO

Rotation, Rotation3d, Rotation3d_Axis