19 #ifndef MIRTK_EuclideanDistanceTransform_H 20 #define MIRTK_EuclideanDistanceTransform_H 22 #include "mirtk/ImageToImage.h" 28 template <
class TVoxel>
29 class EuclideanDistanceTransform :
public ImageToImage<TVoxel>
31 mirtkInPlaceImageFilterMacro(EuclideanDistanceTransform, TVoxel);
36 enum Mode { DT_2D, DT_3D };
41 Mode _distanceTransformMode;
44 int edtVornoiEDT(
long *,
long);
47 void edtComputeEDT_2D(
char *,
long *,
long,
long);
50 void edtComputeEDT_3D(
char *,
long *,
long,
long,
long);
53 int edtVornoiEDT_anisotropic(VoxelType *,
long,
double);
56 void edtComputeEDT_2D_anisotropic(
const VoxelType *, VoxelType *,
long,
long,
double,
double);
59 void edtComputeEDT_3D_anisotropic(
const VoxelType *, VoxelType *,
long,
long,
long,
double,
double,
double);
64 EuclideanDistanceTransform(Mode = DT_3D);
67 ~EuclideanDistanceTransform() {};
73 virtual void Radial();
76 virtual void TRadial();
82 #endif // MIRTK_EuclideanDistanceTransform_H
virtual double Run(int, int, int, int=0)
Run filter on single voxel.