Git Product home page Git Product logo

parent-vessel-reconstruction's Introduction

Parent-Vessel-Reconstruction

An objective approach to digital removal of vascular aneurysms.

This is the C++ implementation of VMTK PARENT VESSEL RECONSTRUCTION. The main objective of the software is to reconstruct parent vessel from aneurysm one. Detail theory can be found from Ford's publication

Note: Clipping section now is identified manually with given clipping center and length for robustness. Only forward centerline is required for both lateral and bifurcation type aneurysm.

Usage

Example usage: ./Parent-Vessel-Reconstruction.exe <vessel-surface-path> <centerline-path> <output-directory>

You should first follow https://github.com/jackyko1991/Vessel-Centerline-Extraction to compute centerline from vessel surface file.

When render window pop up, press space to locate the section for vessel reconstruction. Use + or - to change reconstruction zone size. You may need to adjust with -d to increase the threshold of including adjacent vessels at bifurcation points. Then press Enter to reconstruct parent vessels.

In output-directory following files will be delivered if reconstruction is successful:

  • centerline_interpolate.vtp (interpolated centerline for reconstruction purpose)
  • centerline_patched.vtp (clipped centerline before interpolation)
  • source_recon.vtp (reconstructed parent vessel)
  • voronoi_clipped.vtp (clipped Voronoi diagram for interpolation input)
  • voronoi_recon.vtp (Voronoi diagram used for parent vessel reconstruction)

Note: centerline_interpolate.vtp does not provide sufficiently correct information of the reconstructed parent vessels. We recommend to recompute the centerline again for the output surface to exact geometry data.

Use -h command to list detail usage:

$ ./Parent-Vessel-Reconstruction.exe -h
Reconstruct parent vessel from aneurysm vessels

Options:
  -?, -h, --help         Displays this help.
  -v, --version          Displays version information.
  -i                     Save intermediate files
  -s, --smooth <smooth>  Voronoi diagram smooth factor between 0 and 1
                         (default=0.6)
  -d, --distance <dist>  Distance between picked point and independent
                         centerline center of mass. (default=1.5)

Arguments:
  source          Source file to process.
  centerline      Centerline file to process.
  output          Output file location.

Workflow

  1. Compute forward centerline with user defined source and target points
  2. Pick the section to clip
  3. Clip centerline and corresponding Voronoi diagram
  4. Smooth Vornoi diagram
  5. Perform centerline and Voronoi diagram interpolation (we change to vtkPointInterpolator with adaptive Gaussian kernel instead of parallel transport method used by VMTK)
  6. (Todo) End points extension
  7. Reconstruct vessel surface

Example Data

Sample dataset can be found from ./Data. The provided sample data contain aneurysm and stenosis simultaneously. Corresponding centerlines are included in the same folder.

  • vessel1: lateral type aneurysm
  • vessel2: bifurcation/terminus type aneurysm
  • vessel3: bifurcation/terminus type aneurysm, you will need to increase -d option to above 6 for large terminus aneurysm case

Results

White surface is the input, blue one is the reconstructed parent vessel.

Lateral Aneurysm

Lateral aneurysm

Stenosis

Stenosis

Terminus Aneurysm

Terminus aneurysm Large terminus aneurysm

References

parent-vessel-reconstruction's People

Contributors

jackyko1991 avatar

Stargazers

Ougen avatar  avatar  avatar  avatar  avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.