Tool | scripting | streaming | purpose |
---|---|---|---|
cpsSegment | yes | yes | process large tomograms |
cpsSegmentGUI | no | yes | find/test MetaFilters and parameter, visual feedback |
cpsOrient | yes | yes | process large tomograms, compute OTs, FOD histograms, visualization as RGB stacks |
cpsCurvature | yes | yes | compute surface curvature (Hessian implicit, patch based explicit) on segmentation input |
cpsHomogenizeCylinderSample | no | no | image enhancement assuming cylinder symmetriic and multiplicative background modulation |
Although the name implies image segmentation as the prime objective cpsSegment(GUI) is used for other image filter operations that read a scalar valued tomogram and produce one or more output images of the same extend. The result values are not necessarily binary or multiple segmentation labels.
The input image can be any scalar pixel type readable by ITK ImageIO. However it will not just be casted to some "internal" pixel type but interpreted as a measure of material density that should optimally make use of the input pixel types value range. Specifically this means that the value range of the input file will be linearly rescaled to the internally used pixel type. E.g. [ -127,..., 128 ] will be mapped to [0, ...., 65535] if "16US" is selected as the pixel type for I/O.
In case of floats, the range [0.0, 1.0] will always be considered the maximum input range. Higher/lower values will be mapped to 1.0/0.0.
Several image filter pipelines are implemented and can be used directly. We call such a pipeline MetaFilter:
MetaFilter | description | available output channels |
---|---|---|
ConnectedComponentMF | classical region growing algorithms as implemented in ITK: "connected threshold", "neighborhood connected" and "confidence connected" | Thresholded, DistanceMap, ConfidenceConnected, ConnectedThreshold,NeighborhoodConnected |
ThresholdMF | simple threshold segmentation | Thresholded |
SmoothingMF | image smoothing (isotropic gauss or median window) and optionally rescaling of the output to a specific value range | GaussianRecursive, GaussianRecursiveRescaled, Median, MedianRescaled |
CircularVotingMF | experimental operator for the medialness of curvilinear objects (e.g. fibers) | CircularVoting |
MorphologyMF | gray value morphology with a flat disk structuring element | Erode, Dilate, Open, Close |
DiffusionEnhancementMF | Coherence enhancing diffusion (CED) adapted from TubeTK | CoherenceEnhancingDiffusion |
StructureTensorFeaturesMF | featuers computed from the eigen values of the structuer tensor | Curveness |
The MetaFilter can be selected from the menu. The postfixes "8UC" and "16US" signify the bit depth of the result image. So each output channel will be stored as either 8 bit unsigned char or 16 bit unsigned short integer, while the concrete mapping depends on the MetaFilter implementation. Rescaled means that the user can manually adjust upper and lower value of some internal filter result that will be mapped to the maximum (255 resp. 65535) and minimum (0) output integer by means of linear interpolation.