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

Resampling

Interpolation function

SYNOPSIS

#include "dip_interpolation.h"

dip_Error dip_Resampling ( in, out, zoom, shift, method )

DATA TYPES

binary, integer, float

FUNCTION

This function resmaples the input image in to out using various interpolation methods. Both a (subpixel) shift and a zoom factor are supported. The size of the output image is zoom times the size of in. If shift is zero, a shift of zero is assumed. If zoom is zero, a zoom of 1.0 is assumed.

ARGUMENTS

Data typeNameDescription
dip_ImageinInput image
dip_ImageoutOutput image
dip_FloatArrayzoomZoom factor
dip_FloatArrayshiftShift
dipf_InterpolationmethodInterpolation method

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).

SEE ALSO

Subsampling