diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentation.dox b/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentation.dox index c0f9d94840..bfd845dd11 100644 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentation.dox +++ b/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentation.dox @@ -1,118 +1,99 @@ /** \page org_mitk_views_multilabelsegmentation The Multilabel Segmentation -\imageMacro{"multilabelsegmentation-dox.svg", "Icon of the MultiLabelSegmentation Plugin", 12} +\imageMacro{multilabelsegmentation_utilities.svg, "Icon of the Multilabel Segmentation Utilities Plugin", 5.00} -The difference between a binary and a multi-label segmentation is that a multi-label segmentation can not only contain more than one label but also more than one layer. This allows you to create different labels for different regions of interest encapsulated in one single image. The difference between labels and layers is that labels on one layer cannot overlap but labels on different layers can. -
-The Multilabel Segmentation plugin consists of two views which can be used for: +The Multilabel Segmentation plugin consists of one view which can be used for: -Hereinafter, a description is given on how multi-label segmentations can be created and modified. Please refer to \ref org_mitk_views_segmentation for a description of the general segmentation tools. +Hereinafter, a description is given on how multilabel segmentations can be modified. +Please refer to \ref org_mitk_views_segmentation for a description of the general segmentation tools. \tableofcontents -\section org_mitk_views_multilabelsegmentationUserManualCreateOpenSaveImportAdd Data Selection +\section org_mitk_views_multilabelsegmentationutilitiesoverview Overview -In the 'MultiLabel Segmentation' view you can first select an image. Thereafter, you can either create a new segmentation session by pressing the symbol right to the selection widget or select an existing one. - -\imageMacro{"org_mitk_views_multilabelsegmentationIMGtoolbar.png", "Data selection",12} - - -\section org_mitk_views_multilabelsegmentationUserManualLayerTable Segmentation Layers -Once you started a segmentation session you can add or delete different layers. You can use the layers independently and switch layers by the left and right arrows. - - -\imageMacro{"org_mitk_views_multilabelsegmentationIMGlayerManager.png", "Layer selection",12} - -\subsection org_mitk_views_multilabelsegmentationUserManualLayerCreation Creating a New Layer - -A layer is a set of labels that occupy a non-overlapping anatomical space. The best way to describe them is by a real use case. Imagine you are working on a radiotherapy planning application. In the first layer of your segmentation -session, you would like to trace the contours of the liver and neighboring organs. You can accommodate all these segmentations in separate labels because they all occupy different anatomical regions and do not overlap. Now say you would like to segment the arteries and veins inside the liver. If you don't trace them in a different layer, you will overwrite the previous ones. You may also need a third layer for segmenting the different irrigation territories in the liver and a fourth layer to contain the lesion you would like to treat. - -\section org_mitk_views_multilabelsegmentationUserManualLabelTable Segmentation Labels - -For each layer, you can add one or more labels. Pressing the double arrow on the right, all created labels are shown in the 'Lable Table'. The following label properties are available: +The Multilabel Segmentation Utilities Plugin allows to postprocess existing segmentations. Currently five different operations exist: +\imageMacro{QmitkMultiLabelSegmentationUtilities_Overview.png, "The Multilabel Segmentation Utilities View",16.00} -\imageMacro{"org_mitk_views_multilabelsegmentationIMGlabeltable.png", "The 'Label Table' shows all labels in the current segmentation session", 12} - -\subsection org_mitk_views_multilabelsegmentationUserManualLabelCreation Creating a New Label +\section org_mitk_views_multilabelsegmentationutilitiesdataselection Data Selection -Click the 'New Label' button to add a new label. A dialog will show up to enter the name and color. Preset organ names and -corresponding colors are offered while you type in, but you can set any name. The new name - if not known - will be automatically remembered and made available the next time you create a new label. In the current implementation of the plugin, the maximum number of labels is restricted to 255. If you need more, you will have to create a new segmentation session. +All postprocessing operations provide one or more selection widgets, which allow to select the data for the operation. +\section org_mitk_views_multilabelsegmentationutilitiesbooleanoperations Boolean operations -\subsection org_mitk_views_multilabelsegmentationUserManualLabelPresets Saving and Loading Label Set Presets +Boolean operations allow to perform the following fundamental operations on two segmentations: -Label set presets are useful to share a certain style or scheme between different segmentation sessions or to provide templates for new segmentation sessions. - -The properties of all labels in all layers like their names, colors, and visibilities are saved as a label set preset by clicking on the 'Save label set preset' button. -Label set presets are applied to any segmentation session by clicking on the 'Load label set preset' button. -If a label for a certain value already exists, its properties are overridden by the preset. -If a label for a certain value does not yet exist, an empty label with the label properties of the preset is created. -The actual segmentations of labels are unaffected as label set presets only store label properties. - - -\subsection org_mitk_views_multilabelsegmentationUserManualLabelSearch Searching a Label - -It may happen that many labels (e.g. > 200) are present in a segmentation session and therefore manual searching can be time-consuming. -The 'Label Search' edit box allows for quickly finding the label you want. Just start writing its name and you will get assistance for completing its name. If the label you were searching is found, press 'enter' and it will become the active one. + +The selected segmentations must have the same geometry (size, spacing, ...) in order for the operations to work correctly. +The result will be stored in a new data node as a child node of the first selected segmentation. -\subsection org_mitk_views_multilabelsegmentationUserManualLabelEditing Label Editing +\imageMacro{QmitkMultiLabelSegmentationUtilities_BooleanOperations.png,"Boolean operations",6.00} -Here the actual segmentation takes place. First of all, you have to select the active label by clicking on the corresponding row in the 'Label Table'. Note that only one label can be active at the time. Then you can select segmentation tool in the toolbox. +\section org_mitk_views_multilabelsegmentationutilitiescontourtoimage Contour to image -\imageMacro{"org_mitk_views_multilabelsegmentationIMGSegmentationToolbox.png", "Segmentation toolbox", 12} +Contour to image allows to create a segmentation out of a given contour-model. +The operation requires a contour model set and a reference image. +The created segmentation image will have the same geometrical properties like the reference image (dimension, size and Geometry3D). +\imageMacro{QmitkMultiLabelSegmentationUtilities_ContourToImage.png,"Contour to image",6.00} -\note Not all segmentation tools can be found here. This is because some of the semi-automatic tools can not be applied in case of multiple labels. +\section org_mitk_views_multilabelsegmentationutilitiesimagemasking Image masking -\subsection org_mitk_views_multilabelsegmentationUserManualOperationsOnLabels Operations on Labels +Image masking allows to mask an image with either an existing segmentation or a surface. +The operation requires an image and a binary image mask or a surface. +The result will be an image containing only the pixels that are covered by the respective mask. +Depending on the selected mode ("make output binary" or "overwrite foreground" / "overwrite background") +the result will be a simple image or a binary image. -Depending on your selection in the 'Label Table', several actions are offered: +\imageMacro{QmitkMultiLabelSegmentationUtilities_ImageMasking.png,"Image masking",6.00} -\subsubsection org_mitk_views_multilabelsegmentationUserManualOperationsOnSingleSelection Single Label Selection +\section org_mitk_views_multilabelsegmentationutilitiesmorphologicaloperations Morphological operations -If you right click on any label in the table, a pop-up menu offers the following actions to be performed on the selected label: +Morphological operations are applied to a single segmentation image. Based on a given structuring element the underlying segmentation will be modfied. +The plugin provides a ball and a cross as structuring elements. The follow operations are available: -\imageMacro{"org_mitk_views_multilabelsegmentationIMGLabelTableSingleSelectionContextMenu.png", "Context menu for single label selection", 12} +\imageMacro{QmitkMultiLabelSegmentationUtilities_MorphologicalOperations.png,"Morphological operations",6.00} -\subsubsection org_mitk_views_multilabelsegmentationUserManualOperationsOnMultipleSelection Multiple Label Selection +\section org_mitk_views_multilabelsegmentationutilitiessurfacetoimage Surface to image -You can select more than one label by shift-click on other labels. If more than one label is selected, different options will appear in the menu: +Surface to image allows to create a segmentation out of a given surface. +The operation requires a surface and a reference image. +The created segmentation image will have the same geometrical properties like the reference image (dimension, size and Geometry3D). +Depending on the selected mode ("make output binary" or "overwrite background") +the result will be a simple image or a binary image. -\imageMacro{"org_mitk_views_multilabelsegmentationIMGLabelTableMultipleSelectionContextMenu.png", "Context menu for multiple label selection", 12} +\imageMacro{QmitkMultiLabelSegmentationUtilities_SurfaceToImage.png,"Surface to image",6.00} - +\section org_mitk_views_multilabelsegmentationutilitiesconverttomultilabel Convert to Multilabel + +Convert to multilabel allows to interpret the pixel values of a given image as label IDs and convert the image content into the respective Multilabel image. +The new segmentation will contain one layer with as many labels as the original image contains different pixel values. +\imageMacro{QmitkMultiLabelSegmentationUtilities_ConvertToMultilabel.png,"Convert to Multilabel",6.00} */ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentationUtilities.dox b/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentationUtilities.dox deleted file mode 100644 index 7a44044261..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentationUtilities.dox +++ /dev/null @@ -1,91 +0,0 @@ -/** -\page org_mitk_views_multilabelsegmentationutilities The Multilabel Segmentation Utilities - -\imageMacro{multilabelsegmentation_utilities.svg,"Icon of the Multilabel Segmentation Utilities Plugin",5.00} - -\imageMacro{QmitkMultiLabelSegmentationUtilities_Overview.png, "The Multilabel Segmentation Utilities View",16.00} - -\tableofcontents - -\section org_mitk_views_multilabelSegmentationUtilitiesOverview Overview - -The Multilabel Segmentation Utilities Plugin allows to postprocess existing segmentations. Currently five different operations exist: - - - -\section org_mitk_views_multilabelSegmentationUtilitiesDataSelection Data Selection - -All postprocessing operations provide one or more selection widgets, which allow to select the data for the operation. - -\section org_mitk_views_multilabelSegmentationUtilitiesBooleanOperations Boolean operations - -Boolean operations allows to perform the following fundamental operations on two segmentations: - - - -The selected segmentations must have the same geometry (size, spacing, ...) in order for the operations to work correctly. -The result will be stored in a new data node as a child node of the first selected segmentation. - -\imageMacro{QmitkMultiLabelSegmentationUtilities_BooleanOperations.png,"Boolean operations",6.00} - -\section org_mitk_views_multilabelSegmentationUtilitiesContourToImage Contour to image - -Contour to image allows to create a segmentation out of a given contour-model. -The operation requires a contour model set and a reference image. -The created segmentation image will have the same geometrical properties like the reference image (dimension, size and Geometry3D). - -\imageMacro{QmitkMultiLabelSegmentationUtilities_ContourToImage.png,"Contour to image",6.00} - -\section org_mitk_views_multilabelSegmentationUtilitiesImageMasking Image masking - -Image masking allows to mask an image with either an existing segmentation or a surface. -The operation requires an image and a binary image mask or a surface. -The result will be an image containing only the pixels that are covered by the respective mask. -Depending on the selected mode ("make output binary" or "overwrite foreground" / "overwrite background") -the result will be a simple image or a binary image. - -\imageMacro{QmitkMultiLabelSegmentationUtilities_ImageMasking.png,"Image masking",6.00} - -\section org_mitk_views_multilabelSegmentationUtilitiesMorphologicalOperations Morphological operations - -Morphological operations are applied to a single segmentation image. Based on a given structuring element the underlying segmentation will be modfied. -The plugin provides a ball and a cross as structuring elements. The follow operations are available: - - - -\imageMacro{QmitkMultiLabelSegmentationUtilities_MorphologicalOperations.png,"Morphological operations",6.00} - -\section org_mitk_views_multilabelSegmentationUtilitiesSurfaceToImage Surface to image - -Surface to image allows to create a segmentation out of a given surface. -The operation requires a surface and a reference image. -The created segmentation image will have the same geometrical properties like the reference image (dimension, size and Geometry3D). -Depending on the selected mode ("make output binary" or "overwrite background") -the result will be a simple image or a binary image. - -\imageMacro{QmitkMultiLabelSegmentationUtilities_SurfaceToImage.png,"Surface to image",6.00} - -\section org_mitk_views_multilabelSegmentationUtilitiesConvertToMultiLabel Convert to Multilabel - -Convert to multilabel allows to interpret the pixel values of a given image as label IDs and convert the image content into the respective Multilabel image. -The new segmentation will contain one layer with as many labels as the original image contains different pixel values. - -\imageMacro{QmitkMultiLabelSegmentationUtilities_ConvertToMultilabel.png,"Convert to Multilabel",6.00} -**/ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/org_mitk_views_multilabelsegmentationIMGSegmentationToolbox.png b/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/org_mitk_views_multilabelsegmentationIMGSegmentationToolbox.png deleted file mode 100644 index eeb06e60d2..0000000000 Binary files a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/org_mitk_views_multilabelsegmentationIMGSegmentationToolbox.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/org_mitk_views_multilabelsegmentationIMGapplication.png b/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/org_mitk_views_multilabelsegmentationIMGapplication.png deleted file mode 100644 index 3763903073..0000000000 Binary files a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/org_mitk_views_multilabelsegmentationIMGapplication.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/org_mitk_views_multilabelsegmentationIMGsearchlabel.png b/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/org_mitk_views_multilabelsegmentationIMGsearchlabel.png deleted file mode 100644 index 5c755101e0..0000000000 Binary files a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/org_mitk_views_multilabelsegmentationIMGsearchlabel.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/files.cmake b/Plugins/org.mitk.gui.qt.multilabelsegmentation/files.cmake index a2f14a89c5..b7307305ef 100644 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/files.cmake +++ b/Plugins/org.mitk.gui.qt.multilabelsegmentation/files.cmake @@ -1,95 +1,85 @@ set(SRC_CPP_FILES ) set(INTERNAL_CPP_FILES mitkPluginActivator.cpp QmitkThresholdAction.cpp QmitkConvertSurfaceToLabelAction.cpp QmitkConvertMaskToLabelAction.cpp QmitkConvertToMultiLabelSegmentationAction.cpp QmitkCreateMultiLabelSegmentationAction.cpp Common/QmitkDataSelectionWidget.cpp SegmentationUtilities/QmitkMultiLabelSegmentationUtilitiesView.cpp SegmentationUtilities/QmitkSegmentationUtilityWidget.cpp SegmentationUtilities/BooleanOperations/QmitkBooleanOperationsWidget.cpp SegmentationUtilities/ContourModelToImage/QmitkContourModelToImageWidget.cpp SegmentationUtilities/MorphologicalOperations/QmitkMorphologicalOperationsWidget.cpp SegmentationUtilities/SurfaceToImage/QmitkSurfaceToImageWidget.cpp SegmentationUtilities/ImageMasking/QmitkImageMaskingWidget.cpp SegmentationUtilities/ConvertToMl/QmitkConvertToMlWidget.cpp ) set(UI_FILES src/internal/Common/QmitkDataSelectionWidgetControls.ui src/internal/SegmentationUtilities/QmitkMultiLabelSegmentationUtilitiesViewControls.ui src/internal/SegmentationUtilities/BooleanOperations/QmitkBooleanOperationsWidgetControls.ui src/internal/SegmentationUtilities/ContourModelToImage/QmitkContourModelToImageWidgetControls.ui src/internal/SegmentationUtilities/MorphologicalOperations/QmitkMorphologicalOperationsWidgetControls.ui src/internal/SegmentationUtilities/SurfaceToImage/QmitkSurfaceToImageWidgetControls.ui src/internal/SegmentationUtilities/ImageMasking/QmitkImageMaskingWidgetControls.ui src/internal/SegmentationUtilities/ConvertToMl/QmitkConvertToMlWidgetControls.ui ) set(MOC_H_FILES src/internal/mitkPluginActivator.h src/internal/QmitkThresholdAction.h src/internal/QmitkConvertSurfaceToLabelAction.h src/internal/QmitkConvertMaskToLabelAction.h src/internal/QmitkConvertToMultiLabelSegmentationAction.h src/internal/QmitkCreateMultiLabelSegmentationAction.h src/internal/Common/QmitkDataSelectionWidget.h src/internal/SegmentationUtilities/QmitkMultiLabelSegmentationUtilitiesView.h src/internal/SegmentationUtilities/QmitkSegmentationUtilityWidget.h src/internal/SegmentationUtilities/BooleanOperations/QmitkBooleanOperationsWidget.h src/internal/SegmentationUtilities/ContourModelToImage/QmitkContourModelToImageWidget.h src/internal/SegmentationUtilities/MorphologicalOperations/QmitkMorphologicalOperationsWidget.h src/internal/SegmentationUtilities/SurfaceToImage/QmitkSurfaceToImageWidget.h src/internal/SegmentationUtilities/ImageMasking/QmitkImageMaskingWidget.h src/internal/SegmentationUtilities/ConvertToMl/QmitkConvertToMlWidget.h ) set(CACHED_RESOURCE_FILES resources/BooleanDifference_48x48.png resources/BooleanIntersection_48x48.png resources/BooleanOperations_48x48.png resources/BooleanUnion_48x48.png resources/Closing_48x48.png resources/CTKWidgets_48x48.png resources/deformablePlane.png resources/Dilate_48x48.png resources/Erode_48x48.png resources/FillHoles_48x48.png resources/Icons.svg resources/ImageMasking_48x48.png resources/MorphologicalOperations_48x48.png - resources/multilabelsegmentation.svg resources/multilabelsegmentation_utilities.svg resources/Opening_48x48.png resources/SurfaceToImage_48x48.png plugin.xml ) set(QRC_FILES - resources/multilabelsegmentation.qrc resources/MultiLabelSegmentationUtilities.qrc resources/MorphologicalOperationsWidget.qrc resources/BooleanOperationsWidget.qrc ) set(CPP_FILES) foreach(file ${SRC_CPP_FILES}) set(CPP_FILES ${CPP_FILES} src/${file}) endforeach(file ${SRC_CPP_FILES}) -#usFunctionEmbedResources( -#CPP_FILES -# LIBRARY_NAME "liborg_mitk_gui_qt_multilabelsegmentation" -#ROOT_DIR resources -#FILES Interactions/SegmentationInteraction.xml -# Interactions/ConfigSegmentation.xml -#) - foreach(file ${INTERNAL_CPP_FILES}) set(CPP_FILES ${CPP_FILES} src/internal/${file}) endforeach(file ${INTERNAL_CPP_FILES}) diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/MultiLabelSegmentationUtilities.qrc b/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/MultiLabelSegmentationUtilities.qrc index f1f88d9114..035549a939 100644 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/MultiLabelSegmentationUtilities.qrc +++ b/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/MultiLabelSegmentationUtilities.qrc @@ -1,12 +1,11 @@ BooleanOperations_48x48.png ContourModelSetToImage_48x48.png ImageMasking_48x48.png MorphologicalOperations_48x48.png SurfaceToImage_48x48.png multilabelsegmentation_utilities.svg CTKWidgets_48x48.png - multilabelsegmentation.svg diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/multilabelsegmentation.qrc b/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/multilabelsegmentation.qrc deleted file mode 100644 index 2e294d12aa..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/multilabelsegmentation.qrc +++ /dev/null @@ -1,5 +0,0 @@ - - - multilabelsegmentation.svg - - diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/multilabelsegmentation.svg b/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/multilabelsegmentation.svg deleted file mode 100644 index 9f74c3ac99..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/multilabelsegmentation.svg +++ /dev/null @@ -1,10607 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Plugins/org.mitk.gui.qt.radiomics/documentation/UserManual/QmitkPhenotypingPortalPage.dox b/Plugins/org.mitk.gui.qt.radiomics/documentation/UserManual/QmitkPhenotypingPortalPage.dox index 550c6d9daf..c9afa60b63 100644 --- a/Plugins/org.mitk.gui.qt.radiomics/documentation/UserManual/QmitkPhenotypingPortalPage.dox +++ b/Plugins/org.mitk.gui.qt.radiomics/documentation/UserManual/QmitkPhenotypingPortalPage.dox @@ -1,40 +1,40 @@ /** \page org_mitk_gui_qt_mitkphenotyping The Phenotyping \tableofcontents MITK Phenotyping is a selection of algorithms that can be used to extract image-based phenotypes, for example using a radiomics approach. The software is part of the research of the Division of Medical Image Computing of the German Cancer Research Center (DKFZ). MITK Phenotyping is not intended to be a single application, it is rather a collection of the necessary plugins within the offical MITK releases. The functionality of MITK Phenotyping can be accessed in different ways: Using the graphical interface using the Plugins listed below, using command line applications, or using one of the programming interfaces. \section org_mitk_gui_qt_mitkphenotyping_Tutorials Tutorials \li \subpage org_mitk_views_radiomicstutorial_gui_portal A tutorial on how to use the grapical interface of MITK Phenotying \section org_mitk_gui_qt_mitkphenotyping_Views Views \subsection sub2 Specific Views: Views that were developed with the main focus on Radiomics. They still might be used in other use-cases as well: \li \subpage org_mitk_views_radiomicstransformationview : Image transformations like Resampling, Laplacian of Gaussian, and Wavelet Transformations \li \subpage org_mitk_views_radiomicsmaskprocessingview : Processing and Cleaning of Masks \li \subpage org_mitk_views_radiomicsarithmetricview : Processing images using mathematical operations \li \subpage org_mitk_views_radiomicsstatisticview : Calculate Radiomics Features \subsection sub1 Non-Specific Views: This section contains views that are included within MITK Phenotyping, but were developed with a broader application in mind. \li \ref org_mitk_views_basicimageprocessing : Deprecated plugin for performing different image-related tasks like subtraction, mutliplaction, filtering etc. \li \ref org_mitk_views_matchpoint_algorithm_browser : Selection of MatchPoint (Registration) Algorithm \li \ref org_mitk_views_matchpoint_algorithm_control : Configuring and Controlling MatchPoint (Registration) Algorithm \li \ref org_mitk_views_matchpoint_evaluator : Evaluate the Registration performance using MatchPoint \li \ref org_mitk_views_matchpoint_manipulator : Adapt a registration calculated using MatchPoint \li \ref org_mitk_views_matchpoint_mapper : Apply a MatchPoint Registration to a specific image \li \ref org_mitk_views_matchpoint_visualizer : Visualize a Registration obtained with MatchPoint -\li \ref org_mitk_views_multilabelsegmentation : Create and editing of Multilabel-Segmentations. -\li \ref org_mitk_views_segmentation : Create simple segmentations -\li \ref org_mitk_views_segmentationutilities : Utilities for the processing of simple segmentations. +\li \ref org_mitk_views_segmentation : Creating Multilabel Segmentations +\li \ref org_mitk_views_segmentationutilities : Utilities for the processing of simple segmentations +\li \ref org_mitk_views_multilabelsegmentation : Utilities for the processing of Multilabel Segmentations \section radiomics_miniapps MiniApps (Command line Tools) \li \subpage MiniAppExplainPage Explanation of the Command Line App concept in MITK \li \subpage mitkBasicImageProcessingMiniAppsPortalPage : List of common preprocessing MiniApps \li \subpage mitkClassificationMiniAppsPortalPage : (Incomplete) list of MITK Classification MiniApps */ diff --git a/Plugins/org.mitk.gui.qt.segmentation/documentation/UserManual/QmitkSegmentation.dox b/Plugins/org.mitk.gui.qt.segmentation/documentation/UserManual/QmitkSegmentation.dox index ca4fa39ab6..10c84c771a 100644 --- a/Plugins/org.mitk.gui.qt.segmentation/documentation/UserManual/QmitkSegmentation.dox +++ b/Plugins/org.mitk.gui.qt.segmentation/documentation/UserManual/QmitkSegmentation.dox @@ -1,307 +1,387 @@ /** \page org_mitk_views_segmentation The Segmentation View \imageMacro{segmentation-dox.svg,"Icon of the segmentation view",2.00} Some of the features described below are closed source additions to the open source toolkit MITK and are not available in every application. \tableofcontents -\section org_mitk_views_segmentationUserManualOverview Overview +\section org_mitk_views_segmentationoverview Overview Segmentation is the act of partitioning an image into subsets by either manual or automated delineation to create i.e. a distinction between foreground and background. -The MITK segmentation plugin allows you to create segmentations of anatomical and pathological structures in medical images. -The plugin consists of a number of views: +A multilabel segmentation can contain more than one label and more than one layer. +This allows you to create different labels for different regions of interest encapsulated in one single image. +The difference between labels and layers is that labels on one layer cannot overlap but labels on different layers can. + +The MITK segmentation plugin allows you to create multilabel segmentations of anatomical and pathological structures in medical images. +The plugin consists of two views: In this documentation, the features and usage of the segmentation view will be described. -For an introduction to the segmentation utilities and clipping plane views, please be referred to the respective documentation pages. +For an introduction to the segmentation utilities please be referred to the respective documentation pages. \imageMacro{QmitkSegmentationPlugin_Overview.png,"Segmentation plugin overview", 16.00} -\section org_mitk_views_segmentationPreferences Preferences +\section org_mitk_views_segmentationpreferences Preferences The segmentation plugin offers a number of preferences which can be set via the MITK Workbench application preferences: \imageMacro{QmitkSegmentationPreferences.png,"Segmentation preferences", 10.00} - -\section org_mitk_views_segmentationUserManualTechnical Technical Issues +\section org_mitk_views_segmentationtechnicalissues Technical issues The segmentation plugin makes a number of assumptions: -\section org_mitk_views_segmentationUserManualImageSelection Data Selection & Creating New Segmentations +\section org_mitk_views_segmentationdataselection Data selection & creating new segmentations -To select a reference image for the segmentation, click on the Patient Image selection widget and choose a suitable image from the selection available in the data manager. -By default the auto selection mode is enabled (see \ref org_mitk_views_segmentationPreferences).\n -Once a patient image is selected, a new segmentation can be created on this reference image by clicking the New... button to the right of the Segmentation selection widget. -An input field will appear which allows you to set the name and display color of the segmentation. Notice that the input field suggests names once you start typing and that it also suggests colors for known organ names. -Once generated the segmentation will be added with "binary mask" icon to the data manager as sub-node of the reference image. This item is automatically selected for you, allowing you to start editing the new segmentation right away. +To select a reference image for the segmentation, click on the Selected image selection widget and choose a suitable image from the selection available in the data manager. +Once an image is selected, a new segmentation can be created on this reference image by clicking the button to the right of the Selected segmentation selection widget. +A new multilabel segmentation with an initial label is automatically generated. +The new segmentation will be added to the data manager as sub-node of the reference image. +This item is then automatically selected in the data selection, which allows to start editing the new segmentation right away. +\imageMacro{"QmitkSegmentation_DataSelection.png","Data selection",12} -\subsection org_mitk_views_segmentationUserManualManualKringeling2 Selecting Segmentations for Editing Alternatively to creating a new segmentation, an existing one can be edited as well. -As you might have segmented multiple structures within a single image, the application needs to know which of them to use for editing. -For that you click the segmentation selection widget and a selection field will open, containing all suitable segmentations for the parent dataset available in the data manager. +If a reference image is selected for which a segmentation already exists in the data manager, the auto selection mode will automatically +select a fitting segmentation. +Clicking on the segmentation selection widget a drop down list will open, containing all suitable segmentations for the selected reference dataset available in the data manager. + +\section org_mitk_views_segmentationlayers Segmentation layers + +For each multilabel segmentation different layers can be added or deleted. The layers can be used independently and layers can be switched using the left and right arrows. +A layer is a set of labels that occupy a non-overlapping anatomical space. The best way to describe them is by a real use case: +Imagine you are working on a radiotherapy planning application. In the first layer of your segmentation session, you would like to trace the contours of the liver and neighboring organs. +You can accommodate all these segmentations in separate labels because they all occupy different anatomical regions and do not overlap. +Now say you would like to segment the arteries and veins inside the liver. If you don't trace them in a different layer, you will overwrite the previous ones. +You may also need a third layer for segmenting the different irrigation territories in the liver and a fourth layer to contain the lesion you would like to treat. + +\imageMacro{"QmitkSegmentation_LayerSelection.png","Layer selection",12} + +\section org_mitk_views_segmentationlabels Segmentation labels + +For each layer, one or more labels can be added. Pressing the double arrow on the right, all created labels are shown in the 'Label Table'. +The following label properties are available: + + + +\imageMacro{"QmitkSegmentation_LabelTable.png","The 'Label Table' shows all labels in the current segmentation session",12} +The 'New Label' button can be used to add a new label. This will automatically add a new label with a distinct name and color to the list of available labels.\n +In the current implementation of the plugin, the maximum number of labels is restricted to 255. If you need more, you will have to create a new segmentation session. -\section org_mitk_views_segmentationUserManualToolOverview Segmentation Tool Overview +\subsection org_mitk_views_segmentationlabelpresets Saving and loading label set presets + +Label set presets are useful to share a certain style or scheme between different segmentation sessions or to provide templates for new segmentation sessions. + +The properties of all labels in all layers like their names, colors, and visibilities are saved as a label set preset by clicking on the 'Save label set preset' button. +Label set presets are applied to any segmentation session by clicking on the 'Load label set preset' button. +If a label for a certain value already exists, its properties are overridden by the preset. +If a label for a certain value does not yet exist, an empty label with the label properties of the preset is created. +The actual segmentations of labels are unaffected as label set presets only store label properties. + +\subsection org_mitk_views_segmentationlabelsearch Searching for a label + +It may happen that many labels (e.g. > 200) are present in a segmentation session and therefore manual searching can be time-consuming. +The 'Label Search' edit box allows for quickly finding a label by providing assistance for label name completion. +If the label is found, it will become the active one after pressing 'enter'. + +To start editing a label needs to be activated by clicking on the corresponding row in the 'Label Table'. +Only one label can be active at the time. Then the segmentation tools in the toolbox can be used for mask generation. + +\subsection org_mitk_views_multilabelsegmentationoperationsonlabels Operations on labels +Depending on the selection in the 'Label Table', several actions are offered: + +\subsubsection org_mitk_views_segmentationoperationssingleselection Operations with single label selection + +Right-clicking on any label opens a pop-up menu that offers the following actions to be performed on the selected label: + + + +\imageMacro{"QmitkSegmentation_OperationsSingleSelection.png","Context menu for single label selection",12} + +\subsubsection org_mitk_views_segmentationoperationsmultiselection Operations with multiple label selection + +Shift-clickink on multiple labels allows to select more than one label. If more than one label is selected, different options will appear in the menu: + + + +\imageMacro{"QmitkSegmentation_OperationsMultiSelection.png","Context menu for multiple label selection",12} + +\section org_mitk_views_segmentationtooloverview Segmentation tool overview MITK offers a comprehensive set of slice-based 2D and (semi-)automated 3D segmentation tools. -The manual 2D tools require some user interaction and can only be applied to a single image slice whereas the 3D tools operate on the whole image. The 3D tools usually only -require a small amount of user interaction, i.e. placing seed points or setting/adjusting parameters. +The manual 2D tools require some user interaction and can only be applied to a single image slice whereas the 3D tools operate on the whole image. +The 3D tools usually only require a small amount of user interaction, i.e. placing seed points or setting / adjusting parameters. You can switch between the different toolsets by selecting the 2D or 3D tab in the segmentation view. \imageMacro{QmitkSegmentation_ToolOverview.png,"An overview of the existing 2D and 3D tools in MITK.",5.50} -\section org_mitk_views_segmentationUserManualManualKringeling 2D Segmentation Tools +\section org_mitk_views_segmentation2dsegmentation 2D segmentation tools -With 2D manual contouring you define which voxels are part of the segmentation and which ones are not. This allows you to create segmentations of any structures of interest in an image. +With 2D manual contouring you define which voxels are part of the segmentation and which are not. This allows you to create segmentations of any structures of interest in an image. You can also use manual contouring to correct segmentations that result from sub-optimal automatic methods. The drawback of manual contouring is that you might need to define contours on many 2D slices. However, this is mitigated by the interpolation feature, which will make suggestions for a segmentation. -\subsection org_mitk_views_segmentationUserManualManualKringeling3 Selecting Editing Tools - To start using one of the editing tools, click its button from the displayed toolbox. The selected editing tool will be active and its corresponding button will stay pressed until you click the button again. Selecting a different tool also deactivates the previous one.\n -If you have to delineate a lot of images, shortcuts to switch between tools becomes convenient. For that, just hit the first letter of each tool to activate it (A for Add, S for Subtract, etc.). - -\subsection org_mitk_views_segmentationUserManualManualKringeling4 Using Editing Tools - -All of the editing tools work by the same principle: you use the mouse (left button) to click anywhere in a 2D window (any of the orientations axial, sagittal, or coronal), -move the mouse while holding the mouse button and release to finish the editing action. -Multi-step undo and redo is fully supported by all editing tools. Use the application-wide undo button in the toolbar to revert erroneous %actions. +If you have to delineate a lot of images, shortcuts to switch between tools becomes convenient. +For that, just hit the first letter of each tool to activate it (A for Add, S for Subtract, etc.). -Remark: If you are familiar with the MITK Workbench, you know that clicking and moving the mouse in any of the 2D render windows will move around the crosshair that defines what part of the image is displayed. -This behavior is disabled whilst any of the manual segmentation tools are active- otherwise you might have a hard time concentrating on the contour you are drawing. +All of the editing tools work by the same principle: using the mouse (left button) to click anywhere in a 2D window (any of the orientations axial, sagittal, or coronal), +moving the mouse while holding the mouse button and releasing the button to finish the editing action. +Multi-step undo and redo is fully supported by all editing tools by using the application-wide undo / redo buttons in the toolbar. +Remark: Clicking and moving the mouse in any of the 2D render windows will move the crosshair that defines what part of the image is displayed. +This behavior is disabled as long as any of the manual segmentation tools are active - otherwise you might have a hard time concentrating on the contour you are drawing. -\subsection org_mitk_views_segmentationUserManualAddSubtractTools Add and Subtract Tools -\imageMacro{QmitkSegmentation_IMGIconAddSubtract.png,"Add and Subtract Tools",7.70} +\subsection org_mitk_views_segmentationaddsubtracttools Add and subtract tools +\imageMacro{QmitkSegmentation_IMGIconAddSubtract.png,"Add and subtract tools",7.70} Use the left mouse button to draw a closed contour. When releasing the mouse button, the contour will be added (Add tool) to or removed (Subtract tool) from the current segmentation. Adding and subtracting voxels can be iteratively repeated for the same segmentation. Holding CTRL / CMD while drawing will invert the current tool's behavior (i.e. instead of adding voxels, they will be subtracted). -\subsection org_mitk_views_segmentationUserManualPaintWipeTools Paint and Wipe Tools -\imageMacro{QmitkSegmentation_IMGIconPaintWipe.png,"Paint and Wipe Tools",7.68} +\subsection org_mitk_views_segmentationpaintwipetools Paint and wipe tools +\imageMacro{QmitkSegmentation_IMGIconPaintWipe.png,"Paint and wipe tools",7.68} Use the Size slider to change the radius of the round paintbrush tool. Move the mouse in any 2D window and press the left button to draw or erase pixels. Holding CTRL / CMD while drawing will invert the current tool's behavior (i.e. instead of painting voxels, they will be wiped). -\subsection org_mitk_views_segmentationUserManualRegionGrowingTool Region Growing Tool -\imageMacro{QmitkSegmentation_IMGIconRegionGrowing.png,"Region Growing Tool",3.81} +\subsection org_mitk_views_segmentationregiongrowingtool Region growing tool +\imageMacro{QmitkSegmentation_IMGIconRegionGrowing.png,"Region growing tool",3.81} Click at one point in a 2D slice widget to add an image region to the segmentation with the region growing tool. -Region Growing selects all pixels around the mouse cursor that have a similar gray value as the pixel below the mouse cursor. This enables you to quickly create segmentations of structures that have a good contrast to surrounding tissue. +Region Growing selects all pixels around the mouse cursor that have a similar gray value as the pixel below the mouse cursor. +This allows to quickly create segmentations of structures that have a good contrast to surrounding tissue. The tool operates based on the current level window, so changing the level window to optimize the contrast for the ROI is encouraged. -Moving the mouse up/down is different from left/right: Moving up the cursor while holding the left mouse button widens the range for the included grey values; moving it down narrows it. Moving the mouse left and right will shift the range. +Moving the mouse up / down is different from left / right: +Moving up the cursor while holding the left mouse button widens the range for the included grey values; moving it down narrows it. +Moving the mouse left and right will shift the range. The tool will select more or less pixels, corresponding to the changing gray value range. - - \if THISISNOTIMPLEMENTEDATTHEMOMENT A common issue with region growing is the so called "leakage" which happens when the structure of interest is connected to other pixels, of similar gray values, through a narrow "bridge" at the border of the structure. The Region Growing tool comes with a "leakage detection/removal" feature. If leakage happens, you can left-click into the leakage region and the tool will try to automatically remove this region (see illustration below). -\imageMacro{QmitkSegmentation_IMGLeakage.png,"Leakage correction feature of the Region Growing tool",11.28} +\imageMacro{QmitkSegmentation_Leakage.png,"Leakage correction feature of the region growing tool",11.28} \endif - - -\subsection org_mitk_views_segmentationUserManualFillTool Fill Tool -\imageMacro{QmitkSegmentation_IMGIconFill.png,"Fill Tool",3.81} +\subsection org_mitk_views_segmentationfilltool Fill tool +\imageMacro{QmitkSegmentation_IMGIconFill.png,"Fill tool",3.81} Left-click inside a segmentation with holes to completely fill all holes. Left-click inside a hole to fill only this specific hole. -\subsection org_mitk_views_segmentationUserManualEraseTool Erase Tool +\subsection org_mitk_views_segmentationerasetool Erase tool -\imageMacro{QmitkSegmentation_IMGIconErase.png,"Erase Tool",3.79} +\imageMacro{QmitkSegmentation_IMGIconErase.png,"Erase tool",3.79} -This tool removes a connected part of pixels that form a segmentation. You may use it to remove single segmentations (left-click on specific segmentation) or to clear a whole slice at once (left-click outside a segmentation). +This tool removes a connected part of pixels that form a segmentation. +You may use it to remove single segmentations (left-click on specific segmentation) or to clear a whole slice at once (left-click outside a segmentation). -\subsection org_mitk_views_segmentationUserManualLiveWireTool Live Wire Tool +\subsection org_mitk_views_segmentationlivewiretool Live wire tool -\imageMacro{QmitkSegmentation_IMGIconLiveWire.png,"Live Wire Tool",3.01} +\imageMacro{QmitkSegmentation_IMGIconLiveWire.png,"Live wire tool",3.01} The Live Wire Tool acts as a magnetic lasso with a contour snapping to edges of objects. \imageMacro{QmitkSegmentation_IMGLiveWireUsage.PNG,"Steps for using the Live Wire Tool",16.00} The contour will be transferred to its binary image representation by deactivating the tool. -\subsection org_mitk_views_segmentationUserManualManualKringeling5 2D and 3D Interpolation +\subsection org_mitk_views_segmentationinterpolation 2D and 3D Interpolation Creating segmentations using 2D manual contouring for large image volumes may be very time-consuming, because structures of interest may cover a large range of slices. +Note: Interpolation is currently disabled for segmentations containing more than one label. The segmentation view offers two helpful features to mitigate this drawback: + The 2D Interpolation creates suggestions for a segmentation whenever you have a slice that + -\imageMacro{QmitkSegmentation_2DInterpolation.png,"2D Interpolation Usage",3.01} +\imageMacro{QmitkSegmentation_2DInterpolation.png,"2D interpolation usage",3.01} Interpolated suggestions are displayed as outlines, until you confirm them as part of the segmentation. To confirm single slices, click the Confirm for single slice button below the toolbox. You may also review the interpolations visually and then accept all of them at once by selecting Confirm for all slices. The 3D interpolation creates suggestions for 3D segmentations. That means if you start contouring, from the second contour onwards, the surface of the segmented area will be interpolated based on the given contour information. The interpolation works with all available manual tools. Please note that this is currently a pure mathematical interpolation, i.e. image intensity information is not taken into account. With each further contour the interpolation result will be improved, but the more contours you provide the longer the recalculation will take. To achieve an optimal interpolation result and in this way a most accurate segmentation you should try to describe the surface with sparse contours by segmenting in arbitrary oriented planes. The 3D interpolation is not meant to be used for parallel slice-wise segmentation, but rather segmentations in i.e. the axial, coronal and sagittal plane. -\imageMacro{QmitkSegmentation_3DInterpolationWrongRight.png,"3D Interpolation Usage",16.00} +\imageMacro{QmitkSegmentation_3DInterpolationWrongRight.png,"3D interpolation usage",16.00} You can accept the interpolation result by clicking the Confirm-button below the tool buttons. In this case the 3D interpolation will be deactivated automatically so that the result can be post-processed without any interpolation running in the background. Additional to the surface, black contours are shown in the 3D render window, which mark all the drawn contours used for the interpolation. You can navigate between the drawn contours by clicking on the corresponding position nodes in the data manager which are stored as sub-nodes of the selected segmentation. If you do not want to see these nodes just uncheck the Show Position Nodes checkbox and these nodes will be hidden. -If you want to delete a drawn contour we recommend to use the Erase-Tool since Redo/Undo is not yet working for 3D interpolation. +If you want to delete a drawn contour we recommend to use the Erase-Tool since undo / redo is not yet working for 3D interpolation. The current state of the 3D interpolation can be saved across application restart. For that, just click on save project during the interpolation is active. After restarting the application and load your project you can click on "Reinit Interpolation" within the 3D interpolation GUI area. - -\section org_mitk_views_segmentationUserManual3DSegmentationTools 3D Segmentation Tools +\section org_mitk_views_segmentation3dsegmentation 3D segmentation tools The 3D tools operate on the whole image and require usually a small amount of interaction like placing seed-points or specifying certain parameters. All 3D tools provide an immediate segmentation feedback, which is displayed as a transparent green overlay. For accepting a preview you have to press the Confirm button of the selected tool. The following 3D tools are available: -\subsection org_mitk_views_segmentationUserManual3DThresholdTool 3D Threshold Tool +\subsection org_mitk_views_segmentation3dthresholdtool 3D Threshold tool The thresholding tool simply applies a 3D threshold to the patient image. All pixels with values equal or above the selected threshold are labeled as part of the segmentation. You can change the threshold by either moving the slider of setting a certain value in the spinbox. \imageMacro{QmitkSegmentation_3DThresholdTool.png,"3D Threshold tool",10.00} -\subsection org_mitk_views_segmentationUserManual3DULTool 3D Upper/Lower Threshold Tool +\subsection org_mitk_views_segmentation3dulthresholdTool 3D upper / lower threshold tool The Upper/Lower Thresholding tool works similar to the simple 3D threshold tool but allows you to define an upper and lower threshold. All pixels with values within this threshold interval will be labeled as part of the segmentation. -\imageMacro{QmitkSegmentation_3DULThresholdTool.png,"3D Upper/Lower Threshold tool",10.00} +\imageMacro{QmitkSegmentation_3DULThresholdTool.png,"3D upper / lower threshold tool",10.00} -\subsection org_mitk_views_segmentationUserManual3DOtsuTool 3D Otsu Tool +\subsection org_mitk_views_segmentation3dotsutool 3D Otsu tool The 3D Otsu tool provides a more sophisticated thresholding algorithm. It allows you to define a number of regions. Based on the image histogram the pixels will then be divided into different regions. The more regions you define the longer the calculation will take. You can select afterwards which of these regions you want to confirm as segmentation. \imageMacro{QmitkSegmentation_3DOtsuTool.png,"3D Otsu tool",10.00} -\subsection org_mitk_views_segmentationUserManual3DRGTool 3D Region Growing Tool +\subsection org_mitk_views_segmentation3drgtool 3D Region growing tool The 3D Region Growing tool works similar to the 2D pendant. At the beginning you have to place a seedpoint and define a threshold interval. If you press Run Segmentation a preview is calculated. By moving the Adapt region growing slider you can interactively adapt the segmentation result. -\imageMacro{QmitkSegmentation_3DRGTool.png,"3D Region Growing tool",10.00} +\imageMacro{QmitkSegmentation_3DRGTool.png,"3D Region growing tool",10.00} -\subsection org_mitk_views_segmentationUserManualPickingTool Picking Tool +\subsection org_mitk_views_segmentationpickingtool Picking Tool The Picking tool allows you to select islands within your segmentation. This is especially useful if e.g. a thresholding provided you with several areas within your image but you are just interested in one special region. \imageMacro{QmitkSegmentation_PickingTool.png,"Picking tool",10.00} -\subsection org_mitk_views_segmentationUserManualnnUNetTool nnU-Net Tool (Ubuntu only) +\subsection org_mitk_views_segmentationnnUNetTool nnU-Net Tool (Ubuntu only) \imageMacro{QmitkSegmentation_nnUnetTool.png,"nnUNet tool",10.00} This tool provides a GUI to the deep learning-based segmentation algorithm called the nnUNet. With this tool, you can get a segmentation mask predicted for the loaded image in MITK. Be ready with the pre-trained weights (a.k.a RESULTS_FOLDER) for your organ or task concerned, before using the tool. For a detailed explanation of the parameters and pre-trained weights folder structure etc., please refer to https://github.com/MIC-DKFZ/nnUNet.
Remark: The tool assumes that you have a Python3 environment with nnUNet (pip) installed. Your machine should be also equipped with a CUDA enabled GPU. -\subsubsection org_mitk_views_segmentationUserManualnnUNetToolWorkflow Workflow: +\subsubsection org_mitk_views_segmentationnnUNetToolWorkflow Workflow: -# Click on the "nnUNet Results Folder" directory icon and navigate to the results folder on your hard disk. This is equivalent to setting the RESULTS_FOLDER environment variable. If your results folder is as per the nnUNet required folder structure, the configuration, trainers, tasks and folds are automatically parsed and correspondingly loaded in the drop-down boxes as shown below. \imageMacro{QmitkSegmentation_nnUNet_Settings.png,"nnUNet Segmentation Settings",10} -# Choose your required configuration-task-trainer-fold parameters, sequentially. By default, all entries are selected inside the "Fold" dropdown (shown: "All"). Note that, even if you uncheck all entries from the "Fold" dropdown (shown: "None"), then too, all folds would be considered for inferencing. -# For ensemble predictions, you will get the option to select parameters irrespective on postprocessing files available in the ensembles folder of RESULTS_FOLDER. Note that, if a postprocessing json file exists for the selected combination then it will used for ensembling, by default. To choose not to, uncheck the "Use PostProcessing JSON" in the "Advanced" section. \imageMacro{QmitkSegmentation_nnUNet_ensemble.png,"nnUNet Segmentation Settings",10} -# If your task requires multi-modal inputs, then check the "Multi-Modal" checkbox and enter the no.of modalities additionally required for inferencing, in the "No. of Extra Modalities" spinbox. Instantly, as much node selectors should appear below to select other image nodes from the Data Manager along including a selector with preselected with the reference node. Certain pre-trained configurations are trained in a particular modal order. Please be aware of the order beforehand & select the image nodes in the node selectors accordingly for accurate inferencing. \imageMacro{QmitkSegmentation_nnUNet_multimodal.png,"nnUNet Multi Modal Settings",10.00} -# Select the "Python Path" drop-down to see if MITK has automatically detected other Python environments. Click on a fitting environment for the nnUNet inference or click "Select" in the dropdown to choose an unlisted python environment. Note that, while selecting an arbitrary environment folder, only select the base folder. No need to select all the way until "../myenv/bin/python", for example. -# Click on "Preview". -# In the "Advanced" section, you can also activate other options like "Mixed Precision" and "Enable Mirroring" (for test time data augmentation) pertaining to nnUNet. \imageMacro{QmitkSegmentation_nnUNet_Advanced.png,"nnUNet Advanced Settings",10.00} -# Use "GPU Id" to change the preferred GPU for inferencing. This is equivalent to setting the CUDA_VISIBLE_DEVICES environment variable. -# Every inferred segmentation is cached to prevent a redundant computation. In case, a user doesn't wish to cache a Preview, uncheck the "Enable Caching" in the "Advanced" section. This will ensure that the current parameters will neither be checked against the existing cache nor a segmentation be loaded from it. -# You may always clear all the cached segmentations by clicking "Clear Cache" button. -\subsubsection org_mitk_views_segmentationUserManualnnUNetToolMisc Miscellaneous: +\subsubsection org_mitk_views_segmentationnnUNetToolMisc Miscellaneous: -# In case you want to reload/reparse the folders in the "nnUNet Results Folder", eg. after adding new tasks into it, you may do so without reselecting the folder again by clicking the "Refresh Results Folder" button. -# If you have a nnUNet code-base yet to be pip-installed into any environment (eg. developer modified nnUNet forks), click checkbox "No pip". Once the checkbox is checked a new directory selector appears in the section. You may click and navigate to your nnUNet fork folder to select the code from which you want inference. \imageMacro{QmitkSegmentation_nnUNet_nopip.png,"nnUNet Advanced Settings with option to select nnUNet local folder",10.00} -# The "Advanced" > "GPU Id" combobox lists the Nvidia GPUs available by parsing the nvidia-smi utility output. In case your machine has Nvidia CUDA enabled GPUs but the nvidia-smi fails for some reason, the "GPU Id" combobox will show no entries. In such a situation, it's still possible to execute inferencing by manually entering the preferred GPU Id, eg. 0 in the combobox. - -\section org_mitk_views_segmentationUserManualPostprocessing Additional things you can do with segmentations +\section org_mitk_views_segmentationpostprocessing Additional things you can do with segmentations Segmentations are never an end in themselves. Consequently, the segmentation view adds a couple of "post-processing" actions, accessible through the context-menu of the data manager. -\imageMacro{QmitkSegmentation_IMGDataManagerContextMenu.png,"Context menu items for segmentations.",10.58} +\imageMacro{QmitkSegmentation_IMGDataManagerContextMenu.png,"Context menu items for segmentations",10.58} - -\section org_mitk_views_segmentationof3DTImages Segmentation of 3D+t images +\section org_mitk_views_segmentationof3dtimages Segmentation of 3D+t images For segmentation of 3D+t images, some tools give you the option to choose between creating dynamic and static masks. -In general, segmentation is applied on the time frame that is selected when execution is performed. If you alter the time frame, the segmentation preview is adapted. - +In general, segmentation is applied on the time frame that is selected when execution is performed. +If you alter the time frame, the segmentation preview is adapted. -\section org_mitk_views_segmentationUserManualTechnicalDetail Technical Information for Developers +\section org_mitk_views_segmentationtechnicaldetail Technical information for developers -For technical specifications see \subpage QmitkSegmentationTechnicalPage and for information on the extensions of the tools system \subpage toolextensions . +For technical specifications see \subpage QmitkSegmentationTechnicalPage and for information on the extensions of the tools system \subpage toolextensions. */ diff --git a/Plugins/org.mitk.gui.qt.segmentation/documentation/UserManual/QmitkSegmentationPreferences.png b/Plugins/org.mitk.gui.qt.segmentation/documentation/UserManual/QmitkSegmentationPreferences.png index f86a955ee4..07710074cb 100644 Binary files a/Plugins/org.mitk.gui.qt.segmentation/documentation/UserManual/QmitkSegmentationPreferences.png and b/Plugins/org.mitk.gui.qt.segmentation/documentation/UserManual/QmitkSegmentationPreferences.png differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/org_mitk_views_multilabelsegmentationIMGtoolbar.png b/Plugins/org.mitk.gui.qt.segmentation/documentation/UserManual/QmitkSegmentation_DataSelection.png similarity index 100% rename from Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/org_mitk_views_multilabelsegmentationIMGtoolbar.png rename to Plugins/org.mitk.gui.qt.segmentation/documentation/UserManual/QmitkSegmentation_DataSelection.png diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/org_mitk_views_multilabelsegmentationIMGlabeltable.png b/Plugins/org.mitk.gui.qt.segmentation/documentation/UserManual/QmitkSegmentation_LabelTable.png similarity index 100% rename from Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/org_mitk_views_multilabelsegmentationIMGlabeltable.png rename to Plugins/org.mitk.gui.qt.segmentation/documentation/UserManual/QmitkSegmentation_LabelTable.png diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/org_mitk_views_multilabelsegmentationIMGlayerManager.png b/Plugins/org.mitk.gui.qt.segmentation/documentation/UserManual/QmitkSegmentation_LayerSelection.png similarity index 100% rename from Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/org_mitk_views_multilabelsegmentationIMGlayerManager.png rename to Plugins/org.mitk.gui.qt.segmentation/documentation/UserManual/QmitkSegmentation_LayerSelection.png diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/org_mitk_views_multilabelsegmentationIMGLabelTableMultipleSelectionContextMenu.png b/Plugins/org.mitk.gui.qt.segmentation/documentation/UserManual/QmitkSegmentation_OperationsMultiSelection.png similarity index 100% rename from Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/org_mitk_views_multilabelsegmentationIMGLabelTableMultipleSelectionContextMenu.png rename to Plugins/org.mitk.gui.qt.segmentation/documentation/UserManual/QmitkSegmentation_OperationsMultiSelection.png diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/org_mitk_views_multilabelsegmentationIMGLabelTableSingleSelectionContextMenu.png b/Plugins/org.mitk.gui.qt.segmentation/documentation/UserManual/QmitkSegmentation_OperationsSingleSelection.png similarity index 100% rename from Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/org_mitk_views_multilabelsegmentationIMGLabelTableSingleSelectionContextMenu.png rename to Plugins/org.mitk.gui.qt.segmentation/documentation/UserManual/QmitkSegmentation_OperationsSingleSelection.png