VMTK
Loading...
Searching...
No Matches
VMTK Documentation

Introduction

The Vascular Modeling Toolkit (VMTK) is a collection of libraries and tools for 3D reconstruction, geometric analysis, mesh generation, and surface/volume data analysis for image-based modeling of blood vessels. It is used to turn segmented medical images (CT, MR, etc.) of vascular anatomy into computational models suitable for geometric characterization, mesh generation, and computational fluid dynamics (CFD) simulation. VMTK can be used via its standalone command-line interface, included as a Python or C++ library, or as an extension to the medical image processing platform 3D Slicer.

These pages document vtkVmtk, the C++ class library at the core of VMTK, built as an extension to VTK (and, for image segmentation, ITK). vtkVmtk implements the toolkit's core algorithms, organized into the modules listed under Modules (see the navigation above), matching the library's source directory structure:

  • Common: shared math and numerical-constant utilities used throughout the library.
  • ComputationalGeometry: centerline extraction and processing – Voronoi-diagram-based centerline computation, splitting/grouping centerlines into branches, bifurcation reference systems and vectors, the "polyball" implicit tube function family, surface capping, cross-section extraction, and related geometric filters.
  • Contrib: additional, community-contributed filters that extend or vary the behavior of the core modules (e.g. alternative capping, RBF interpolation, or centerline utility variants).
  • DifferentialGeometry: finite-element and finite-volume differential operators on surface and volume meshes (gradient, Laplace-Beltrami smoothing, harmonic mapping), built on a small sparse linear algebra layer and a stencil/neighborhood abstraction shared by the different discretization schemes.
  • IO: readers and writers for third-party mesh and CFD file formats (TetGen, FDNEUT, Dolfin/ FEniCS, Xda, Fluent).
  • Misc: surface and mesh post-processing utilities – additional capping strategies, remeshing helpers, wall shear rate/vorticity computation, streamline clustering and particle tracing, and volumetric meshing wrappers (TetGen).
  • Rendering: small VTK interactor/widget extensions used by vmtk's interactive rendering windows.
  • Segmentation: ITK-based image filters for level-set segmentation and vessel enhancement – geodesic active contours, colliding fronts, Hessian-based vesselness/objectness (Frangi, Sato) filtering, and vessel-enhancing anisotropic diffusion.
  • Utilities: low-level ITK/VTK image-pipeline bridging helpers used internally by the Segmentation module.

Most of these C++ classes are accessed through their one-to-one Python bindings (the vtkvmtk module) rather than written against directly in C++. The vmtkScripts layer wraps them into individual command-line tools, which can in turn be composed into processing pipelines with PypeS. This C++ reference is most useful when extending VMTK itself, implementing new filters, or understanding the algorithm behind a particular vmtk script.

Further resources