Medical Imaging Interaction Toolkit  2018.4.99-12ad79a3
Medical Imaging Interaction Toolkit
mitk::ACVD Namespace Reference


class  RemeshFilter
 Encapsulates mitk::ACVD::Remesh function as filter. More...


MITKREMESHING_EXPORT Surface::Pointer Remesh (Surface::ConstPointer surface, unsigned int t, int numVertices, double gradation, int subsampling=10, double edgeSplitting=0.0, int optimizationLevel=1, bool forceManifold=false, bool boundaryFixing=false)
 Remesh a surface and store the result in a new surface. More...

Function Documentation

◆ Remesh()

mitk::Surface::Pointer mitk::ACVD::Remesh ( Surface::ConstPointer  surface,
unsigned int  t,
int  numVertices,
double  gradation,
int  subsampling = 10,
double  edgeSplitting = 0.0,
int  optimizationLevel = 1,
bool  forceManifold = false,
bool  boundaryFixing = false 

Remesh a surface and store the result in a new surface.

The ACVD library is used for remeshing which is based on the paper "Approximated Centroidal Voronoi Diagrams for Uniform Polygonal Mesh Coarsening" by S. Valette, and J. M. Chassery. There are a few rules of thumbs regarding the ranges of parameters to gain high quality remeshed surfaces:

  • numVertices is exact, however, if boundaryFixing is enabled, additional vertices are generated at boundaries
  • Set gradation to zero in case you want polygons of roughly the same size all over the remeshed surface; start with 1 otherwise
  • subsampling has direct influence on the quality of the remeshed surface (higher values take more time)
  • edgeSplitting is useful for surfaces that contain long and thin triangles but takes a long time
  • Leave optimizationLevel set to 1 as greater values result in degenerated polygons
  • Irregular shrinking of boundaries during remeshing can be avoided by boundaryFixing, however this results in additional, lower quality polygons at boundaries
[in]surfaceInput surface.
[in]tTime step of a four-dimensional input surface, zero otherwise.
[in]numVerticesDesired number of vertices in the remeshed surface, set to zero to keep original vertex count.
[in]gradationInfluence of surface curvature on polygon size.
[in]subsamplingSubsample input surface until number of vertices exceeds initial count times this parameter.
[in]edgeSplittingRecursively split edges that are longer than the average edge length times this parameter.
[in]optimizationLevelMinimize distance between input surface and remeshed surface.
[in]boundaryFixingKeep original surface boundaries by adding additional polygons.
Returns the remeshed surface or nullptr if input surface is invalid.

Definition at line 70 of file mitkACVD.cpp.

References MITK_INFO, and ValidateSurface().

Referenced by mitk::ACVD::RemeshFilter::GenerateData().