Difference between revisions of "Interactive segmentation"
| Line 29: | Line 29: | ||
** histogram: a histogram and simple statistics are calculated for the segmented part of an image  | ** histogram: a histogram and simple statistics are calculated for the segmented part of an image  | ||
* Software design feature: easy to extend with your own tools  | * Software design feature: easy to extend with your own tools  | ||
| − | ** Documentation about how to extent the application can be found [http://docs.mitk.org/nightly  | + | ** Documentation about how to extent the application can be found [http://docs.mitk.org/nightly/toolextensions.html here]  | 
Latest revision as of 15:36, 1 June 2016
Introduction
Since October 2007 MITK comes with a new program module (functionality) for manual 2D segmentation (called SliceBasedSegmentation). As this is probably the most complex public functionality, we provide a short overview of it here.
The module is well tested and should be nearly bug-free (wishful thinking). However, if you find anything to behave strangely or obviously wrong please send a bug report to the MITK mailing list! By the way: best bug reports are those that come with a patch.
We always welcome reports from users, so even if you do not find bugs but just think this is a useful tool, just drop us a note and tell us in what kind of project it helped you. You can either do that publicly on the MITK mailing list or, if you prefer non-public mail to mitk AT mitk.org.
Features and known limitations
- Segmentation of 3D gray value images
- supported: rotated images (images coordinate system not the same as world coordinate system) like from MRT
 - LIMITATION: only the three "natural" image slice directions are supported (reason: on rotated planes the pixel filling operations would cause problems)
 
 - Managing segmentations (New, Delete, Load, Save)
- NOT supported (probably won't ever be): undo of these operations
 - feature: creating segmentations by thresholding the image
 - feature: changing color, opacity for each segmentation
 
 - Six tools for manual segmentation. All segmentation tools work on single 2D slices of the image.
- Full undo support for all tools, undo information is stored as compressed difference images, so it does not fill your memory too much
 
 - Interpolation of missing segmentation slices from neighboring slices
- supported in all three image directions
 - Full undo support
 
 - Convenience methods:
- cropping of a segmentation: image size is reduced to the necessary minimum, empty borders are removed
 - surface creation: marching cubes surface generation, done in the background, not very fast
 - volumetry: calculated the volume in milliliters, this number is not permanently updated when more changes are done to the segmentation
 - histogram: a histogram and simple statistics are calculated for the segmented part of an image
 
 - Software design feature: easy to extend with your own tools
- Documentation about how to extent the application can be found here
 
 
Demo video
There is a short video demonstration of the module. It is not well directed or nicely planned, but it gives you an idea of the tool. Here comes a script describing the movie:
- A new segmentation is created, organ type (Liver) and segmentation name (left at default "Liver") are selected
 - Tools are demonstrated in sagittal view
- Region grower is used by dragging the mouse up or down
 - With the correction tool you draw a stroke and the tool does "something useful"
- Stroke starts and ends inside a segmentation -> something is added
 - Stroke starts and ends outside a segmentation -> something is removed
 - In and out several times -> above points are done for individual segments
 
 
 - Add and substract tools draw a closed contour which is added or substracted to/from your segmentation. Mode of operation can be toggled by pressing CRTL
- A filling tool tries to find a hole in the segmentation and will fill it
 - An erase tool erases a whole connected segmentation
 
 - A fast (and uncomplete and unprecise) liver segmentation is done
- Mainly region growing and correction are used
 - Region growing has a "leakage detection". When the segmentation runs out in some place you can click this part. A skeletonization of the segmentation is done and a "nice" cut is determined (if possible).
 
 - Interpolation is demonstrated
- An empty (!!) slice which has neighboring slices that are not empty will be interpolated
 - The suggested interpolation is displayed as a contour in the segmentation's color
 - You can accept interpolations for single slices (fast) or for all slices (take a little longer)
 - "Accept interpolation" supports undo, like all of the drawing tools of this functionality.
 
 - A surface is created from the binary image. This task is done in a background task so you could do something else in this time (like segment the next organ)
 - The volume of the segmentation is calculated
 - Pixel display can be either smoothed or unsmoothed
 - You can change display properties like color and opacity in a context menu
 - If your image is easy to segment by a thresholding operation, you can create a new segmenation by such an operation
- This is demonstrated for roughly the bones (but unfortunately the kidneys are also included)
 
 - When you have several segmentations, only the selected one(s) are visible. To see all of them, you can select more than one.
- While drawing, you can toggle the visibility of selected segmentations by just holding down the space key
 - Next to each segmentation you see a number. When you press this key on you keyboard, the corresponding segmentation is selected
 - Also all tools have a hotkey assigned so you don't have to move your mouse much to switch between them