The goal here is to extract and create a 3D model of the surface of the blood vessels, using a level set method. The level sets are initialiazed using either the isosurface of a given intensity value (isosurface method) or a given intensity range (threshold method). A marching cube algorithm then extracts the surface.
The resulting surface can be subdivided using 3 methods:
(original points are preserved and linear subdivisions are created in between),
(original points are preserved and new points are added)
(original points are displaced and new points are added).
|The difference between the last two is the smoothness they tend to bend the surface to: C^1 for butterfly, C^2 for loop.|
The executable we use is named
input: a 3D isotropic image in MetaImage (.mha) format
output: a 3D model in STereoLithography (.stl) format
--input.image.filename: (string) Input image
--output.path: (string) Output file
--config-file: (string) Configuration file
--force-rebuild=1:(int) 0 to avoid computing if target file already exists, 1 to overwrite it
--pre-process.resize-from-reference-image.path: (string) Reference image to resize.
--method=threshold(string) method to use for level set initialization among: threshold or isosurface -
--image-fusion.operator=max(string) method operator among : max, min, multiply, substract -
--threshold.lower(double) lower bound for the threshold limit -
--threshold.higher(double) higher bound for the threshold limit -
--apply-connectivity.largest-region=1(bool) 1 to keep the n largest connected regions, 0 to keep everything -
--apply-connectivity.number=1(int) Number n used above.
--post-process.subdivide-surface(bool) 1 to enable surface subdivision, 0 to disable it
--post-process.smooth-surface(bool) 1 to enable surface smoothing, 0 to disable it
--subdivide-surface.method=butterfly(string) Name of the surface subdivision method to use, among: linear, butterfly, loop -
--subdivide-surface.subdivisions=1(int) Number of subdivisions -
--smooth-surface.method=taubin(string) Name of the surface smoothing method to use, among : taubin, laplace -
--smooth-surface.iterations=30(int) Number of iterations -
--smooth-surface.taubin.passband=0.1(double) Low-pass filter threshold for the Taubin method -
--smooth-surface.laplace.relaxation=0.01(double) Relaxation factor for the Laplace method
There is no known bug for this module. Please report any problem you may encounter.