Mapped Hexahedral Meshing

From NAMIC Wiki
Revision as of 16:39, 6 January 2008 by Vmagnotta (talk | contribs)
Jump to: navigation, search
Home < Mapped Hexahedral Meshing

Objective:

  • Develop a tool for mapped meshing that will warp a template mesh onto a surface for a new subject
  • Determine the limits that the warping algorithm will succeed and fail
  • Apply these techniques to a sample of data to determine the reliability of the algorithm with respect to mesh quality

Progress:

  • Warped meshing framework has been developed using VTK and ITK using a finite element approach
    • VTK
      • Support the reading and writing of meshes (vtkUnstructuredGrid) and surfaces (vtkPolyData)
      • Distance measures between the deforming mesh and the subject surface
      • Initial registration - Iterative Closest Point or Procrustes
    • ITK
      • Finite element framework used to warped the template mesh onto the subject surface
  • Registration made hierarchical to speed up the registration process
    • Requires multiple template meshes to exist
    • This is readily supported using the interactive meshing tools by changing the average edge length
    • Subsequent meshes are initialized using a thin plate splines
  • Parameters allowed to vary at each level of the registration
    • Iterations
    • Young's Modulus
  • Convergence based on distance between the warped template and the subject surface
    • User specified convergence threshold in mm
    • Convergence can be based on average or maximum distance
  • Boundary conditions can be applied
    • Center of the mesh - Holds the eight nodes closest to the center of the mesh fixed
    • External - Applies boundary conditions to the mesh as they fall within a user specified tolerance of the subject surface
  • Initial testing done by warping a cube mesh onto a sphere
    • Evaluation:
      • Distance between warped mesh and subject surface
      • Mesh quality
  • Meshing module is now built by default with Slicer3

To Do:

  • We should remove the need for the surface extraction when Slicer3 supports the loading of unstructured grids.

Key Investigators:

  • Iowa: Nicole Grosland, Vincent Magnotta, Ritesh Bafna

Links:

Description: This program will convert an image into a hexahedral mesh using the voxels as the hexahedral elements. This is is typically done for only a portion of the image and thus a binary image from a segmentation may be used to define the region for meshing. Since these meshes may be fairly large the user is allowed to downsample the image by an integer value. Currently this must be odd.

This tool was developed as part of an NIH NA-MIC Collaboration Grant EB005973.

Program Usage:

VoxelMeshingModule 

 --imagefilename      Input image File Name
 --maskfilename       Input mask File Name
 --abaqusfilename     Output Abaqus Filename
 --vtkfilename        Output mesh VTK filename
 --vtksurfacefilename Output mesh surface VTK filename (Hack required for slicer3)
 --resamplesize       The image resample downsampling factor - Must be odd
 --meshindexoffset    The mesh index offset for nodes and elements
 --poissonratio       Poisson Ratio for the mesh
 --abaqustitle        Abaqus title for generated mesh
 --numberofbins       The number of histogram bins in the mesh
 --histogamlowerbound The lower bound for the mesh histogram
 --histogamupperbound The upper bound for the mesh histogram
 --histogambinfile    Mesh material properties histogram bin filename

Figures:

Surface of proximal phalanx generated via Slicer3
Voxel mesh generated via Slicer3 execution Model
Slicer3 Voxel Mesh Module