genre | CSOProcessor |
authors | Alexander Köhn, Olaf Konrad |
package | MeVisLab/Standard |
dll | SoCSO |
definition | SoCSO.def |
see also | SoView2DCSOEditor, CSOIsoGenerator |
keywords | contour, interpolation, segmentation, isoline, isovalue, interactive |
The module CSOIsoProcessor allows for a generation of iso contours on slices.
Attach this module to the inProcessor field of a SoView2DCSOEditor module.
The module can generate iso contours at a fixed iso value, or at an interactively adjustable iso value. The module can either generate a single CSO, or can find all contours for a certain iso value. The resulting CSOs are generated on base of a marching squares algorithm. Ambiguous cells are always treated in the same way, thus resolving the ambiguities.
If the CSOIsoProcessor should generate all contours on a slice, the iso value can be adjusted once, and on the next mouse click, all CSOs at the given iso value are generated. If the iso value should be interactively set, the active mouse button can be pressed and held down while moving the mouse cursor over the image; all the contours at the iso value (this is the voxel value under the current mouse pointer location) are generated immediately.
If the module should create only one CSO at a time, the behavior in the interactive case is quite similar to the behavior described above. If the iso value is fixed, however, the module searches on base of a broad search for the nearest (marching square-) cell with a zero crossing and starts the contouring algorithm from there. The attempt of finding such a cell can further be influenced by the Start Condition; this parameter can be adjusted, so that the module compares the fixed iso value with the current value under the mouse cursor. If the Start Condition is set to Always, a new CSO is always generated (if an according zero crossing is found within the image). If it is set to Hit Lower Iso Value or to Hit Greater Iso Value the current image value under the cursor position must be either lower or greater than the adjusted fixed iso value in order to trigger a search for a zero crossing-cell.
Generally, the CSOIsoProcessor processes the image that is shown in the viewer to which the according SoView2DCSOEditor is attached to. But it can be necessary to process another image for the finding of CSOs, like an overlay image. For that case, the module has an input image field. In order to activate the processing of the input image, the according field needs to be checked (Use input image). For the use of the module in conjunction with ortho-reformatted images or with MPRs, the module yields an Info tab with all the needed information. Those fields must be connected with the modules that supply the input image. Refer to the example network for further information and note that the optional input image must have the same image size as the image that is shown in the according viewer.
All generated CSOs can be interpolated linearly on base of the ratio of the iso value and the voxel values of the voxels the concerning contour is running through. Additionally or alternatively, a spline approximation (B-Splines) scheme can be applied to the CSOs as a smoothing.
In interactive mode, the module does not facilitate the editing of generated contours.
If clicked onto a connected viewer on a free space (the mouse cursor looks like a fill bucket), a new CSO is generated. Depending on the parameter Find all contours, one or more CSOs are created. Also, the usage of a fixed or an interactively determined iso value influences the creation of the CSO(s).
If clicked to the vicinity of an existing CSO, the CSO in the vicinity is selected.
addCSOToGroupMode: Enum | Interpolate contour: Bool | Update Start Position: Bool |
addCSOToGroupWithId: Integer | Is Processing: Bool | updateMode: Enum |
apply: Trigger | Iso Value: Float | Use input image: Bool |
autoApply: Bool | Layout: Integer | Use iso value:: Bool |
Current Layout String: String | Plane: Plane | |
done: Trigger | Slice: Integer | |
emptyGroupBeforeGeneration: Bool | Smoothing Mode: Enum | |
Find all contours: Bool | Start Condition: Enum |
Shows whether the module is processing which is when the user interacts.
Shows the currently visible slice as a plane equation with a normal vector and a distance scalar.
The plane equation can be used to adjust an input MPR to the currently visible slice.
Shows the closest ortho plane. Values are Sagittal (0), Coronal (1) and Axial (2).
If checked, the module processes the optional input image.
If checked, the generated CSOs are interpolated by a linear interpolation scheme based on the voxel values and the iso value.
If checked, the module enables the setting of a fixed iso value, as well as the choice of a Start Condition.
If checked, the module searches the whole slice for iso contours at either the fixed or the interactive value.
Sets the iso value which is only evaluated if Use iso value: is checked.
If checked, the mouse can be moved over the image with a pressed mouse button and from the current and updated mouse position, the current CSO is being generated. Otherwise, a new CSO is started.
This option needs the Find all contours have unchecked. If all contours are generated for a slice, this option does not make any difference.
Defines whether a contour should be searched for, depending on the fixed iso value and the current voxel value under the mouse cursor.
Values:
Title | Name |
---|---|
Always | Always |
Hit Lower Iso Value | HitLowerIsoValue |
Hit Greater Iso Value | HitGreaterIsoValue |
Sets the smoothing mode that is applied after the linear interpolation.
Values:
Title | Name | Description |
---|---|---|
None | None | No additional smoothing. |
Spline Approximation | SplineApproximation | The contour is smoothed by a spline approximation. |
Spline Interpolation | SplineInterpolation | The contour is smoothed by a spline interpolation. |