public class Skeletonize3D_ extends Object implements ij.plugin.filter.PlugInFilter
This work is an implementation by Ignacio Arganda-Carreras of the 3D thinning algorithm from Lee et al. "Building skeleton models via 3-D medial surface/axis thinning algorithms. Computer Vision, Graphics, and Image Processing, 56(6):462–478, 1994." Based on the ITK version from Hanno Homann http://hdl.handle.net/1926/1292
More information at Skeletonize3D homepage: http://imagejdocu.tudor.lu/doku.php?id=plugin:morphology:skeletonize3d:start
CONVERT_TO_FLOAT, DOES_16, DOES_32, DOES_8C, DOES_8G, DOES_ALL, DOES_RGB, DOES_STACKS, DONE, FINAL_PROCESSING, KEEP_THRESHOLD, NO_CHANGES, NO_IMAGE_REQUIRED, NO_UNDO, NO_UNDO_RESET, PARALLELIZE_IMAGES, PARALLELIZE_STACKS, ROI_REQUIRED, SNAPSHOT, STACK_REQUIRED, SUPPORTS_MASKING
Constructor and Description |
---|
Skeletonize3D_() |
Modifier and Type | Method and Description |
---|---|
void |
computeThinImage(ij.ImageStack outputImage)
Post processing for computing thinning.
|
void |
fillnumOfPointsLUT(int[] LUT)
Fill number of points in octant LUT
|
byte[] |
getNeighborhood(ij.ImageStack image,
int x,
int y,
int z)
Get neighborhood of a pixel in a 3D image (0 border conditions)
|
int |
getThinningIterations() |
char |
indexOctantNEB(byte[] neighbors) |
char |
indexOctantNEU(byte[] neighbors) |
char |
indexOctantNWB(byte[] neighbors) |
char |
indexOctantNWU(byte[] neighbors) |
char |
indexOctantSEU(byte[] neighbors) |
char |
indexOctantSWB(byte[] neighbors) |
char |
indexOctantSWU(byte[] neighbors) |
char |
indextOctantSEB(byte[] neighbors) |
void |
prepareData(ij.ImageStack outputImage)
Prepare data for computation.
|
void |
run(ij.process.ImageProcessor ip)
Process the image.
|
int |
setup(String arg,
ij.ImagePlus imp)
This method is called once when the filter is loaded.
|
public int setup(String arg, ij.ImagePlus imp)
setup
in interface ij.plugin.filter.PlugInFilter
arg
- argument specified for this pluginimp
- currently active imagepublic void run(ij.process.ImageProcessor ip)
run
in interface ij.plugin.filter.PlugInFilter
PlugInFilter.run(ij.process.ImageProcessor)
public void prepareData(ij.ImageStack outputImage)
outputImage
- output image stackpublic void computeThinImage(ij.ImageStack outputImage)
outputImage
- output image stackpublic byte[] getNeighborhood(ij.ImageStack image, int x, int y, int z)
image
- 3D image (ImageStack)x
- x- coordinatey
- y- coordinatez
- z- coordinate (in image stacks the indexes start at 1)public void fillnumOfPointsLUT(int[] LUT)
LUT
- number of points in octant LUTpublic char indexOctantNEB(byte[] neighbors)
public char indexOctantNWB(byte[] neighbors)
public char indextOctantSEB(byte[] neighbors)
public char indexOctantSWB(byte[] neighbors)
public char indexOctantNEU(byte[] neighbors)
public char indexOctantNWU(byte[] neighbors)
public char indexOctantSEU(byte[] neighbors)
public char indexOctantSWU(byte[] neighbors)
public int getThinningIterations()
Copyright © 2015–2021 Fiji. All rights reserved.