Interactive segmentation
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