Interpolation function
#include "dip_interpolation.h"
dip_Error dip_Skewing ( in, out, shear, skew, axis, method, bgval, periodicSkew )
binary, integer, float
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.
Data type | Name | Description |
dip_Image | in | Input image |
dip_Image | out | Output image |
dip_float | shear (radians) | Shear angle |
dip_int | skew | Skew dimension |
dip_int | axis | Skew axis |
dipf_Interpolation | method | Interpolation method |
dip_BackgroundValue | bgval | Background value |
dip_Boolean | periodicSkew | Skew using periodic image boundaries |
The dipf_Interpolation enumaration consists of the following constants:
Name | Description |
DIP_INTERPOLATION_DEFAULT | Default method, usually equivalent to DIP_INTERPOLATION_BSPLINE |
DIP_INTERPOLATION_BSPLINE | B-Spline interpolation |
DIP_INTERPOLATION_FOURTH_ORDER_CUBIC | Forth order cubic interpolation |
DIP_INTERPOLATION_THIRD_ORDER_CUBIC | Third order cubic interpolation |
DIP_INTERPOLATION_LINEAR | Linear interpolation |
DIP_INTERPOLATION_ZERO_ORDER_HOLD | Zero order hold interpolation |
DIP_INTERPOLATION_NEAREST_NEIGHBOUR | Nearest neighbour interpolation |
DIP_INTERPOLATION_LANCZOS_2 | Lanczos interpolation with a=2 |
DIP_INTERPOLATION_LANCZOS_3 | Lanczos interpolation with a=3 |
DIP_INTERPOLATION_LANCZOS_4 | Lanczos interpolation with a=4 |
DIP_INTERPOLATION_LANCZOS_6 | Lanczos interpolation with a=6 |
DIP_INTERPOLATION_LANCZOS_8 | Lanczos 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:
Name | Description |
DIP_BGV_DEFAULT | Default: fill with zeros |
DIP_BGV_ZERO | Fill with zeros |
DIP_BGV_MAX_VALUE | Fill with maximum value for data type |
DIP_BGV_MIN_VALUE | Fill with minimum value for data type |