Interactive segmentation

From mitk.org
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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