genre | CSOModule |
authors | Alexander Koehn, Olaf Konrad |
package | MeVisLab/Standard |
dll | MLCSOModules |
definition | MLCSOModules.def |
see also | CSOIsoProcessor |
keywords | contour, isoline, isovalue, generate |
The module CSOIsoGenerator generates iso-contours for a whole image at a fixed iso value.
Attach a CSOList that is to be filled (attach a CSOManager to it) with the iso CSOs and an image to this module.
The module scans the input image in a slice-wise manner. The slice orientation is fixed and always the same as one would see in a standard 2D viewer (z-plane). If differently oriented slices should be used as a base for the generation of iso contours, use an OrthoReformat3 module first.
Each slice is scanned by a marching squares algorithm that produces always closed CSOs. The border is treated as being always lower that the iso value. The CSOs can be interpolated by a linear interpolation scheme and/or smoothed by applying a spline approximation (B-Splines). A generated CSO yields approximately as many seed points as there are voxels on the iso path.
in addition to the smoothing by applying the spline approximation, a Laplacian smoothing can be applied after the spline approximation. This smoothing algorithm applies also a term that counters the shrinking effect that would normally appear with a standard Laplacian smoothing.
A keeping mode lets the user adjust which CSOs on one slice should be kept; if the mode is set to All, all CSOs are kept (if they yield enough seed points if the according restricting is enabled). If it is set to Largest, only the largest CSO (measured in number of seed points) on a slice is kept of the proto contours. The keeping modes Outmost and Inner apply an actual point-in-polygon test with using an arbitrary seed point as the point and all other CSOs as polygons. Testing one point is sufficient because iso contours never cross. Note that all keeping modes apply to contours on the same slice only.
Add To Group: Enum | Group Id: Integer | Smoothing Factor: Float |
Auto apply: Bool | Group Label: String | Smoothing Mode: Enum |
Auto Clear: Bool | Interpolate contours: Bool | Smoothing Range: Integer |
Auto Description: Enum | Iso Value: Float | Start condition: Enum |
Creation Mode: Enum | isProcessing: Bool | Start position: Vector3 |
Creator Id: Integer | Keeping Mode: Enum | Time Point: Integer |
done: Trigger | Min. Num. Seeds: Integer | Update: Trigger |
Empty group before generation: Bool | Mode: Enum | Use: Bool |
Ensure clockwise orientation: Bool | Num. Smoothing Passes: Integer | Use Smooth: Bool |
Generate For All Timepoints: Bool | progress: Float |
Defines the update mode of this module.
Values:
Title | Name | Description |
---|---|---|
Off | Off | The module does not compute anew if the input image changes. |
Auto Update | AutoUpdate | The module computes anew if the input image changes. |
If checked, the module computes anew if any field on the GUI is changed.
If checked, the module will empty the CSOGroup where it stores the generated iso contours in. See Add To Group.
Defines how the module determines in which CSOGroup the generated iso contours should be stored in.
Values:
Title | Name | Description |
---|---|---|
None | AddToGroupNone | The generated iso contours are not stored in any CSOGroup. |
By Label | AddToGroupByLabel | The generated iso contours are stored in a CSOGroup that is given by a label in Group Label. If a CSOGroup with the given label does not already exist, it is created before being filled. |
By Id | AddToGroupById | The generated iso contours are stored in a CSOGroup that is given by an id in Group Id. If a CSOGroup with the given id does not already exist, the generated iso contours are not stored in any group. |
Sets the label of the CSOGroup newly generated iso contours should be stored in.
If such a CSOGroup does not already exist, it is created.
If Empty group before generation is checked, the CSOGroup with this label is emptied before filled again.
Sets the id of the CSOGroup newly generated iso contours should be stored in.
If such a CSOGroup does not already exist, the generated CSO will not be stored in any CSOGroup.
If Empty group before generation is checked, the CSOGroup with this idis emptied before filled again.
Sets the creator id to the generated iso contours for a later identification.
This can be an arbitrary number.
If checked, the generated CSOs are interpolated by a linear interpolation scheme regarding the voxel values and the iso value.
Sets the time point for which the CSOs are to be generated.
If checked, all slices for all available timepoints are scanned.
Defines the smoothing mode that is applied after the linear interpolation (Interpolate contours) and before the Laplacian smoothing (Use Smooth).
Values:
Title | Name |
---|---|
None | SmoothingModeNone |
Spline Approximation | SmoothingModeSplineApproximation |
Spline Interpolation | SmoothingModeSplineInterpolation |
If checked, the module only collects CSO on slices with an adjustable minimum number of seed points (Min. Num. Seeds) which are generated as much as voxels lie on the iso path.
Defines the keeping mode to determine which of the CSO are to be kept on a slice.
Values:
Title | Name | Description |
---|---|---|
All | KeepingModeAll | Keep all generated iso contours. |
Largest | KeepingModeLargest | Keep only the largest CSO (with the most seed points). |
Outmost | KeepingModeOutmost | Keep only the outmost CSOs (or in other words, remove all inner CSOs). |
Inner | KeepingModeInner | Keep only the inner CSOs. |
Defines the description set for each generated CSO.
Values:
Title | Name | Description |
---|---|---|
None | None | No description is set. |
Slice | Slice | The slice index in which the CSO is located is set. |
Timepoint | Timepoint | Timepoint index where the CSO is located is set. |
Slice and Timepoint | Slice and Timepoint | Slice index and timepoint index where the CSO is located is set, separated by a space. |
If checked, the module ensures that all generated iso contours have a clockwise orientation.
If checked, a Laplacian smoothing is applied.
Sets the number of passes of the Laplacian smoothing.
Sets the factor for Laplacian smoothing.
Sets the smoothing range for the neighborhood that is considered for smoothing.
A value of 1 means that the direct neighbors are taken into consideration, a value of 2 means that two points on the contour to each side of a point are considered for smoothing and so on.
If checked, the module clears the input CSOList on any image change.
Defines the creation mode.
Values:
Title | Name | Description |
---|---|---|
All | All | Creates all iso-contours on all slices. |
Single | Single | Creates only the first found iso-contour of all slices. |
Defines a condition for starting to scan an iso-contour if Creation Mode is Single.
Values:
Title | Name |
---|---|
Always | Always |
Hit Lower Iso Value | HitLowerIsoValue |
Hit Greater Iso Value | HitGreaterIsoValue |
Sets a start position for scanning for iso-contours if Creation Mode is Single.