diff --git a/CMake/BuildConfigurations/FlowBenchSegmentation.cmake b/CMake/BuildConfigurations/FlowBenchSegmentation.cmake index 1bfc32cafe..9731309ef7 100644 --- a/CMake/BuildConfigurations/FlowBenchSegmentation.cmake +++ b/CMake/BuildConfigurations/FlowBenchSegmentation.cmake @@ -1,14 +1,13 @@ set(MITK_CONFIG_PACKAGES Qt5 BLUEBERRY ) set(MITK_BUILD_APP_FlowBench ON CACHE BOOL "Build MITK FlowBench" FORCE) set(MITK_CONFIG_PLUGINS org.mitk.gui.qt.stdmultiwidgeteditor org.mitk.gui.qt.imagenavigator org.mitk.gui.qt.properties - org.mitk.gui.qt.multilabelsegmentation org.mitk.gui.qt.flow.segmentation ) diff --git a/CMake/BuildConfigurations/WorkbenchRelease.cmake b/CMake/BuildConfigurations/WorkbenchRelease.cmake index a0742477e2..db7bf09cd6 100644 --- a/CMake/BuildConfigurations/WorkbenchRelease.cmake +++ b/CMake/BuildConfigurations/WorkbenchRelease.cmake @@ -1,29 +1,28 @@ include(${CMAKE_CURRENT_LIST_DIR}/Default.cmake) set(MITK_CONFIG_PACKAGES ${MITK_CONFIG_PACKAGES} MatchPoint ) set(MITK_CONFIG_PLUGINS ${MITK_CONFIG_PLUGINS} - org.mitk.gui.qt.multilabelsegmentation org.mitk.matchpoint.core.helper org.mitk.gui.qt.matchpoint.algorithm.browser org.mitk.gui.qt.matchpoint.algorithm.control org.mitk.gui.qt.matchpoint.mapper org.mitk.gui.qt.matchpoint.framereg org.mitk.gui.qt.matchpoint.visualizer org.mitk.gui.qt.matchpoint.evaluator org.mitk.gui.qt.matchpoint.manipulator ) if(NOT MITK_USE_SUPERBUILD) set(BUILD_CoreCmdApps ON CACHE BOOL "" FORCE) set(BUILD_MatchPointCmdApps ON CACHE BOOL "" FORCE) endif() set(MITK_VTK_DEBUG_LEAKS OFF CACHE BOOL "Enable VTK Debug Leaks" FORCE) find_package(Doxygen REQUIRED) # Ensure that the in-application help can be build set(BLUEBERRY_QT_HELP_REQUIRED ON CACHE BOOL "Required Qt help documentation in plug-ins" FORCE) diff --git a/CMake/Whitelists/FlowBenchSegmentation.cmake b/CMake/Whitelists/FlowBenchSegmentation.cmake index 36bf724a76..60c1587601 100644 --- a/CMake/Whitelists/FlowBenchSegmentation.cmake +++ b/CMake/Whitelists/FlowBenchSegmentation.cmake @@ -1,56 +1,55 @@ set(enabled_modules Core CppMicroServices DICOM DICOMPM DataTypesExt AlgorithmsExt DICOMQI Multilabel SceneSerializationBase DICOMPMIO DICOMImageIO ContourModel DICOMSegIO LegacyGL MapperExt SceneSerialization LegacyIO IOExt MultilabelIO AppUtil QtWidgets QtWidgetsExt Segmentation SegmentationUI PlanarFigure Annotation SurfaceInterpolation GraphAlgorithms ImageExtraction ImageStatistics ) set(enabled_plugins org.blueberry.core.commands org.blueberry.core.expressions org.blueberry.core.runtime org.blueberry.ui.qt org.blueberry.ui.qt.help org.blueberry.ui.qt.log org.mitk.core.ext org.mitk.core.services org.mitk.gui.common org.mitk.gui.qt.application org.mitk.gui.qt.common org.mitk.gui.qt.datamanager org.mitk.gui.qt.ext org.mitk.gui.qt.flow.segmentation org.mitk.gui.qt.flowapplication org.mitk.gui.qt.imagenavigator -org.mitk.gui.qt.multilabelsegmentation org.mitk.gui.qt.properties org.mitk.gui.qt.segmentation org.mitk.gui.qt.stdmultiwidgeteditor org.mitk.planarfigure ) diff --git a/Documentation/Doxygen/2-UserManual/MITKPluginManualsList.dox b/Documentation/Doxygen/2-UserManual/MITKPluginManualsList.dox index 728b8abf82..018001bdbb 100644 --- a/Documentation/Doxygen/2-UserManual/MITKPluginManualsList.dox +++ b/Documentation/Doxygen/2-UserManual/MITKPluginManualsList.dox @@ -1,64 +1,63 @@ /** \page PluginListPage MITK Plugin Manuals The plugins and bundles provide much of the extended functionality of MITK. Each encapsulates a solution to a problem and associated features. This way one can easily assemble the necessary capabilites for a workflow without adding a lot of bloat, by combining plugins as needed. */ diff --git a/Modules/Segmentation/Controllers/mitkToolManagerProvider.cpp b/Modules/Segmentation/Controllers/mitkToolManagerProvider.cpp index 010291abfe..25eb76748b 100644 --- a/Modules/Segmentation/Controllers/mitkToolManagerProvider.cpp +++ b/Modules/Segmentation/Controllers/mitkToolManagerProvider.cpp @@ -1,68 +1,67 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #include "mitkToolManagerProvider.h" // micro service includes #include #include const char* const mitk::ToolManagerProvider::SEGMENTATION = ""; -const char* const mitk::ToolManagerProvider::MULTILABEL_SEGMENTATION = "org.mitk.views.multilabelsegmentation"; mitk::ToolManagerProvider::ToolManagerProvider() { m_ToolManagers[SEGMENTATION] = ToolManager::New(nullptr); } mitk::ToolManagerProvider::~ToolManagerProvider() { } mitk::ToolManager *mitk::ToolManagerProvider::GetToolManager(const std::string& context) { if (m_ToolManagers.end() == m_ToolManagers.find(context)) m_ToolManagers[context] = ToolManager::New(nullptr); return m_ToolManagers[context].GetPointer(); } mitk::ToolManagerProvider::ProviderMapType mitk::ToolManagerProvider::GetToolManagers() const { return m_ToolManagers; } mitk::ToolManagerProvider *mitk::ToolManagerProvider::GetInstance() { static us::ServiceReference serviceRef; static us::ModuleContext *context = us::GetModuleContext(); if (!serviceRef) { // This is either the first time GetInstance() was called, // or a SingletonOneService instance has not yet been registered. serviceRef = context->GetServiceReference(); } if (serviceRef) { // We have a valid service reference. It always points to the service // with the lowest id (usually the one which was registered first). // This still might return a null pointer, if all SingletonOneService // instances have been unregistered (during unloading of the library, // for example). return context->GetService(serviceRef); } else { // No SingletonOneService instance was registered yet. return nullptr; } } diff --git a/Modules/Segmentation/Controllers/mitkToolManagerProvider.h b/Modules/Segmentation/Controllers/mitkToolManagerProvider.h index 6dee83ab87..f04f993cf9 100644 --- a/Modules/Segmentation/Controllers/mitkToolManagerProvider.h +++ b/Modules/Segmentation/Controllers/mitkToolManagerProvider.h @@ -1,92 +1,91 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef MITK_TOOLMANAGERPROVIDER_H #define MITK_TOOLMANAGERPROVIDER_H #include #include #include #include "mitkToolManager.h" #include #include #include #include namespace mitk { class SegmentationModuleActivator; /** \brief Micro Service Singleton to get an instance of mitk::ToolManager \sa ToolManager Implemented as a registry to have implicitly only one instance of ToolManager per context. Context is nothing more than a unique string, for example, use your plugin's id as context. Use this service to make sure your Tools are managed by the object. \note Can only be instantiated by SegmentationModuleActivator. The common way to get the ToolManager is by mitk::ToolManager* toolManager = mitk::ToolManagerProvider::GetInstance()->GetToolManager("my context"); */ class MITKSEGMENTATION_EXPORT ToolManagerProvider : public itk::LightObject { public: mitkClassMacroItkParent(ToolManagerProvider, itk::LightObject); using ProviderMapType = std::map; // Known ToolManager contexts static const char* const SEGMENTATION; - static const char* const MULTILABEL_SEGMENTATION; /** \brief Returns ToolManager object. \param context A unique, non-empty string to retrieve a certain ToolManager instance. For backwards-compatibility, the overload without arguments is returning the classic segmentation ToolManager instance. If a ToolManager instance does not yet exist for a given context, it is created on the fly. */ virtual mitk::ToolManager *GetToolManager(const std::string& context = SEGMENTATION); /** \brief Returns all registered ToolManager objects. */ ProviderMapType GetToolManagers() const; /** \brief Returns an instance of ToolManagerProvider service. */ static mitk::ToolManagerProvider *GetInstance(); // ONLY SegmentationModuleActivator is able to create instances of the service. friend class mitk::SegmentationModuleActivator; protected: itkFactorylessNewMacro(Self); itkCloneMacro(Self); // hide everything ToolManagerProvider(); ~ToolManagerProvider() override; ToolManagerProvider(const ToolManagerProvider &); ToolManagerProvider &operator=(const ToolManagerProvider &); ProviderMapType m_ToolManagers; }; } MITK_DECLARE_SERVICE_INTERFACE(mitk::ToolManagerProvider, "org.mitk.services.ToolManagerProvider") #endif diff --git a/Plugins/PluginList.cmake b/Plugins/PluginList.cmake index 793c9f1210..53935ebd4f 100644 --- a/Plugins/PluginList.cmake +++ b/Plugins/PluginList.cmake @@ -1,89 +1,88 @@ # Plug-ins must be ordered according to their dependencies set(MITK_PLUGINS org.blueberry.core.runtime:ON org.blueberry.core.expressions:OFF org.blueberry.core.commands:OFF org.blueberry.core.jobs:OFF org.blueberry.ui.qt:OFF org.blueberry.ui.qt.help:ON org.blueberry.ui.qt.log:ON org.blueberry.ui.qt.objectinspector:OFF org.mitk.core.services:ON org.mitk.gui.common:ON org.mitk.planarfigure:ON org.mitk.core.ext:OFF org.mitk.core.jobs:OFF org.mitk.gui.qt.application:ON org.mitk.gui.qt.ext:OFF org.mitk.gui.qt.extapplication:OFF org.mitk.gui.qt.mitkworkbench.intro:OFF org.mitk.gui.qt.common:ON org.mitk.gui.qt.stdmultiwidgeteditor:ON org.mitk.gui.qt.mxnmultiwidgeteditor:OFF org.mitk.gui.qt.cmdlinemodules:OFF org.mitk.gui.qt.chartExample:OFF org.mitk.gui.qt.datamanager:ON org.mitk.gui.qt.datamanagerlight:OFF org.mitk.gui.qt.datastorageviewertest:OFF org.mitk.gui.qt.properties:ON org.mitk.gui.qt.basicimageprocessing:OFF org.mitk.gui.qt.dicombrowser:OFF org.mitk.gui.qt.dicominspector:OFF org.mitk.gui.qt.dosevisualization:OFF org.mitk.gui.qt.geometrytools:OFF org.mitk.gui.qt.igtexamples:OFF org.mitk.gui.qt.igttracking:OFF org.mitk.gui.qt.openigtlink:OFF org.mitk.gui.qt.imagecropper:OFF org.mitk.gui.qt.imagenavigator:ON org.mitk.gui.qt.viewnavigator:OFF org.mitk.gui.qt.materialeditor:OFF org.mitk.gui.qt.measurementtoolbox:OFF org.mitk.gui.qt.moviemaker:OFF org.mitk.gui.qt.pointsetinteraction:OFF org.mitk.gui.qt.pointsetinteractionmultispectrum:OFF org.mitk.gui.qt.python:OFF org.mitk.gui.qt.remeshing:OFF org.mitk.gui.qt.segmentation:OFF org.mitk.gui.qt.deformableclippingplane:OFF org.mitk.gui.qt.aicpregistration:OFF org.mitk.gui.qt.renderwindowmanager:OFF org.mitk.gui.qt.semanticrelations:OFF org.mitk.gui.qt.toftutorial:OFF org.mitk.gui.qt.tofutil:OFF org.mitk.gui.qt.tubegraph:OFF org.mitk.gui.qt.ugvisualization:OFF org.mitk.gui.qt.ultrasound:OFF org.mitk.gui.qt.volumevisualization:OFF org.mitk.gui.qt.eventrecorder:OFF org.mitk.gui.qt.xnat:OFF org.mitk.gui.qt.igt.app.ultrasoundtrackingnavigation:OFF org.mitk.gui.qt.classificationsegmentation:OFF org.mitk.gui.qt.overlaymanager:OFF org.mitk.gui.qt.igt.app.hummelprotocolmeasurements:OFF - org.mitk.gui.qt.multilabelsegmentation:OFF org.mitk.matchpoint.core.helper:OFF org.mitk.gui.qt.matchpoint.algorithm.browser:OFF org.mitk.gui.qt.matchpoint.algorithm.control:OFF org.mitk.gui.qt.matchpoint.mapper:OFF org.mitk.gui.qt.matchpoint.framereg:OFF org.mitk.gui.qt.matchpoint.visualizer:OFF org.mitk.gui.qt.matchpoint.evaluator:OFF org.mitk.gui.qt.matchpoint.manipulator:OFF org.mitk.gui.qt.preprocessing.resampling:OFF org.mitk.gui.qt.radiomics:OFF org.mitk.gui.qt.cest:OFF org.mitk.gui.qt.fit.demo:OFF org.mitk.gui.qt.fit.inspector:OFF org.mitk.gui.qt.fit.genericfitting:OFF org.mitk.gui.qt.pharmacokinetics.mri:OFF org.mitk.gui.qt.pharmacokinetics.pet:OFF org.mitk.gui.qt.pharmacokinetics.simulation:OFF org.mitk.gui.qt.pharmacokinetics.curvedescriptor:OFF org.mitk.gui.qt.pharmacokinetics.concentration.mri:OFF org.mitk.gui.qt.flowapplication:OFF org.mitk.gui.qt.flow.segmentation:OFF ) diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/CMakeLists.txt b/Plugins/org.mitk.gui.qt.multilabelsegmentation/CMakeLists.txt deleted file mode 100644 index 235d87da4b..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -project(org_mitk_gui_qt_multilabelsegmentation) - -include_directories(${CTK_INCLUDE_DIRS}) - -mitk_create_plugin( - EXPORT_DIRECTIVE MITK_QT_SEGMENTATION - EXPORTED_INCLUDE_SUFFIXES src - MODULE_DEPENDS MitkSegmentation MitkSegmentationUI -) diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentation.dox b/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentation.dox deleted file mode 100644 index bfd845dd11..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentation.dox +++ /dev/null @@ -1,99 +0,0 @@ -/** -\page org_mitk_views_multilabelsegmentation The Multilabel Segmentation - -\imageMacro{multilabelsegmentation_utilities.svg, "Icon of the Multilabel Segmentation Utilities Plugin", 5.00} - -The Multilabel Segmentation plugin consists of one view which can be used for: -
    -
  • multilabel segmentation postprocessing -
- -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_multilabelsegmentationutilitiesoverview Overview - -The Multilabel Segmentation Utilities Plugin allows to postprocess existing segmentations. Currently five different operations exist: - -
    -
  • \ref org_mitk_views_multilabelsegmentationutilitiesbooleanoperations -
  • \ref org_mitk_views_multilabelsegmentationutilitiescontourtoimage -
  • \ref org_mitk_views_multilabelsegmentationutilitiesimagemasking -
  • \ref org_mitk_views_multilabelsegmentationutilitiesmorphologicaloperations -
  • \ref org_mitk_views_multilabelsegmentationutilitiessurfacetoimage -
  • \ref org_mitk_views_multilabelsegmentationutilitiesconverttomultilabel -
- -\imageMacro{QmitkMultiLabelSegmentationUtilities_Overview.png, "The Multilabel Segmentation Utilities View",16.00} - -\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 allow to perform the following fundamental operations on two segmentations: - -
    -
  • Difference: Subtracts the second segmentation from the first segmentation. -
  • Intersection: Extracts the overlapping areas of the two selected segmentations. -
  • Union: Combines the two existing 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: - -
    -
  • Dilation: Each labeled pixel within the segmentation will be dilated based on the selected structuring element. -
  • Erosion: Each labeled pixel within the segmentation will be eroded based on the selected structuring element. -
  • Opening: An erosion followed by a dilation, used for filling small holes. -
  • Closing: A dilation followed by an erosion, used for smoothing edges or eliminating small objects. -
  • Fill Holes: Fills bigger holes within a segmentation. -
- -\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/QmitkMultiLabelSegmentationUtilities_BooleanOperations.png b/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentationUtilities_BooleanOperations.png deleted file mode 100644 index d6ab9a24d2..0000000000 Binary files a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentationUtilities_BooleanOperations.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentationUtilities_ContourToImage.png b/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentationUtilities_ContourToImage.png deleted file mode 100644 index 3d1bd4b980..0000000000 Binary files a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentationUtilities_ContourToImage.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentationUtilities_ConvertToMultilabel.png b/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentationUtilities_ConvertToMultilabel.png deleted file mode 100644 index cb7ab21d58..0000000000 Binary files a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentationUtilities_ConvertToMultilabel.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentationUtilities_ImageMasking.png b/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentationUtilities_ImageMasking.png deleted file mode 100644 index dc948cc0ab..0000000000 Binary files a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentationUtilities_ImageMasking.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentationUtilities_MorphologicalOperations.png b/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentationUtilities_MorphologicalOperations.png deleted file mode 100644 index d11d3cf94c..0000000000 Binary files a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentationUtilities_MorphologicalOperations.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentationUtilities_Overview.png b/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentationUtilities_Overview.png deleted file mode 100644 index 0a1a1a3990..0000000000 Binary files a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentationUtilities_Overview.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentationUtilities_SurfaceToImage.png b/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentationUtilities_SurfaceToImage.png deleted file mode 100644 index 0c06b7191d..0000000000 Binary files a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/QmitkMultiLabelSegmentationUtilities_SurfaceToImage.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/multilabelsegmentation-dox.svg b/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/multilabelsegmentation-dox.svg deleted file mode 100644 index 9b24feb3b2..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/documentation/UserManual/multilabelsegmentation-dox.svg +++ /dev/null @@ -1,10683 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/files.cmake b/Plugins/org.mitk.gui.qt.multilabelsegmentation/files.cmake deleted file mode 100644 index b7307305ef..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/files.cmake +++ /dev/null @@ -1,85 +0,0 @@ -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_utilities.svg - resources/Opening_48x48.png - resources/SurfaceToImage_48x48.png - plugin.xml -) - -set(QRC_FILES - 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}) - -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/manifest_headers.cmake b/Plugins/org.mitk.gui.qt.multilabelsegmentation/manifest_headers.cmake deleted file mode 100644 index 0821c13120..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/manifest_headers.cmake +++ /dev/null @@ -1,5 +0,0 @@ -set(Plugin-Name "MITK MultiLabelSegmentation") -set(Plugin-Version "1.0.0") -set(Plugin-Vendor "German Cancer Research Center (DKFZ)") -set(Plugin-ContactAddress "https://www.mitk.org") -set(Require-Plugin org.mitk.gui.qt.common org.mitk.gui.qt.datamanager org.mitk.gui.qt.segmentation) diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/plugin.xml b/Plugins/org.mitk.gui.qt.multilabelsegmentation/plugin.xml deleted file mode 100644 index 183ccc3b53..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/plugin.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/BooleanDifference_48x48.png b/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/BooleanDifference_48x48.png deleted file mode 100644 index 89a7c9322c..0000000000 Binary files a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/BooleanDifference_48x48.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/BooleanIntersection_48x48.png b/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/BooleanIntersection_48x48.png deleted file mode 100644 index b7301f31f5..0000000000 Binary files a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/BooleanIntersection_48x48.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/BooleanOperationsWidget.qrc b/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/BooleanOperationsWidget.qrc deleted file mode 100644 index ef0eab4b45..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/BooleanOperationsWidget.qrc +++ /dev/null @@ -1,7 +0,0 @@ - - - BooleanDifference_48x48.png - BooleanIntersection_48x48.png - BooleanUnion_48x48.png - - diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/BooleanOperations_48x48.png b/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/BooleanOperations_48x48.png deleted file mode 100644 index 80d782df23..0000000000 Binary files a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/BooleanOperations_48x48.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/BooleanUnion_48x48.png b/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/BooleanUnion_48x48.png deleted file mode 100644 index 4b01a6d74c..0000000000 Binary files a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/BooleanUnion_48x48.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/CTKWidgets_48x48.png b/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/CTKWidgets_48x48.png deleted file mode 100644 index 34faebcdef..0000000000 Binary files a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/CTKWidgets_48x48.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/Closing_48x48.png b/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/Closing_48x48.png deleted file mode 100644 index 15fe6abe6d..0000000000 Binary files a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/Closing_48x48.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/ContourModelSetToImage_48x48.png b/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/ContourModelSetToImage_48x48.png deleted file mode 100644 index 43b53ece52..0000000000 Binary files a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/ContourModelSetToImage_48x48.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/Dilate_48x48.png b/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/Dilate_48x48.png deleted file mode 100644 index ac913b3e10..0000000000 Binary files a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/Dilate_48x48.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/Erode_48x48.png b/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/Erode_48x48.png deleted file mode 100644 index 9a1d09b660..0000000000 Binary files a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/Erode_48x48.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/FillHoles_48x48.png b/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/FillHoles_48x48.png deleted file mode 100644 index 8a326f3230..0000000000 Binary files a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/FillHoles_48x48.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/Icons.svg b/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/Icons.svg deleted file mode 100644 index c1eb90def4..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/Icons.svg +++ /dev/null @@ -1,3502 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AND - OR - - - MULTI - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MULTI - MULTI - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/ImageMasking_48x48.png b/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/ImageMasking_48x48.png deleted file mode 100644 index a35ade441e..0000000000 Binary files a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/ImageMasking_48x48.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/MorphologicalOperationsWidget.qrc b/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/MorphologicalOperationsWidget.qrc deleted file mode 100644 index 3fe0afc1f8..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/MorphologicalOperationsWidget.qrc +++ /dev/null @@ -1,9 +0,0 @@ - - - Dilate_48x48.png - Erode_48x48.png - Closing_48x48.png - Opening_48x48.png - FillHoles_48x48.png - - diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/MorphologicalOperations_48x48.png b/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/MorphologicalOperations_48x48.png deleted file mode 100644 index 758b42cd4d..0000000000 Binary files a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/MorphologicalOperations_48x48.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/MultiLabelSegmentationUtilities.qrc b/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/MultiLabelSegmentationUtilities.qrc deleted file mode 100644 index 035549a939..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/MultiLabelSegmentationUtilities.qrc +++ /dev/null @@ -1,11 +0,0 @@ - - - BooleanOperations_48x48.png - ContourModelSetToImage_48x48.png - ImageMasking_48x48.png - MorphologicalOperations_48x48.png - SurfaceToImage_48x48.png - multilabelsegmentation_utilities.svg - CTKWidgets_48x48.png - - diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/Opening_48x48.png b/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/Opening_48x48.png deleted file mode 100644 index 9f6fba8237..0000000000 Binary files a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/Opening_48x48.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/SurfaceToImage_48x48.png b/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/SurfaceToImage_48x48.png deleted file mode 100644 index d7c89a0b3a..0000000000 Binary files a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/SurfaceToImage_48x48.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/deformablePlane.png b/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/deformablePlane.png deleted file mode 100644 index 79a7d54ed7..0000000000 Binary files a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/deformablePlane.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/multilabelsegmentation_utilities.svg b/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/multilabelsegmentation_utilities.svg deleted file mode 100644 index ef34d33a6c..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/resources/multilabelsegmentation_utilities.svg +++ /dev/null @@ -1,9155 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/Common/QmitkDataSelectionWidget.cpp b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/Common/QmitkDataSelectionWidget.cpp deleted file mode 100644 index 1f41da6364..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/Common/QmitkDataSelectionWidget.cpp +++ /dev/null @@ -1,249 +0,0 @@ -/*============================================================================ - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center (DKFZ) -All rights reserved. - -Use of this source code is governed by a 3-clause BSD license that can be -found in the LICENSE file. - -============================================================================*/ - -#include "QmitkDataSelectionWidget.h" -#include "internal/mitkPluginActivator.h" - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -static mitk::NodePredicateBase::Pointer CreatePredicate(QmitkDataSelectionWidget::PredicateType predicateType) -{ - auto nonHelperObject = mitk::NodePredicateNot::New(mitk::NodePredicateOr::New( - mitk::NodePredicateProperty::New("helper object"), - mitk::NodePredicateProperty::New("hidden object"))); - - auto imageType = mitk::TNodePredicateDataType::New(); - auto contourModelType = mitk::TNodePredicateDataType::New(); - auto contourModelSetType = mitk::TNodePredicateDataType::New(); - - auto segmentationPredicate = mitk::TNodePredicateDataType::New(); - - auto maskPredicate = mitk::NodePredicateProperty::New("binary", mitk::BoolProperty::New(true)); - - auto isDwi = mitk::NodePredicateDataType::New("DiffusionImage"); - auto isDti = mitk::NodePredicateDataType::New("TensorImage"); - auto isOdf = mitk::NodePredicateDataType::New("OdfImage"); - auto isImage = mitk::TNodePredicateDataType::New(); - - auto validImages = mitk::NodePredicateOr::New(); - validImages->AddPredicate(isImage); - validImages->AddPredicate(isDwi); - validImages->AddPredicate(isDti); - validImages->AddPredicate(isOdf); - - auto imagePredicate = mitk::NodePredicateAnd::New(); - imagePredicate->AddPredicate(validImages); - imagePredicate->AddPredicate(mitk::NodePredicateNot::New(segmentationPredicate)); - imagePredicate->AddPredicate(mitk::NodePredicateNot::New(mitk::NodePredicateProperty::New("binary", mitk::BoolProperty::New(true)))); - - auto surfacePredicate = mitk::TNodePredicateDataType::New(); - - mitk::NodePredicateBase::Pointer result; - - switch(predicateType) - { - case QmitkDataSelectionWidget::ImagePredicate: - result = imagePredicate.GetPointer(); - break; - - case QmitkDataSelectionWidget::SegmentationPredicate: - result = segmentationPredicate.GetPointer(); - break; - - case QmitkDataSelectionWidget::SurfacePredicate: - result = surfacePredicate.GetPointer(); - break; - - case QmitkDataSelectionWidget::ImageAndSegmentationPredicate: - result = imageType.GetPointer(); - break; - - case QmitkDataSelectionWidget::ContourModelPredicate: - result = mitk::NodePredicateOr::New( - contourModelSetType, - contourModelSetType).GetPointer(); - break; - - case QmitkDataSelectionWidget::MaskPredicate: - result = maskPredicate.GetPointer(); - break; - - default: - assert(false && "Unknown predefined predicate!"); - return nullptr; - } - - return mitk::NodePredicateAnd::New(result, nonHelperObject).GetPointer(); -} - -QmitkDataSelectionWidget::QmitkDataSelectionWidget(QWidget* parent) - : QWidget(parent) -{ - m_Controls.setupUi(this); - m_Controls.helpLabel->hide(); -} - -QmitkDataSelectionWidget::~QmitkDataSelectionWidget() -{ -} - -unsigned int QmitkDataSelectionWidget::AddDataSelection(QmitkDataSelectionWidget::PredicateType predicate) -{ - QString hint = "Select node"; - - switch (predicate) - { - case QmitkDataSelectionWidget::ImagePredicate: - hint = "Select an image"; - break; - - case QmitkDataSelectionWidget::MaskPredicate: - hint = "Select a binary mask"; - break; - - case QmitkDataSelectionWidget::SegmentationPredicate: - hint = "Select an ML segmentation"; - break; - - case QmitkDataSelectionWidget::SurfacePredicate: - hint = "Select a surface"; - break; - - case QmitkDataSelectionWidget::ImageAndSegmentationPredicate: - hint = "Select an image or segmentation"; - break; - - case QmitkDataSelectionWidget::ContourModelPredicate: - hint = "Select a contour model"; - break; - } - - return this->AddDataSelection("", hint, hint, "", predicate); -} - -unsigned int QmitkDataSelectionWidget::AddDataSelection(mitk::NodePredicateBase* predicate) -{ - return this->AddDataSelection("", "Select a node", "Select a node", "", predicate); -} - -unsigned int QmitkDataSelectionWidget::AddDataSelection(const QString &labelText, const QString &info, const QString &popupTitel, const QString &popupHint, QmitkDataSelectionWidget::PredicateType predicate) -{ - return this->AddDataSelection(labelText, info, popupHint, popupTitel, CreatePredicate(predicate)); -} - -unsigned int QmitkDataSelectionWidget::AddDataSelection(const QString &labelText, const QString &info, const QString &popupTitel, const QString &popupHint, mitk::NodePredicateBase* predicate) -{ - int row = m_Controls.gridLayout->rowCount(); - - if (!labelText.isEmpty()) - { - QLabel* label = new QLabel(labelText, m_Controls.dataSelectionWidget); - label->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred); - m_Controls.gridLayout->addWidget(label, row, 0); - } - - QmitkSingleNodeSelectionWidget* nodeSelection = new QmitkSingleNodeSelectionWidget(m_Controls.dataSelectionWidget); - - nodeSelection->SetSelectionIsOptional(false); - nodeSelection->SetInvalidInfo(info); - nodeSelection->SetPopUpTitel(popupTitel); - nodeSelection->SetPopUpHint(popupHint); - nodeSelection->SetDataStorage(this->GetDataStorage()); - nodeSelection->SetNodePredicate(predicate); - nodeSelection->SetAutoSelectNewNodes(true); - nodeSelection->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum); - nodeSelection->setMinimumSize(0, 40); - - connect(nodeSelection, &QmitkAbstractNodeSelectionWidget::CurrentSelectionChanged, this, &QmitkDataSelectionWidget::OnSelectionChanged); - - m_Controls.gridLayout->addWidget(nodeSelection, row, 1); - - m_NodeSelectionWidgets.push_back(nodeSelection); - return static_cast(m_NodeSelectionWidgets.size() - 1); -} - -mitk::DataStorage::Pointer QmitkDataSelectionWidget::GetDataStorage() const -{ - ctkServiceReference ref = mitk::PluginActivator::getContext()->getServiceReference(); - assert(ref == true); - - mitk::IDataStorageService* service = mitk::PluginActivator::getContext()->getService(ref); - - assert(service); - - return service->GetDefaultDataStorage()->GetDataStorage(); -} - -mitk::DataNode::Pointer QmitkDataSelectionWidget::GetSelection(unsigned int index) -{ - assert(index < m_NodeSelectionWidgets.size()); - return m_NodeSelectionWidgets[index]->GetSelectedNode(); -} - -void QmitkDataSelectionWidget::SetPredicate(unsigned int index, PredicateType predicate) -{ - this->SetPredicate(index, CreatePredicate(predicate)); -} - -void QmitkDataSelectionWidget::SetPredicate(unsigned int index, mitk::NodePredicateBase* predicate) -{ - assert(index < m_NodeSelectionWidgets.size()); - m_NodeSelectionWidgets[index]->SetNodePredicate(predicate); -} - -void QmitkDataSelectionWidget::SetHelpText(const QString& text) -{ - if (!text.isEmpty()) - { - m_Controls.helpLabel->setText(text); - - if (!m_Controls.helpLabel->isVisible()) - m_Controls.helpLabel->show(); - } - else - { - m_Controls.helpLabel->hide(); - } -} - -void QmitkDataSelectionWidget::OnSelectionChanged(QList selection) -{ - std::vector::iterator it = std::find(m_NodeSelectionWidgets.begin(), m_NodeSelectionWidgets.end(), sender()); - assert(it != m_NodeSelectionWidgets.end()); - - const mitk::DataNode* result = nullptr; - if (!selection.empty()) - { - result = selection.front(); - } - emit SelectionChanged(std::distance(m_NodeSelectionWidgets.begin(), it), result); -} diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/Common/QmitkDataSelectionWidget.h b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/Common/QmitkDataSelectionWidget.h deleted file mode 100644 index 021ec73920..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/Common/QmitkDataSelectionWidget.h +++ /dev/null @@ -1,68 +0,0 @@ -/*============================================================================ - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center (DKFZ) -All rights reserved. - -Use of this source code is governed by a 3-clause BSD license that can be -found in the LICENSE file. - -============================================================================*/ - -#ifndef QmitkDataSelectionWidget_h -#define QmitkDataSelectionWidget_h - -#include -#include -#include -#include - -namespace mitk -{ - class NodePredicateBase; -} - -class QmitkSingleNodeSelectionWidget; - -class QmitkDataSelectionWidget : public QWidget -{ - Q_OBJECT - -public: - enum PredicateType - { - ImagePredicate, - SegmentationPredicate, - SurfacePredicate, - ImageAndSegmentationPredicate, - ContourModelPredicate, - MaskPredicate - }; - - explicit QmitkDataSelectionWidget(QWidget* parent = nullptr); - ~QmitkDataSelectionWidget() override; - - unsigned int AddDataSelection(PredicateType predicate); - unsigned int AddDataSelection(mitk::NodePredicateBase* predicate = nullptr); - unsigned int AddDataSelection(const QString &labelText, const QString &info, const QString &popupTitel, const QString &popupHint, PredicateType predicate); - unsigned int AddDataSelection(const QString &labelText, const QString &info, const QString &popupTitel, const QString &popupHint, mitk::NodePredicateBase* predicate = nullptr); - - mitk::DataStorage::Pointer GetDataStorage() const; - mitk::DataNode::Pointer GetSelection(unsigned int index); - void SetPredicate(unsigned int index, PredicateType predicate); - void SetPredicate(unsigned int index, mitk::NodePredicateBase* predicate); - void SetHelpText(const QString& text); - -signals: - void SelectionChanged(unsigned int index, const mitk::DataNode* selection); - -private slots: - void OnSelectionChanged(QList selection); - -private: - Ui::QmitkDataSelectionWidgetControls m_Controls; - std::vector m_NodeSelectionWidgets; -}; - -#endif diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/Common/QmitkDataSelectionWidgetControls.ui b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/Common/QmitkDataSelectionWidgetControls.ui deleted file mode 100644 index 95f4cf4bf3..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/Common/QmitkDataSelectionWidgetControls.ui +++ /dev/null @@ -1,82 +0,0 @@ - - - QmitkDataSelectionWidgetControls - - - - 0 - 0 - 333 - 191 - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - - - Data Selection - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - - - - 0 - 0 - - - - color: red - - - - - - true - - - - - - - - - - - diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkThresholdAction.cpp b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkThresholdAction.cpp deleted file mode 100644 index 124efb9682..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkThresholdAction.cpp +++ /dev/null @@ -1,113 +0,0 @@ -/*============================================================================ - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center (DKFZ) -All rights reserved. - -Use of this source code is governed by a 3-clause BSD license that can be -found in the LICENSE file. - -============================================================================*/ -#include "QmitkThresholdAction.h" - -// MITK -#include -#include -#include - -// Qt -#include -#include -#include -#include - -using namespace berry; -using namespace mitk; -using namespace std; - -QmitkThresholdAction::QmitkThresholdAction() -{ -} - -QmitkThresholdAction::~QmitkThresholdAction() -{ -} - -void QmitkThresholdAction::Run(const QList &selectedNodes) -{ - m_ThresholdingToolManager = ToolManager::New(m_DataStorage); - - m_ThresholdingToolManager->RegisterClient(); - - Tool *binaryThresholdTool = m_ThresholdingToolManager->GetToolById(m_ThresholdingToolManager->GetToolIdByToolType()); - if (binaryThresholdTool != nullptr) - { - QmitkBinaryThresholdToolGUI *gui = dynamic_cast(binaryThresholdTool->GetGUI("Qmitk", "GUI").GetPointer()); - if (gui != nullptr) - { - QDialog thresholdingDialog(QApplication::activeWindow(), Qt::Window | Qt::WindowStaysOnTopHint); - - thresholdingDialog.setWindowFlags(thresholdingDialog.windowFlags() & ~Qt::WindowMinimizeButtonHint); - - QDialogButtonBox* buttonBox = new QDialogButtonBox(QDialogButtonBox::Cancel); - connect(buttonBox, SIGNAL(rejected()), &thresholdingDialog, SLOT(reject())); - connect(gui, SIGNAL(thresholdAccepted()), &thresholdingDialog, SLOT(reject())); - - QVBoxLayout *layout = new QVBoxLayout; - layout->setContentsMargins(3, 3, 3, 3); - - gui->SetTool(binaryThresholdTool); - gui->setParent(&thresholdingDialog); - - layout->addWidget(gui); - layout->addWidget(buttonBox); - - thresholdingDialog.setLayout(layout); - thresholdingDialog.setMinimumWidth(350); - - m_SelectedNode = selectedNodes[0]; - m_ThresholdingToolManager->SetReferenceData(selectedNodes[0]); - m_ThresholdingToolManager->ActivateTool(m_ThresholdingToolManager->GetToolIdByToolType()); - - m_ThresholdingToolManager->ActiveToolChanged += mitk::MessageDelegate(this, &QmitkThresholdAction::OnThresholdingToolManagerToolModified); - thresholdingDialog.exec(); - m_ThresholdingToolManager->ActiveToolChanged -= mitk::MessageDelegate(this, &QmitkThresholdAction::OnThresholdingToolManagerToolModified); - - m_ThresholdingToolManager->SetReferenceData(nullptr); - m_ThresholdingToolManager->ActivateTool(-1); - m_SelectedNode = nullptr; - } - } - - m_ThresholdingToolManager->UnregisterClient(); -} - -void QmitkThresholdAction::OnThresholdingToolManagerToolModified() -{ - if (m_ThresholdingToolManager.IsNotNull()) - { - if (m_ThresholdingToolManager->GetActiveToolID() < 0) - { - m_ThresholdingToolManager->SetReferenceData(m_SelectedNode); - m_ThresholdingToolManager->ActivateTool(m_ThresholdingToolManager->GetToolIdByToolType()); - } - } -} - -void QmitkThresholdAction::SetDataStorage(DataStorage *dataStorage) -{ - m_DataStorage = dataStorage; -} - -void QmitkThresholdAction::SetSmoothed(bool) -{ -} - -void QmitkThresholdAction::SetDecimated(bool) -{ -} - -void QmitkThresholdAction::SetFunctionality(QtViewPart* /*functionality*/) -{ -} diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkThresholdAction.h b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkThresholdAction.h deleted file mode 100644 index 11c36bb626..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkThresholdAction.h +++ /dev/null @@ -1,53 +0,0 @@ -/*============================================================================ - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center (DKFZ) -All rights reserved. - -Use of this source code is governed by a 3-clause BSD license that can be -found in the LICENSE file. - -============================================================================*/ -#ifndef QMITKTHRESHOLDACTION_H -#define QMITKTHRESHOLDACTION_H - -#include - -// Parent classes -#include -#include - -// Data members -#include -#include - - -class MITK_QT_SEGMENTATION QmitkThresholdAction : public QObject, public mitk::IContextMenuAction -{ - Q_OBJECT - Q_INTERFACES(mitk::IContextMenuAction) - -public: - QmitkThresholdAction(); - ~QmitkThresholdAction() override; - - // IContextMenuAction - void Run(const QList &selectedNodes) override; - void SetDataStorage(mitk::DataStorage *dataStorage) override; - void SetSmoothed(bool smoothed) override; - void SetDecimated(bool decimated) override; - void SetFunctionality(berry::QtViewPart *functionality) override; - - void OnThresholdingToolManagerToolModified(); - -private: - QmitkThresholdAction(const QmitkThresholdAction &); - QmitkThresholdAction & operator=(const QmitkThresholdAction &); - - mitk::DataNode::Pointer m_SelectedNode; - mitk::DataStorage::Pointer m_DataStorage; - mitk::ToolManager::Pointer m_ThresholdingToolManager; -}; - -#endif diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/BooleanOperations/QmitkBooleanOperationsWidget.cpp b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/BooleanOperations/QmitkBooleanOperationsWidget.cpp deleted file mode 100644 index 874d15aefb..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/BooleanOperations/QmitkBooleanOperationsWidget.cpp +++ /dev/null @@ -1,143 +0,0 @@ -/*============================================================================ - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center (DKFZ) -All rights reserved. - -Use of this source code is governed by a 3-clause BSD license that can be -found in the LICENSE file. - -============================================================================*/ - -#include "QmitkBooleanOperationsWidget.h" -#include "../../Common/QmitkDataSelectionWidget.h" -#include -#include -#include - -static const char* const HelpText = "Select two different masks above"; - -namespace -{ - std::string GetPrefix(mitk::BooleanOperation::Type type) - { - switch (type) - { - case mitk::BooleanOperation::Difference: - return "DifferenceFrom_"; - - case mitk::BooleanOperation::Intersection: - return "IntersectionWith_"; - - case mitk::BooleanOperation::Union: - return "UnionWith_"; - - default: - assert(false && "Unknown boolean operation type"); - return "UNKNOWN_BOOLEAN_OPERATION_WITH_"; - } - } - - void AddToDataStorage(mitk::DataStorage::Pointer dataStorage, mitk::Image::Pointer segmentation, const std::string& name, mitk::DataNode::Pointer parent = nullptr) - { - mitk::DataNode::Pointer dataNode = mitk::DataNode::New(); - - dataNode->SetBoolProperty("binary", true); - dataNode->SetName(name); - dataNode->SetData(segmentation); - - dataStorage->Add(dataNode, parent); - } -} - -QmitkBooleanOperationsWidget::QmitkBooleanOperationsWidget(mitk::SliceNavigationController* timeNavigationController, QWidget* parent) - : QmitkSegmentationUtilityWidget(timeNavigationController, parent) -{ - m_Controls.setupUi(this); - - m_Controls.dataSelectionWidget->AddDataSelection(QmitkDataSelectionWidget::MaskPredicate); - m_Controls.dataSelectionWidget->AddDataSelection(QmitkDataSelectionWidget::MaskPredicate); - - m_Controls.dataSelectionWidget->SetHelpText(HelpText); - - connect(m_Controls.dataSelectionWidget, SIGNAL(SelectionChanged(unsigned int, const mitk::DataNode*)), this, SLOT(OnSelectionChanged(unsigned int, const mitk::DataNode*))); - connect(m_Controls.differenceButton, SIGNAL(clicked()), this, SLOT(OnDifferenceButtonClicked())); - connect(m_Controls.intersectionButton, SIGNAL(clicked()), this, SLOT(OnIntersectionButtonClicked())); - connect(m_Controls.unionButton, SIGNAL(clicked()), this, SLOT(OnUnionButtonClicked())); -} - -QmitkBooleanOperationsWidget::~QmitkBooleanOperationsWidget() -{ -} - -void QmitkBooleanOperationsWidget::OnSelectionChanged(unsigned int, const mitk::DataNode*) -{ - QmitkDataSelectionWidget* dataSelectionWidget = m_Controls.dataSelectionWidget; - - mitk::DataNode::Pointer node0 = dataSelectionWidget->GetSelection(0); - mitk::DataNode::Pointer node1 = dataSelectionWidget->GetSelection(1); - - if (node0.IsNotNull() && node1.IsNotNull() && node0 != node1) - { - dataSelectionWidget->SetHelpText(""); - this->EnableButtons(); - } - else - { - dataSelectionWidget->SetHelpText(HelpText); - this->EnableButtons(false); - } -} - -void QmitkBooleanOperationsWidget::EnableButtons(bool enable) -{ - m_Controls.differenceButton->setEnabled(enable); - m_Controls.intersectionButton->setEnabled(enable); - m_Controls.unionButton->setEnabled(enable); -} - -void QmitkBooleanOperationsWidget::OnDifferenceButtonClicked() -{ - this->DoBooleanOperation(mitk::BooleanOperation::Difference); -} - -void QmitkBooleanOperationsWidget::OnIntersectionButtonClicked() -{ - this->DoBooleanOperation(mitk::BooleanOperation::Intersection); -} - -void QmitkBooleanOperationsWidget::OnUnionButtonClicked() -{ - this->DoBooleanOperation(mitk::BooleanOperation::Union); -} - -void QmitkBooleanOperationsWidget::DoBooleanOperation(mitk::BooleanOperation::Type type) -{ - mitk::SliceNavigationController* timeNavigationController = this->GetTimeNavigationController(); - assert(timeNavigationController != nullptr); - - mitk::Image::Pointer segmentation0 = static_cast(m_Controls.dataSelectionWidget->GetSelection(0)->GetData()); - mitk::Image::Pointer segmentation1 = static_cast(m_Controls.dataSelectionWidget->GetSelection(1)->GetData()); - mitk::Image::Pointer result; - - try - { - mitk::BooleanOperation booleanOperation(type, segmentation0, segmentation1, timeNavigationController->GetSelectedTimePoint()); - result = booleanOperation.GetResult(); - } - catch (const mitk::Exception &exception) - { - MITK_ERROR << "Boolean operation failed: " << exception.GetDescription(); - } - - assert(result.IsNotNull()); - - QmitkDataSelectionWidget* dataSelectionWidget = m_Controls.dataSelectionWidget; - - AddToDataStorage( - dataSelectionWidget->GetDataStorage(), - result, - GetPrefix(type) + dataSelectionWidget->GetSelection(1)->GetName(), - dataSelectionWidget->GetSelection(0)); -} diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/BooleanOperations/QmitkBooleanOperationsWidget.h b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/BooleanOperations/QmitkBooleanOperationsWidget.h deleted file mode 100644 index 76e56b16a8..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/BooleanOperations/QmitkBooleanOperationsWidget.h +++ /dev/null @@ -1,41 +0,0 @@ -/*============================================================================ - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center (DKFZ) -All rights reserved. - -Use of this source code is governed by a 3-clause BSD license that can be -found in the LICENSE file. - -============================================================================*/ - -#ifndef QmitkBooleanOperationsWidget_h -#define QmitkBooleanOperationsWidget_h - -#include "../QmitkSegmentationUtilityWidget.h" -#include -#include - -class QmitkBooleanOperationsWidget : public QmitkSegmentationUtilityWidget -{ - Q_OBJECT - -public: - explicit QmitkBooleanOperationsWidget(mitk::SliceNavigationController* timeNavigationController, QWidget* parent = nullptr); - ~QmitkBooleanOperationsWidget() override; - -private slots: - void OnSelectionChanged(unsigned int index, const mitk::DataNode* selection); - void OnDifferenceButtonClicked(); - void OnIntersectionButtonClicked(); - void OnUnionButtonClicked(); - -private: - void EnableButtons(bool enable = true); - void DoBooleanOperation(mitk::BooleanOperation::Type type); - - Ui::QmitkBooleanOperationsWidgetControls m_Controls; -}; - -#endif diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/BooleanOperations/QmitkBooleanOperationsWidgetControls.ui b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/BooleanOperations/QmitkBooleanOperationsWidgetControls.ui deleted file mode 100644 index 48d2334831..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/BooleanOperations/QmitkBooleanOperationsWidgetControls.ui +++ /dev/null @@ -1,169 +0,0 @@ - - - QmitkBooleanOperationsWidgetControls - - - - 0 - 0 - 210 - 91 - - - - - - - - 0 - 0 - - - - - - - - - - false - - - - 0 - 0 - - - - Difference - - - - :/MultiLabelSegmentationUtilities/BooleanOperations/BooleanDifference_48x48.png:/MultiLabelSegmentationUtilities/BooleanOperations/BooleanDifference_48x48.png - - - - 24 - 24 - - - - false - - - false - - - Qt::ToolButtonTextUnderIcon - - - Qt::NoArrow - - - - - - - false - - - - 0 - 0 - - - - Intersection - - - - :/MultiLabelSegmentationUtilities/BooleanOperations/BooleanIntersection_48x48.png:/MultiLabelSegmentationUtilities/BooleanOperations/BooleanIntersection_48x48.png - - - - 24 - 24 - - - - false - - - false - - - Qt::ToolButtonTextUnderIcon - - - Qt::NoArrow - - - - - - - false - - - - 0 - 0 - - - - Union - - - - :/MultiLabelSegmentationUtilities/BooleanOperations/BooleanUnion_48x48.png:/MultiLabelSegmentationUtilities/BooleanOperations/BooleanUnion_48x48.png - - - - 24 - 24 - - - - false - - - false - - - Qt::ToolButtonTextUnderIcon - - - Qt::NoArrow - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - QmitkDataSelectionWidget - QWidget -
internal/Common/QmitkDataSelectionWidget.h
- 1 -
-
- - - - -
diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ContourModelToImage/QmitkContourModelToImageWidget.cpp b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ContourModelToImage/QmitkContourModelToImageWidget.cpp deleted file mode 100644 index 90e41d7aea..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ContourModelToImage/QmitkContourModelToImageWidget.cpp +++ /dev/null @@ -1,246 +0,0 @@ -/*============================================================================ - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center (DKFZ) -All rights reserved. - -Use of this source code is governed by a 3-clause BSD license that can be -found in the LICENSE file. - -============================================================================*/ - -#include "QmitkContourModelToImageWidget.h" -#include "mitkImage.h" -#include "../../Common/QmitkDataSelectionWidget.h" - -#include -#include -#include -#include - -#include -#include -#include -#include - -static const char* const HelpText = "Select a image and a contour(set)"; - -class QmitkContourModelToImageWidgetPrivate -{ -public: - QmitkContourModelToImageWidgetPrivate(); - ~QmitkContourModelToImageWidgetPrivate(); - - /** @brief Check if selections is valid. */ - void SelectionControl( unsigned int index, const mitk::DataNode* selection); - - /** @brief Enable buttons if data selction is valid. */ - void EnableButtons(bool enable = true); - - /** @brief Does the actual contour filling */ - mitk::LabelSetImage::Pointer FillContourModelSetIntoImage(mitk::Image *image, mitk::ContourModelSet *contourSet, mitk::TimePointType timePoint); - - Ui::QmitkContourModelToImageWidgetControls m_Controls; - QFutureWatcher m_Watcher; -}; - -QmitkContourModelToImageWidgetPrivate::QmitkContourModelToImageWidgetPrivate() -{ -} - -QmitkContourModelToImageWidgetPrivate::~QmitkContourModelToImageWidgetPrivate() -{ -} - -void QmitkContourModelToImageWidgetPrivate::EnableButtons(bool enable) -{ - m_Controls.btnProcess->setEnabled(enable); -} - -void QmitkContourModelToImageWidgetPrivate::SelectionControl(unsigned int index, const mitk::DataNode* /*selection*/) -{ - QmitkDataSelectionWidget* dataSelectionWidget = m_Controls.dataSelectionWidget; - mitk::DataNode::Pointer node = dataSelectionWidget->GetSelection(index); - - dataSelectionWidget->SetHelpText(""); - this->EnableButtons(); -} - -mitk::LabelSetImage::Pointer QmitkContourModelToImageWidgetPrivate::FillContourModelSetIntoImage(mitk::Image* image, mitk::ContourModelSet* contourSet, mitk::TimePointType timePoint) -{ - // Use mitk::ContourModelSetToImageFilter to fill the ContourModelSet into the image - mitk::ContourModelSetToImageFilter::Pointer contourFiller = mitk::ContourModelSetToImageFilter::New(); - auto timeStep = image->GetTimeGeometry()->TimePointToTimeStep(timePoint); - contourFiller->SetTimeStep(timeStep); - contourFiller->SetImage(image); - contourFiller->SetInput(contourSet); - contourFiller->MakeOutputBinaryOn(); - - try - { - contourFiller->Update(); - } - catch (const std::exception & e) - { - MITK_ERROR << "Error while converting contour model. "<< e.what(); - } - catch (...) - { - MITK_ERROR << "Unknown error while converting contour model."; - } - - if (nullptr == contourFiller->GetOutput()) - { - MITK_ERROR<<"Could not write the selected contours into the image!"; - } - - auto result = mitk::LabelSetImage::New(); - result->InitializeByLabeledImage(contourFiller->GetOutput()); - - return result; -} - -void QmitkContourModelToImageWidget::OnSelectionChanged(unsigned int index, const mitk::DataNode* selection) -{ - Q_D(QmitkContourModelToImageWidget); - QmitkDataSelectionWidget* dataSelectionWidget = d->m_Controls.dataSelectionWidget; - mitk::DataNode::Pointer node0 = dataSelectionWidget->GetSelection(0); - mitk::DataNode::Pointer node1 = dataSelectionWidget->GetSelection(1); - - if (node0.IsNull() || node1.IsNull() ) - { - d->EnableButtons(false); - dataSelectionWidget->SetHelpText(HelpText); - } - else - { - d->SelectionControl(index, selection); - } -} - -void QmitkContourModelToImageWidget::OnProcessingFinished() -{ - // Called when processing finished - // Adding the result to the data storage - - Q_D(QmitkContourModelToImageWidget); - - // Adding the result to the data storage - auto result = d->m_Watcher.result(); - if (result.IsNotNull()) - { - QmitkDataSelectionWidget* dataSelectionWidget = d->m_Controls.dataSelectionWidget; - mitk::DataNode::Pointer imageNode = dataSelectionWidget->GetSelection(0); - mitk::DataNode::Pointer contourNode = dataSelectionWidget->GetSelection(1); - - mitk::DataNode::Pointer filled = mitk::DataNode::New(); - std::stringstream stream; - stream << imageNode->GetName(); - stream << "_"; - stream << contourNode->GetName(); - filled->SetName(stream.str()); - filled->SetData(result); - - dataSelectionWidget->GetDataStorage()->Add(filled, imageNode); - mitk::RenderingManager::GetInstance()->RequestUpdateAll(); - } - else - { - MITK_ERROR<<"Error filling contours into an image!"; - } - - d->EnableButtons(); -} - -void QmitkContourModelToImageWidget::OnProcessPressed() -{ - Q_D(QmitkContourModelToImageWidget); - - QmitkDataSelectionWidget* dataSelectionWidget = d->m_Controls.dataSelectionWidget; - - mitk::DataNode::Pointer imageNode = dataSelectionWidget->GetSelection(0); - mitk::DataNode::Pointer contourNode = dataSelectionWidget->GetSelection(1); - - // Check if data nodes are valid - if(imageNode.IsNull() || contourNode.IsNull() ) - { - MITK_ERROR << "Selection does not contain valid data"; - QMessageBox::information( this, "Contour To Image", - "Selection does not contain valid data, please select a binary image and a contour(set)", - QMessageBox::Ok ); - d->m_Controls.btnProcess->setEnabled(false); - return; - } - - mitk::Image::Pointer image = static_cast(imageNode->GetData()); - - // Check if the image is valid - if (image.IsNull()) - { - MITK_ERROR<<"Error writing contours into image! Invalid image data selected!"; - return; - } - - const auto timePoint = this->GetTimeNavigationController()->GetSelectedTimePoint(); - if (!image->GetTimeGeometry()->IsValidTimePoint(timePoint)) - { - MITK_ERROR << "Error writing contours into image! Currently selected time point is not supported by selected image data."; - return; - } - - // Check if the selected contours are valid - mitk::ContourModelSet::Pointer contourSet; - mitk::ContourModel::Pointer contour = dynamic_cast(contourNode->GetData()); - if (contour.IsNotNull()) - { - contourSet = mitk::ContourModelSet::New(); - contourSet->AddContourModel(contour); - } - else - { - contourSet = static_cast(contourNode->GetData()); - if (contourSet.IsNull()) - { - MITK_ERROR<<"Error writing contours into binary image! Invalid contour data selected!"; - return; - } - } - - //Disable Buttons during calculation and initialize Progressbar - d->EnableButtons(false); - - // Start the computation in a background thread - QFuture< mitk::LabelSetImage::Pointer > future = QtConcurrent::run(d, &QmitkContourModelToImageWidgetPrivate::FillContourModelSetIntoImage, image, contourSet, timePoint); - d->m_Watcher.setFuture(future); -} - -QmitkContourModelToImageWidget::QmitkContourModelToImageWidget(mitk::SliceNavigationController* timeNavigationController, QWidget* parent) - : QmitkSegmentationUtilityWidget(timeNavigationController, parent), - d_ptr(new QmitkContourModelToImageWidgetPrivate()) -{ - Q_D(QmitkContourModelToImageWidget); - - // Set up UI - d->m_Controls.setupUi(this); - d->m_Controls.dataSelectionWidget->AddDataSelection(QmitkDataSelectionWidget::ImageAndSegmentationPredicate); - d->m_Controls.dataSelectionWidget->AddDataSelection(QmitkDataSelectionWidget::ContourModelPredicate); - d->m_Controls.dataSelectionWidget->SetHelpText(HelpText); - d->EnableButtons(false); - - // Create connections - connect (d->m_Controls.btnProcess, SIGNAL(pressed()), this, SLOT(OnProcessPressed())); - connect(d->m_Controls.dataSelectionWidget, SIGNAL(SelectionChanged(unsigned int, const mitk::DataNode*)), - this, SLOT(OnSelectionChanged(unsigned int, const mitk::DataNode*))); - connect(&d->m_Watcher, SIGNAL(finished()), this, SLOT(OnProcessingFinished())); - - if( d->m_Controls.dataSelectionWidget->GetSelection(0).IsNotNull() && - d->m_Controls.dataSelectionWidget->GetSelection(1).IsNotNull() ) - { - OnSelectionChanged(0, d->m_Controls.dataSelectionWidget->GetSelection(0)); - } -} - -QmitkContourModelToImageWidget::~QmitkContourModelToImageWidget() -{ -} diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ContourModelToImage/QmitkContourModelToImageWidget.h b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ContourModelToImage/QmitkContourModelToImageWidget.h deleted file mode 100644 index c31fb9f4dc..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ContourModelToImage/QmitkContourModelToImageWidget.h +++ /dev/null @@ -1,70 +0,0 @@ -/*============================================================================ - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center (DKFZ) -All rights reserved. - -Use of this source code is governed by a 3-clause BSD license that can be -found in the LICENSE file. - -============================================================================*/ - -#ifndef QmitkContourModelToImageWidget_h -#define QmitkContourModelToImageWidget_h - -#include "../QmitkSegmentationUtilityWidget.h" -#include - -#include - -class QmitkContourModelToImageWidgetPrivate; - -namespace mitk { - class Image; - class ContourModelSet; - class ContourModel; - class Geometry3D; - class PlaneGeometry; -} - -/*! - \brief QmitkContourModelToImageWidget - - Tool masks an image with a binary image or a surface. The Method requires - an image and a binary image mask or a surface. The input image and the binary - image mask must be of the same size. Masking with a surface creates first a - binary image of the surface and then use this for the masking of the input image. -*/ -class QmitkContourModelToImageWidget : public QmitkSegmentationUtilityWidget -{ - Q_OBJECT - -public: - - /** @brief Default constructor, including creation of GUI elements and signals/slots connections. */ - explicit QmitkContourModelToImageWidget(mitk::SliceNavigationController* timeNavigationController, QWidget* parent = nullptr); - - /** @brief Defaul destructor. */ - ~QmitkContourModelToImageWidget() override; - -private slots: - - /** @brief This slot is called if the selection in the workbench is changed. */ - void OnSelectionChanged(unsigned int index, const mitk::DataNode* selection); - - /** @brief This slot is called if user activates the button to mask an image. */ - void OnProcessPressed(); - - /** @brief This slot is called after processing is finished */ - void OnProcessingFinished(); - -private: - - QScopedPointer d_ptr; - - Q_DECLARE_PRIVATE(QmitkContourModelToImageWidget) - Q_DISABLE_COPY(QmitkContourModelToImageWidget) -}; - -#endif diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ContourModelToImage/QmitkContourModelToImageWidgetControls.ui b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ContourModelToImage/QmitkContourModelToImageWidgetControls.ui deleted file mode 100644 index 4f9be6b5bf..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ContourModelToImage/QmitkContourModelToImageWidgetControls.ui +++ /dev/null @@ -1,56 +0,0 @@ - - - QmitkContourModelToImageWidgetControls - - - - 0 - 0 - 98 - 62 - - - - - - - - 0 - 0 - - - - - - - - Process - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - QmitkDataSelectionWidget - QWidget -
internal/Common/QmitkDataSelectionWidget.h
- 1 -
-
- - -
diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ConvertToMl/QmitkConvertToMlWidget.cpp b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ConvertToMl/QmitkConvertToMlWidget.cpp deleted file mode 100644 index 5a1017530d..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ConvertToMl/QmitkConvertToMlWidget.cpp +++ /dev/null @@ -1,65 +0,0 @@ -/*============================================================================ - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center (DKFZ) -All rights reserved. - -Use of this source code is governed by a 3-clause BSD license that can be -found in the LICENSE file. - -============================================================================*/ - -#include "QmitkConvertToMlWidget.h" -#include "../../Common/QmitkDataSelectionWidget.h" -#include -#include -#include -#include -#include "src/internal/QmitkConvertToMultiLabelSegmentationAction.h" - -QmitkConvertToMlWidget::QmitkConvertToMlWidget(mitk::SliceNavigationController* timeNavigationController, QWidget* parent) - : QmitkSegmentationUtilityWidget(timeNavigationController, parent) -{ - m_Controls.setupUi(this); - - m_Controls.dataSelectionWidget->AddDataSelection(QmitkDataSelectionWidget::ImagePredicate); - - connect(m_Controls.dataSelectionWidget, SIGNAL(SelectionChanged(unsigned int, const mitk::DataNode*)), this, SLOT(SelectionChanged())); - connect(m_Controls.pushButton, SIGNAL(clicked()), this, SLOT(Convert())); -} - -QmitkConvertToMlWidget::~QmitkConvertToMlWidget() -{ -} - -void QmitkConvertToMlWidget::SelectionChanged() -{ - QmitkDataSelectionWidget* dataSelectionWidget = m_Controls.dataSelectionWidget; - - mitk::DataNode::Pointer node0 = dataSelectionWidget->GetSelection(0); - - if (node0.IsNotNull()) - { - this->EnableButtons(); - } - else - { - this->EnableButtons(false); - } -} - -void QmitkConvertToMlWidget::EnableButtons(bool enable) -{ - m_Controls.pushButton->setEnabled(enable); -} - -void QmitkConvertToMlWidget::Convert() -{ - auto node = m_Controls.dataSelectionWidget->GetSelection(0); - - QmitkConvertToMultiLabelSegmentationAction converter; - QList list; list.append(node); - converter.SetDataStorage(m_Controls.dataSelectionWidget->GetDataStorage()); - converter.Run(list); -} diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ConvertToMl/QmitkConvertToMlWidget.h b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ConvertToMl/QmitkConvertToMlWidget.h deleted file mode 100644 index c169618774..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ConvertToMl/QmitkConvertToMlWidget.h +++ /dev/null @@ -1,37 +0,0 @@ -/*============================================================================ - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center (DKFZ) -All rights reserved. - -Use of this source code is governed by a 3-clause BSD license that can be -found in the LICENSE file. - -============================================================================*/ - -#ifndef QmitkConvertToMlWidget_h -#define QmitkConvertToMlWidget_h - -#include "../QmitkSegmentationUtilityWidget.h" -#include - -class QmitkConvertToMlWidget : public QmitkSegmentationUtilityWidget -{ - Q_OBJECT - -public: - explicit QmitkConvertToMlWidget(mitk::SliceNavigationController* timeNavigationController, QWidget* parent = nullptr); - ~QmitkConvertToMlWidget() override; - -private slots: - void SelectionChanged(); - void Convert(); - -private: - void EnableButtons(bool enable = true); - - Ui::QmitkConvertToMlWidgetControls m_Controls; -}; - -#endif diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ConvertToMl/QmitkConvertToMlWidgetControls.ui b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ConvertToMl/QmitkConvertToMlWidgetControls.ui deleted file mode 100644 index acb4531419..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ConvertToMl/QmitkConvertToMlWidgetControls.ui +++ /dev/null @@ -1,58 +0,0 @@ - - - QmitkConvertToMlWidgetControls - - - - 0 - 0 - 98 - 62 - - - - - - - - 0 - 0 - - - - - - - - Convert - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - QmitkDataSelectionWidget - QWidget -
internal/Common/QmitkDataSelectionWidget.h
- 1 -
-
- - - - -
diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ImageMasking/QmitkImageMaskingWidget.cpp b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ImageMasking/QmitkImageMaskingWidget.cpp deleted file mode 100644 index c56528a31e..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ImageMasking/QmitkImageMaskingWidget.cpp +++ /dev/null @@ -1,318 +0,0 @@ -/*============================================================================ - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center (DKFZ) -All rights reserved. - -Use of this source code is governed by a 3-clause BSD license that can be -found in the LICENSE file. - -============================================================================*/ - -#include "QmitkImageMaskingWidget.h" -#include "../../Common/QmitkDataSelectionWidget.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include - -static const char* const HelpText = "Select a patient image and a mask"; - -QmitkImageMaskingWidget::QmitkImageMaskingWidget(mitk::SliceNavigationController* timeNavigationController, QWidget* parent) - : QmitkSegmentationUtilityWidget(timeNavigationController, parent) -{ - m_Controls.setupUi(this); - - m_Controls.dataSelectionWidget->AddDataSelection(QmitkDataSelectionWidget::ImagePredicate); - m_Controls.dataSelectionWidget->AddDataSelection(QmitkDataSelectionWidget::MaskPredicate); - m_Controls.dataSelectionWidget->SetHelpText(HelpText); - -// mitk::IDataStorageService::Pointer service = -// berry::Platform::GetServiceRegistry().GetServiceById(mitk::IDataStorageService::ID); - -// assert(service.IsNotNull()); - - mitk::DataStorage::Pointer ds = m_Controls.dataSelectionWidget->GetDataStorage(); - m_Controls.m_LabelSetWidget->SetDataStorage(ds); - m_Controls.m_LabelSetWidget->setEnabled(true); - - m_Controls.m_MaskStampWidget->SetDataStorage(ds); - - this->EnableButtons(false); - - connect (m_Controls.rbMaskImage, SIGNAL(toggled(bool)), this, SLOT(OnImageMaskingToggled(bool))); - connect (m_Controls.rbMaskSurface, SIGNAL(toggled(bool)), this, SLOT(OnSurfaceMaskingToggled(bool))); - connect (m_Controls.btnMaskImage, SIGNAL(pressed()), this, SLOT(OnMaskImagePressed())); - - connect(m_Controls.dataSelectionWidget, SIGNAL(SelectionChanged(unsigned int, const mitk::DataNode*)), - this, SLOT(OnSelectionChanged(unsigned int, const mitk::DataNode*))); - - if( m_Controls.dataSelectionWidget->GetSelection(0).IsNotNull() && - m_Controls.dataSelectionWidget->GetSelection(1).IsNotNull() ) - { - this->OnSelectionChanged( 0, m_Controls.dataSelectionWidget->GetSelection(0)); - } -} - -QmitkImageMaskingWidget::~QmitkImageMaskingWidget() -{ -} - -void QmitkImageMaskingWidget::OnSelectionChanged(unsigned int index, const mitk::DataNode* selection) -{ - QmitkDataSelectionWidget* dataSelectionWidget = m_Controls.dataSelectionWidget; - mitk::DataNode::Pointer node0 = dataSelectionWidget->GetSelection(0); - mitk::DataNode::Pointer node1 = dataSelectionWidget->GetSelection(1); - - if (node0.IsNull() || node1.IsNull() ) - { - if( m_Controls.rbMaskImage->isChecked() ) - { - dataSelectionWidget->SetHelpText(HelpText); - } - else - { - dataSelectionWidget->SetHelpText("Select a patient image and a surface"); - } - this->EnableButtons(false); - } - else - { - this->SelectionControl(index, selection); - } -} - -void QmitkImageMaskingWidget::SelectionControl(unsigned int index, const mitk::DataNode*) -{ - QmitkDataSelectionWidget* dataSelectionWidget = m_Controls.dataSelectionWidget; - mitk::DataNode::Pointer node = dataSelectionWidget->GetSelection(index); - - //if Image-Masking is enabled, check if image-dimension of reference and binary image is identical - if( m_Controls.rbMaskImage->isChecked() ) - { - if( dataSelectionWidget->GetSelection(0) == dataSelectionWidget->GetSelection(1) ) - { - dataSelectionWidget->SetHelpText("Select two different images above"); - this->EnableButtons(false); - return; - } - } - - dataSelectionWidget->SetHelpText(""); - this->EnableButtons(); -} - -void QmitkImageMaskingWidget::EnableButtons(bool enable) -{ - m_Controls.btnMaskImage->setEnabled(enable); -} - -void QmitkImageMaskingWidget::OnImageMaskingToggled(bool status) -{ - if (status) - { - m_Controls.dataSelectionWidget->SetHelpText("Select a patient image and a mask"); - m_Controls.dataSelectionWidget->SetPredicate(1, QmitkDataSelectionWidget::MaskPredicate); - } -} - -void QmitkImageMaskingWidget::OnSurfaceMaskingToggled(bool status) -{ - if (status) - { - m_Controls.dataSelectionWidget->SetHelpText("Select a patient image and a surface"); - m_Controls.dataSelectionWidget->SetPredicate(1, QmitkDataSelectionWidget::SurfacePredicate); - } -} - - -void QmitkImageMaskingWidget::OnMaskImagePressed() -{ - //Disable Buttons during calculation and initialize Progressbar - this->EnableButtons(false); - mitk::ProgressBar::GetInstance()->AddStepsToDo(4); - mitk::ProgressBar::GetInstance()->Progress(); - - QmitkDataSelectionWidget* dataSelectionWidget = m_Controls.dataSelectionWidget; - - //create result image, get mask node and reference image - mitk::Image::Pointer resultImage(nullptr); - mitk::DataNode::Pointer maskingNode = dataSelectionWidget->GetSelection(1); - mitk::Image::Pointer referenceImage = static_cast(dataSelectionWidget->GetSelection(0)->GetData()); - - if(referenceImage.IsNull() || maskingNode.IsNull() ) - { - MITK_ERROR << "Selection does not contain an image"; - QMessageBox::information( this, "Image and Surface Masking", "Selection does not contain an image", QMessageBox::Ok ); - m_Controls.btnMaskImage->setEnabled(true); - return; - } - - //Do Image-Masking - if (m_Controls.rbMaskImage->isChecked()) - { - mitk::ProgressBar::GetInstance()->Progress(); - - mitk::Image::Pointer maskImage = dynamic_cast ( maskingNode->GetData() ); - - if( referenceImage->GetLargestPossibleRegion().GetSize() != maskImage->GetLargestPossibleRegion().GetSize() ) - { - mitk::PadImageFilter::Pointer padImageFilter = mitk::PadImageFilter::New(); - padImageFilter->SetInput(0, maskImage); - padImageFilter->SetInput(1, referenceImage); - padImageFilter->SetPadConstant(0); - padImageFilter->SetBinaryFilter(false); - padImageFilter->SetLowerThreshold(0); - padImageFilter->SetUpperThreshold(1); - - MITK_INFO << "Padding mask ..."; - - padImageFilter->Update(); - - maskImage = padImageFilter->GetOutput(); - } - - if(maskImage.IsNull() ) - { - MITK_ERROR << "Selection does not contain a binary image"; - QMessageBox::information( this, "Image and Surface Masking", "Selection does not contain a binary image", QMessageBox::Ok ); - this->EnableButtons(); - return; - } - - resultImage = this->MaskImage( referenceImage, maskImage ); - } - - //Do Surface-Masking - else - { - mitk::ProgressBar::GetInstance()->Progress(); - - //1. convert surface to image - mitk::Surface::Pointer surface = dynamic_cast ( maskingNode->GetData() ); - - //TODO Get 3D Surface of current time step - - if(surface.IsNull()) - { - MITK_ERROR << "Selection does not contain a surface"; - QMessageBox::information( this, "Image and Surface Masking", "Selection does not contain a surface", QMessageBox::Ok ); - this->EnableButtons(); - return; - } - - mitk::Image::Pointer maskImage = this->ConvertSurfaceToImage( referenceImage, surface ); - - //2. mask reference image with mask image - if(maskImage.IsNotNull() && - referenceImage->GetLargestPossibleRegion().GetSize() == maskImage->GetLargestPossibleRegion().GetSize() ) - { - resultImage = this->MaskImage( referenceImage, maskImage ); - } - } - - mitk::ProgressBar::GetInstance()->Progress(); - - if( resultImage.IsNull() ) - { - MITK_ERROR << "Masking failed"; - QMessageBox::information( this, "Image and Surface Masking", "Masking failed. For more information please see logging window.", QMessageBox::Ok ); - this->EnableButtons(); - mitk::ProgressBar::GetInstance()->Progress(4); - return; - } - - //Add result to data storage - this->AddToDataStorage( - dataSelectionWidget->GetDataStorage(), - resultImage, - dataSelectionWidget->GetSelection(0)->GetName() + "_" + dataSelectionWidget->GetSelection(1)->GetName(), - dataSelectionWidget->GetSelection(0)); - - this->EnableButtons(); - - mitk::ProgressBar::GetInstance()->Progress(); -} - -mitk::Image::Pointer QmitkImageMaskingWidget::MaskImage(mitk::Image::Pointer referenceImage, mitk::Image::Pointer maskImage ) -{ - mitk::Image::Pointer resultImage(nullptr); - - mitk::MaskImageFilter::Pointer maskFilter = mitk::MaskImageFilter::New(); - maskFilter->SetInput( referenceImage ); - maskFilter->SetMask( maskImage ); - //MLI TODO - //if ( m_Controls.m_chkMakeOutputBinary->isChecked() ) - //{ - // maskFilter->SetInsideValue(1.0); - // maskFilter->SetOutsideValue(0.0); - // maskFilter->SetOverrideOutsideValue(true); - // maskFilter->SetOverrideInsideValue(true); - //} - - //maskFilter->SetOverrideOutsideValue( m_Controls.m_chkOverwriteBackground->isChecked() ); - //maskFilter->SetOverrideInsideValue( m_Controls.m_chkOverwriteForeground->isChecked() ); - //maskFilter->SetInsideValue( m_Controls.m_leForegroundValue->text().toFloat() );//referenceImage->GetStatistics()->GetScalarValueMin() ); - //maskFilter->SetOutsideValue( m_Controls.m_leBackgroundValue->text().toFloat() );//referenceImage->GetStatistics()->GetScalarValueMin() ); - - try - { - maskFilter->Update(); - } - catch(itk::ExceptionObject& excpt) - { - MITK_ERROR << excpt.GetDescription(); - return nullptr; - } - - resultImage = maskFilter->GetOutput(); - - return resultImage; -} - -mitk::Image::Pointer QmitkImageMaskingWidget::ConvertSurfaceToImage( mitk::Image::Pointer image, mitk::Surface::Pointer surface ) -{ - mitk::ProgressBar::GetInstance()->AddStepsToDo(2); - mitk::ProgressBar::GetInstance()->Progress(); - - mitk::SurfaceToImageFilter::Pointer surfaceToImageFilter = mitk::SurfaceToImageFilter::New(); - surfaceToImageFilter->MakeOutputBinaryOn(); - surfaceToImageFilter->SetInput(surface); - surfaceToImageFilter->SetImage(image); - try - { - surfaceToImageFilter->Update(); - } - catch(itk::ExceptionObject& excpt) - { - MITK_ERROR << excpt.GetDescription(); - return nullptr; - } - - mitk::ProgressBar::GetInstance()->Progress(); - mitk::Image::Pointer resultImage = mitk::Image::New(); - resultImage = surfaceToImageFilter->GetOutput(); - - return resultImage; -} - -void QmitkImageMaskingWidget::AddToDataStorage(mitk::DataStorage::Pointer dataStorage, mitk::Image::Pointer segmentation, const std::string& name, mitk::DataNode::Pointer parent ) -{ - mitk::DataNode::Pointer dataNode = mitk::DataNode::New(); - - dataNode->SetName(name); - dataNode->SetData(segmentation); - - dataStorage->Add(dataNode, parent); -} diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ImageMasking/QmitkImageMaskingWidget.h b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ImageMasking/QmitkImageMaskingWidget.h deleted file mode 100644 index 5055aa5445..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ImageMasking/QmitkImageMaskingWidget.h +++ /dev/null @@ -1,77 +0,0 @@ -/*============================================================================ - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center (DKFZ) -All rights reserved. - -Use of this source code is governed by a 3-clause BSD license that can be -found in the LICENSE file. - -============================================================================*/ - -#ifndef QmitkImageMaskingWidget_h -#define QmitkImageMaskingWidget_h - -#include "../QmitkSegmentationUtilityWidget.h" -#include - -#include -#include - -/*! - \brief QmitkImageMaskingWidget - - Tool masks an image with a binary image or a surface. The Method requires - an image and a binary image mask or a surface. The input image and the binary - image mask must be of the same size. Masking with a surface creates first a - binary image of the surface and then use this for the masking of the input image. -*/ -class QmitkImageMaskingWidget : public QmitkSegmentationUtilityWidget -{ - Q_OBJECT - -public: - - /** @brief Default constructor, including creation of GUI elements and signals/slots connections. */ - explicit QmitkImageMaskingWidget(mitk::SliceNavigationController* timeNavigationController, QWidget* parent = nullptr); - - /** @brief Defaul destructor. */ - ~QmitkImageMaskingWidget() override; - -private slots: - - /** @brief This slot is called if the selection in the workbench is changed. */ - void OnSelectionChanged(unsigned int index, const mitk::DataNode* selection); - - /** @brief This slot is called if user activates the radio button for masking an image with a binary image mask. */ - void OnImageMaskingToggled(bool); - - /** @brief This slot is called if user activates the radio button for masking an image with a surface. */ - void OnSurfaceMaskingToggled(bool); - - /** @brief This slot is called if user activates the button to mask an image. */ - void OnMaskImagePressed(); - -private: - - /** @brief Check if selections is valid. */ - void SelectionControl( unsigned int index, const mitk::DataNode* selection); - - /** @brief Enable buttons if data selction is valid. */ - void EnableButtons(bool enable = true); - - /** @brief Mask an image with a given binary mask. Note that the input image and the mask image must be of the same size. */ - mitk::Image::Pointer MaskImage(mitk::Image::Pointer referenceImage, mitk::Image::Pointer maskImage ); - - /** @brief Convert a surface into an binary image. */ - mitk::Image::Pointer ConvertSurfaceToImage( mitk::Image::Pointer image, mitk::Surface::Pointer surface ); - - /** @brief Adds a new data object to the DataStorage.*/ - void AddToDataStorage(mitk::DataStorage::Pointer dataStorage, mitk::Image::Pointer segmentation, - const std::string& name, mitk::DataNode::Pointer parent = nullptr); - - Ui::QmitkImageMaskingWidgetControls m_Controls; -}; - -#endif diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ImageMasking/QmitkImageMaskingWidgetControls.ui b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ImageMasking/QmitkImageMaskingWidgetControls.ui deleted file mode 100644 index 2d8cf565c5..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/ImageMasking/QmitkImageMaskingWidgetControls.ui +++ /dev/null @@ -1,274 +0,0 @@ - - - QmitkImageMaskingWidgetControls - - - - 0 - 0 - 179 - 296 - - - - - 2 - - - 4 - - - - - 0 - - - - Masks - - - - 3 - - - 4 - - - - - - 0 - 0 - - - - - - - - Masking Mode - - - - - - Image Masking - - - true - - - - - - - Surface Masking - - - - - - - - - - Mask - - - - - - - make output binary - - - - - - - overwrite foreground - - - - - - - overwrite background - - - - - - - - - Background Value: - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 50 - 0 - - - - - 50 - 16777215 - - - - 0.0 - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - - - Foreground Value: - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 50 - 0 - - - - - 50 - 16777215 - - - - 1.0 - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - Labels - - - - 4 - - - - - - 0 - 0 - - - - - 0 - 50 - - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - - - QmitkDataSelectionWidget - QWidget -
internal/Common/QmitkDataSelectionWidget.h
-
- - QmitkLabelSetWidget - QWidget -
QmitkLabelSetWidget.h
- 1 -
- - QmitkMaskStampWidget - QWidget -
QmitkMaskStampWidget.h
- 1 -
-
- - -
diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/MorphologicalOperations/QmitkMorphologicalOperationsWidget.cpp b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/MorphologicalOperations/QmitkMorphologicalOperationsWidget.cpp deleted file mode 100644 index 8d4830fc0f..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/MorphologicalOperations/QmitkMorphologicalOperationsWidget.cpp +++ /dev/null @@ -1,244 +0,0 @@ -/*============================================================================ - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center (DKFZ) -All rights reserved. - -Use of this source code is governed by a 3-clause BSD license that can be -found in the LICENSE file. - -============================================================================*/ - -#include "QmitkMorphologicalOperationsWidget.h" -#include -#include -#include -#include -#include -#include - -static const char* const HelpText = "Select a mask above"; - -QmitkMorphologicalOperationsWidget::QmitkMorphologicalOperationsWidget(mitk::SliceNavigationController* timeNavigationController, QWidget* parent) - : QmitkSegmentationUtilityWidget(timeNavigationController, parent) -{ - m_Controls.setupUi(this); - - m_Controls.m_DataSelectionWidget->AddDataSelection(QmitkDataSelectionWidget::MaskPredicate); - m_Controls.m_DataSelectionWidget->SetHelpText(HelpText); - - mitk::DataStorage::Pointer ds = m_Controls.m_DataSelectionWidget->GetDataStorage(); - m_Controls.m_LabelSetWidget->SetDataStorage(ds); - m_Controls.m_LabelSetWidget->setEnabled(true); - - m_Controls.m_ToolSelectionBox->SetToolManager(*mitk::ToolManagerProvider::GetInstance()->GetToolManager()); - m_Controls.m_ToolSelectionBox->SetGenerateAccelerators(true); - m_Controls.m_ToolSelectionBox->SetToolGUIArea( m_Controls.m_ToolGUIContainer ); - m_Controls.m_ToolSelectionBox->SetDisplayedToolGroups("Median Dilate Erode Open Close 'Fill Holes' 'Keep N Largest' 'Split' 'Region Selector'"); - - connect(m_Controls.btnClosing, SIGNAL(clicked()), this, SLOT(OnClosingButtonClicked())); - connect(m_Controls.btnOpening, SIGNAL(clicked()), this, SLOT(OnOpeningButtonClicked())); - connect(m_Controls.btnDilatation, SIGNAL(clicked()), this, SLOT(OnDilatationButtonClicked())); - connect(m_Controls.btnErosion, SIGNAL(clicked()), this, SLOT(OnErosionButtonClicked())); - connect(m_Controls.btnFillHoles, SIGNAL(clicked()), this, SLOT(OnFillHolesButtonClicked())); - connect(m_Controls.radioButtonMorphoCross, SIGNAL(clicked()), this, SLOT(OnRadioButtonsClicked())); - connect(m_Controls.radioButtonMorphoBall, SIGNAL(clicked()), this, SLOT(OnRadioButtonsClicked())); - connect(m_Controls.m_DataSelectionWidget, SIGNAL(SelectionChanged(unsigned int, const mitk::DataNode*)), this, SLOT(OnSelectionChanged(unsigned int, const mitk::DataNode*))); - - if (m_Controls.m_DataSelectionWidget->GetSelection(0).IsNotNull()) - this->OnSelectionChanged(0, m_Controls.m_DataSelectionWidget->GetSelection(0)); -} - -QmitkMorphologicalOperationsWidget::~QmitkMorphologicalOperationsWidget() -{ -} - -void QmitkMorphologicalOperationsWidget::OnSelectionChanged(unsigned int, const mitk::DataNode*) -{ - QmitkDataSelectionWidget* m_DataSelectionWidget = m_Controls.m_DataSelectionWidget; - mitk::DataNode::Pointer node = m_DataSelectionWidget->GetSelection(0); - - if (node.IsNotNull()) - { - m_Controls.m_DataSelectionWidget->SetHelpText(""); - this->EnableButtons(true); - } - else - { - m_Controls.m_DataSelectionWidget->SetHelpText(HelpText); - this->EnableButtons(false); - } -} - -void QmitkMorphologicalOperationsWidget::EnableButtons(bool enable) -{ - m_Controls.btnClosing->setEnabled(enable); - m_Controls.btnDilatation->setEnabled(enable); - m_Controls.btnErosion->setEnabled(enable); - m_Controls.btnFillHoles->setEnabled(enable); - m_Controls.btnOpening->setEnabled(enable); -} - -void QmitkMorphologicalOperationsWidget::OnRadioButtonsClicked() -{ - bool enable = m_Controls.radioButtonMorphoBall->isChecked(); - - m_Controls.sliderMorphFactor->setEnabled(enable); - m_Controls.spinBoxMorphFactor->setEnabled(enable); -} - -void QmitkMorphologicalOperationsWidget::OnClosingButtonClicked() -{ - QApplication::setOverrideCursor(QCursor(Qt::BusyCursor)); - mitk::RenderingManager::GetInstance()->RequestUpdateAll(); - - QmitkDataSelectionWidget* m_DataSelectionWidget = m_Controls.m_DataSelectionWidget; - mitk::DataNode::Pointer node = m_DataSelectionWidget->GetSelection(0); - mitk::Image::Pointer image = static_cast(node->GetData()); - bool ball = m_Controls.radioButtonMorphoBall->isChecked(); - - mitk::MorphologicalOperations::StructuralElementType structuralElement = ball - ? mitk::MorphologicalOperations::Ball - : mitk::MorphologicalOperations::Cross; - - try - { - mitk::MorphologicalOperations::Closing(image, m_Controls.spinBoxMorphFactor->value(), structuralElement); - } - catch (const itk::ExceptionObject& exception) - { - MITK_WARN << "Exception caught: " << exception.GetDescription(); - - QApplication::restoreOverrideCursor(); - return; - } - - node->SetData(image); - - mitk::RenderingManager::GetInstance()->RequestUpdateAll(); - QApplication::restoreOverrideCursor(); -} - -void QmitkMorphologicalOperationsWidget::OnOpeningButtonClicked() -{ - QApplication::setOverrideCursor(QCursor(Qt::BusyCursor)); - mitk::RenderingManager::GetInstance()->RequestUpdateAll(); - - QmitkDataSelectionWidget* m_DataSelectionWidget = m_Controls.m_DataSelectionWidget; - mitk::DataNode::Pointer node = m_DataSelectionWidget->GetSelection(0); - mitk::Image::Pointer image = static_cast(node->GetData()); - bool ball = m_Controls.radioButtonMorphoBall->isChecked(); - - mitk::MorphologicalOperations::StructuralElementType structuralElement = ball - ? mitk::MorphologicalOperations::Ball - : mitk::MorphologicalOperations::Cross; - - try - { - mitk::MorphologicalOperations::Opening(image, m_Controls.spinBoxMorphFactor->value(), structuralElement); - } - catch (const itk::ExceptionObject& exception) - { - MITK_WARN << "Exception caught: " << exception.GetDescription(); - - QApplication::restoreOverrideCursor(); - return; - } - - node->SetData(image); - - mitk::RenderingManager::GetInstance()->RequestUpdateAll(); - QApplication::restoreOverrideCursor(); -} - -void QmitkMorphologicalOperationsWidget::OnDilatationButtonClicked() -{ - QApplication::setOverrideCursor(QCursor(Qt::BusyCursor)); - mitk::RenderingManager::GetInstance()->RequestUpdateAll(); - - QmitkDataSelectionWidget* m_DataSelectionWidget = m_Controls.m_DataSelectionWidget; - mitk::DataNode::Pointer node = m_DataSelectionWidget->GetSelection(0); - mitk::Image::Pointer image = static_cast(node->GetData()); - bool ball = m_Controls.radioButtonMorphoBall->isChecked(); - - mitk::MorphologicalOperations::StructuralElementType structuralElement = ball - ? mitk::MorphologicalOperations::Ball - : mitk::MorphologicalOperations::Cross; - - try - { - mitk::MorphologicalOperations::Dilate(image, m_Controls.spinBoxMorphFactor->value(), structuralElement); - } - catch (const itk::ExceptionObject& exception) - { - MITK_WARN << "Exception caught: " << exception.GetDescription(); - - QApplication::restoreOverrideCursor(); - return; - } - - node->SetData(image); - - mitk::RenderingManager::GetInstance()->RequestUpdateAll(); - QApplication::restoreOverrideCursor(); -} - -void QmitkMorphologicalOperationsWidget::OnErosionButtonClicked() -{ - QApplication::setOverrideCursor(QCursor(Qt::BusyCursor)); - mitk::RenderingManager::GetInstance()->RequestUpdateAll(); - - QmitkDataSelectionWidget* m_DataSelectionWidget = m_Controls.m_DataSelectionWidget; - mitk::DataNode::Pointer node = m_DataSelectionWidget->GetSelection(0); - mitk::Image::Pointer image = static_cast(node->GetData()); - bool ball = m_Controls.radioButtonMorphoBall->isChecked(); - - mitk::MorphologicalOperations::StructuralElementType structuralElement = ball - ? mitk::MorphologicalOperations::Ball - : mitk::MorphologicalOperations::Cross; - - try - { - mitk::MorphologicalOperations::Erode(image, m_Controls.spinBoxMorphFactor->value(), structuralElement); - } - catch (const itk::ExceptionObject& exception) - { - MITK_WARN << "Exception caught: " << exception.GetDescription(); - - QApplication::restoreOverrideCursor(); - return; - } - - node->SetData(image); - - mitk::RenderingManager::GetInstance()->RequestUpdateAll(); - QApplication::restoreOverrideCursor(); -} - -void QmitkMorphologicalOperationsWidget::OnFillHolesButtonClicked() -{ - QApplication::setOverrideCursor(QCursor(Qt::BusyCursor)); - mitk::RenderingManager::GetInstance()->RequestUpdateAll(); - - QmitkDataSelectionWidget* m_DataSelectionWidget = m_Controls.m_DataSelectionWidget; - mitk::DataNode::Pointer node = m_DataSelectionWidget->GetSelection(0); - mitk::Image::Pointer image = static_cast(node->GetData()); - - try - { - mitk::MorphologicalOperations::FillHoles(image); - } - catch (const itk::ExceptionObject& exception) - { - MITK_WARN << "Exception caught: " << exception.GetDescription(); - - QApplication::restoreOverrideCursor(); - return; - } - - node->SetData(image); - - mitk::RenderingManager::GetInstance()->RequestUpdateAll(); - QApplication::restoreOverrideCursor(); -} diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/MorphologicalOperations/QmitkMorphologicalOperationsWidget.h b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/MorphologicalOperations/QmitkMorphologicalOperationsWidget.h deleted file mode 100644 index 1935769186..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/MorphologicalOperations/QmitkMorphologicalOperationsWidget.h +++ /dev/null @@ -1,45 +0,0 @@ -/*============================================================================ - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center (DKFZ) -All rights reserved. - -Use of this source code is governed by a 3-clause BSD license that can be -found in the LICENSE file. - -============================================================================*/ - -#ifndef QmitkMorphologicalOperationsWidget_h -#define QmitkMorphologicalOperationsWidget_h - -#include "../QmitkSegmentationUtilityWidget.h" -#include - -/** \brief GUI class for morphological segmentation tools. - */ -class QmitkMorphologicalOperationsWidget : public QmitkSegmentationUtilityWidget -{ - Q_OBJECT - -public: - explicit QmitkMorphologicalOperationsWidget(mitk::SliceNavigationController* timeNavigationController, QWidget* parent = nullptr); - ~QmitkMorphologicalOperationsWidget() override; - -public slots: - void OnClosingButtonClicked(); - void OnOpeningButtonClicked(); - void OnDilatationButtonClicked(); - void OnErosionButtonClicked(); - void OnFillHolesButtonClicked(); - void OnSelectionChanged(unsigned int index, const mitk::DataNode* selection); - void OnRadioButtonsClicked(); - -protected: - void EnableButtons(bool enable); - -private: - Ui::QmitkMorphologicalOperationsWidgetControls m_Controls; -}; - -#endif diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/MorphologicalOperations/QmitkMorphologicalOperationsWidgetControls.ui b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/MorphologicalOperations/QmitkMorphologicalOperationsWidgetControls.ui deleted file mode 100644 index 0e8a3c92b5..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/MorphologicalOperations/QmitkMorphologicalOperationsWidgetControls.ui +++ /dev/null @@ -1,427 +0,0 @@ - - - QmitkMorphologicalOperationsWidgetControls - - - - 0 - 0 - 155 - 414 - - - - - - - - 0 - 0 - - - - 0 - - - - Masks - - - - 3 - - - 4 - - - - - - 0 - 0 - - - - - - - - Structuring Element - - - - - - Ball - - - true - - - - - - - Cross - - - - - - - - - - - - Radius - - - - - - - 1 - - - 20 - - - 1 - - - Qt::Horizontal - - - - - - - 1 - - - 20 - - - - - - - - - - - false - - - - 0 - 0 - - - - Dilatation - - - - :/SegmentationUtilities/MorphologicalOperations/Dilate_48x48.png:/SegmentationUtilities/MorphologicalOperations/Dilate_48x48.png - - - - 32 - 32 - - - - Qt::ToolButtonTextUnderIcon - - - - - - - false - - - - 0 - 0 - - - - Globally fills holes in segmentation (radius not required) - - - Fill Holes - - - - :/SegmentationUtilities/MorphologicalOperations/FillHoles_48x48.png:/SegmentationUtilities/MorphologicalOperations/FillHoles_48x48.png - - - - 32 - 32 - - - - Qt::ToolButtonTextUnderIcon - - - - - - - false - - - - 0 - 0 - - - - Erosion - - - - :/SegmentationUtilities/MorphologicalOperations/Erode_48x48.png:/SegmentationUtilities/MorphologicalOperations/Erode_48x48.png - - - - 32 - 32 - - - - Qt::ToolButtonTextUnderIcon - - - - - - - false - - - - 0 - 0 - - - - Closing - - - - :/SegmentationUtilities/MorphologicalOperations/Closing_48x48.png:/SegmentationUtilities/MorphologicalOperations/Closing_48x48.png - - - - 32 - 32 - - - - Qt::ToolButtonTextUnderIcon - - - - - - - false - - - - 0 - 0 - - - - Opening - - - - :/SegmentationUtilities/MorphologicalOperations/Opening_48x48.png:/SegmentationUtilities/MorphologicalOperations/Opening_48x48.png - - - - 32 - 32 - - - - Qt::ToolButtonTextUnderIcon - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - Labels - - - - 3 - - - 4 - - - - - - 0 - 0 - - - - - 0 - 50 - - - - - - - - - 0 - 0 - - - - - 15 - 0 - - - - - 50 - false - - - - - - - - - 0 - 0 - - - - - 0 - 15 - - - - - 50 - false - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - - - QmitkDataSelectionWidget - QWidget -
internal/Common/QmitkDataSelectionWidget.h
- 1 -
- - QmitkToolSelectionBox - QWidget -
QmitkToolSelectionBox.h
-
- - QmitkToolGUIArea - QWidget -
QmitkToolGUIArea.h
-
- - QmitkLabelSetWidget - QWidget -
QmitkLabelSetWidget.h
- 1 -
-
- - - - - - sliderMorphFactor - valueChanged(int) - spinBoxMorphFactor - setValue(int) - - - 240 - 27 - - - 766 - 36 - - - - - spinBoxMorphFactor - valueChanged(int) - sliderMorphFactor - setValue(int) - - - 784 - 38 - - - 657 - 38 - - - - -
diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/QmitkMultiLabelSegmentationUtilitiesView.cpp b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/QmitkMultiLabelSegmentationUtilitiesView.cpp deleted file mode 100644 index 3ccaa49638..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/QmitkMultiLabelSegmentationUtilitiesView.cpp +++ /dev/null @@ -1,93 +0,0 @@ -/*============================================================================ - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center (DKFZ) -All rights reserved. - -Use of this source code is governed by a 3-clause BSD license that can be -found in the LICENSE file. - -============================================================================*/ - -// #define ENABLE_CTK_WIDGETS_WIDGET - -#include -#include "QmitkMultiLabelSegmentationUtilitiesView.h" -#include "BooleanOperations/QmitkBooleanOperationsWidget.h" -#include "ContourModelToImage/QmitkContourModelToImageWidget.h" -#include "MorphologicalOperations/QmitkMorphologicalOperationsWidget.h" -#include "SurfaceToImage/QmitkSurfaceToImageWidget.h" -#include "ImageMasking/QmitkImageMaskingWidget.h" -#include "ConvertToMl/QmitkConvertToMlWidget.h" - -QmitkMultiLabelSegmentationUtilitiesView::QmitkMultiLabelSegmentationUtilitiesView() : - m_BooleanOperationsWidget(nullptr), - m_ContourModelToImageWidget(nullptr), - m_MorphologicalOperationsWidget(nullptr), - m_SurfaceToImageWidget(nullptr), - m_ImageMaskingWidget(nullptr), - m_ConvertToMlWidget(nullptr) -{ -} - -QmitkMultiLabelSegmentationUtilitiesView::~QmitkMultiLabelSegmentationUtilitiesView() -{ -} - -void QmitkMultiLabelSegmentationUtilitiesView::CreateQtPartControl(QWidget* parent) -{ - m_Controls.setupUi(parent); - - mitk::IRenderWindowPart* renderWindowPart = this->GetRenderWindowPart(); - - mitk::SliceNavigationController* timeNavigationController = renderWindowPart != nullptr - ? renderWindowPart->GetTimeNavigationController() - : nullptr; - - m_BooleanOperationsWidget = new QmitkBooleanOperationsWidget(timeNavigationController, parent); - m_ContourModelToImageWidget = new QmitkContourModelToImageWidget(timeNavigationController, parent); - m_MorphologicalOperationsWidget = new QmitkMorphologicalOperationsWidget(timeNavigationController, parent); - m_SurfaceToImageWidget = new QmitkSurfaceToImageWidget(timeNavigationController, parent); - m_ImageMaskingWidget = new QmitkImageMaskingWidget(timeNavigationController, parent); - m_ConvertToMlWidget = new QmitkConvertToMlWidget(timeNavigationController, parent); - - this->AddUtilityWidget(m_BooleanOperationsWidget, QIcon(":/MultiLabelSegmentationUtilities/BooleanOperations_48x48.png"), "Boolean Operations"); - this->AddUtilityWidget(m_ContourModelToImageWidget, QIcon(":/MultiLabelSegmentationUtilities/ContourModelSetToImage_48x48.png"), "Contour to Image"); - this->AddUtilityWidget(m_ImageMaskingWidget, QIcon(":/MultiLabelSegmentationUtilities/ImageMasking_48x48.png"), "Image Masking"); - this->AddUtilityWidget(m_MorphologicalOperationsWidget, QIcon(":/MultiLabelSegmentationUtilities/MorphologicalOperations_48x48.png"), "Morphological Operations"); - this->AddUtilityWidget(m_SurfaceToImageWidget, QIcon(":/MultiLabelSegmentationUtilities/SurfaceToImage_48x48.png"), "Surface To Image"); - this->AddUtilityWidget(m_ConvertToMlWidget, QmitkStyleManager::ThemeIcon(QStringLiteral(":/MultiLabelSegmentationUtilities/multilabelsegmentation.svg")), "Convert to MultiLabel"); -} - -void QmitkMultiLabelSegmentationUtilitiesView::AddUtilityWidget(QWidget* widget, const QIcon& icon, const QString& text) -{ - m_Controls.toolBox->addItem(widget, icon, text); -} - -void QmitkMultiLabelSegmentationUtilitiesView::SetFocus() -{ - m_Controls.toolBox->setFocus(); -} - -void QmitkMultiLabelSegmentationUtilitiesView::RenderWindowPartActivated(mitk::IRenderWindowPart* renderWindowPart) -{ - mitk::SliceNavigationController* timeNavigationController = renderWindowPart->GetTimeNavigationController(); - - m_BooleanOperationsWidget->SetTimeNavigationController(timeNavigationController); - m_ContourModelToImageWidget->SetTimeNavigationController(timeNavigationController); - m_ImageMaskingWidget->SetTimeNavigationController(timeNavigationController); - m_MorphologicalOperationsWidget->SetTimeNavigationController(timeNavigationController); - m_SurfaceToImageWidget->SetTimeNavigationController(timeNavigationController); - m_ConvertToMlWidget->SetTimeNavigationController(timeNavigationController); -} - -void QmitkMultiLabelSegmentationUtilitiesView::RenderWindowPartDeactivated(mitk::IRenderWindowPart*) -{ - m_BooleanOperationsWidget->SetTimeNavigationController(nullptr); - m_ContourModelToImageWidget->SetTimeNavigationController(nullptr); - m_ImageMaskingWidget->SetTimeNavigationController(nullptr); - m_MorphologicalOperationsWidget->SetTimeNavigationController(nullptr); - m_SurfaceToImageWidget->SetTimeNavigationController(nullptr); - m_ConvertToMlWidget->SetTimeNavigationController(nullptr); -} diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/QmitkMultiLabelSegmentationUtilitiesView.h b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/QmitkMultiLabelSegmentationUtilitiesView.h deleted file mode 100644 index 31ae381d04..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/QmitkMultiLabelSegmentationUtilitiesView.h +++ /dev/null @@ -1,59 +0,0 @@ -/*============================================================================ - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center (DKFZ) -All rights reserved. - -Use of this source code is governed by a 3-clause BSD license that can be -found in the LICENSE file. - -============================================================================*/ - -#ifndef QmitkMultiLabelSegmentationUtilitiesView_h -#define QmitkMultiLabelSegmentationUtilitiesView_h - -#include -#include -#include - -class QmitkBooleanOperationsWidget; -class QmitkContourModelToImageWidget; -class QmitkSurfaceToImageWidget; -class QmitkImageMaskingWidget; -class QmitkMorphologicalOperationsWidget; -class QmitkConvertToMlWidget; - -class QmitkMultiLabelSegmentationUtilitiesView : public QmitkAbstractView, public mitk::IRenderWindowPartListener -{ - Q_OBJECT - -public: - QmitkMultiLabelSegmentationUtilitiesView(); - ~QmitkMultiLabelSegmentationUtilitiesView() override; - - void CreateQtPartControl(QWidget* parent) override; - void SetFocus() override; - - void RenderWindowPartActivated(mitk::IRenderWindowPart* renderWindowPart) override; - void RenderWindowPartDeactivated(mitk::IRenderWindowPart* renderWindowPart) override; - -private: - void AddUtilityWidget(QWidget* widget, const QIcon& icon, const QString& text); - - QmitkBooleanOperationsWidget* m_BooleanOperationsWidget; - - QmitkContourModelToImageWidget* m_ContourModelToImageWidget; - - QmitkMorphologicalOperationsWidget* m_MorphologicalOperationsWidget; - - QmitkSurfaceToImageWidget* m_SurfaceToImageWidget; - - QmitkImageMaskingWidget* m_ImageMaskingWidget; - - QmitkConvertToMlWidget* m_ConvertToMlWidget; - - Ui::QmitkMultiLabelSegmentationUtilitiesViewControls m_Controls; -}; - -#endif diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/QmitkMultiLabelSegmentationUtilitiesViewControls.ui b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/QmitkMultiLabelSegmentationUtilitiesViewControls.ui deleted file mode 100644 index b3ed23046b..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/QmitkMultiLabelSegmentationUtilitiesViewControls.ui +++ /dev/null @@ -1,52 +0,0 @@ - - - QmitkMultiLabelSegmentationUtilitiesViewControls - - - - 0 - 0 - 289 - 418 - - - - - 0 - 0 - - - - QmitkTemplate - - - icon-size: 32px 32px - - - - 0 - - - - - - - - - - - -1 - - - 0 - - - - - - - - - - - diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/QmitkSegmentationUtilityWidget.cpp b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/QmitkSegmentationUtilityWidget.cpp deleted file mode 100644 index 2389dda82b..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/QmitkSegmentationUtilityWidget.cpp +++ /dev/null @@ -1,34 +0,0 @@ -/*============================================================================ - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center (DKFZ) -All rights reserved. - -Use of this source code is governed by a 3-clause BSD license that can be -found in the LICENSE file. - -============================================================================*/ - -#include "QmitkSegmentationUtilityWidget.h" - -QmitkSegmentationUtilityWidget::QmitkSegmentationUtilityWidget(mitk::SliceNavigationController* timeNavigationController, QWidget* parent) - : QWidget(parent) -{ - this->SetTimeNavigationController(timeNavigationController); -} - -QmitkSegmentationUtilityWidget::~QmitkSegmentationUtilityWidget() -{ -} - -mitk::SliceNavigationController* QmitkSegmentationUtilityWidget::GetTimeNavigationController() const -{ - return m_TimeNavigationController; -} - -void QmitkSegmentationUtilityWidget::SetTimeNavigationController(mitk::SliceNavigationController* timeNavigationController) -{ - m_TimeNavigationController = timeNavigationController; - this->setEnabled(timeNavigationController != nullptr); -} diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/QmitkSegmentationUtilityWidget.h b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/QmitkSegmentationUtilityWidget.h deleted file mode 100644 index 80e988c1ea..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/QmitkSegmentationUtilityWidget.h +++ /dev/null @@ -1,51 +0,0 @@ -/*============================================================================ - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center (DKFZ) -All rights reserved. - -Use of this source code is governed by a 3-clause BSD license that can be -found in the LICENSE file. - -============================================================================*/ - -#ifndef QmitkSegmentationUtilityWidget_h -#define QmitkSegmentationUtilityWidget_h - -#include - -namespace mitk -{ - class SliceNavigationController; -} - -/** \brief Base class for segmentation utility widgets that need access to the time navigation controller. - * - * Call GetTimeNavigationController() in your derived class to gain access to the time navigation controller. - * The time navigation controller is not not available at all times and hence this method can return nullptr. - */ -class QmitkSegmentationUtilityWidget : public QWidget -{ - Q_OBJECT - -public: - explicit QmitkSegmentationUtilityWidget(mitk::SliceNavigationController* timeNavigationController, QWidget* parent = nullptr); - ~QmitkSegmentationUtilityWidget() override; - - /** \brief Usually called only from QmitkSegmentationUtilitiesView::RenderWindowPartActivated() and QmitkSegmentationUtilitiesView::RenderWindowPartDeactivated(). - */ - void SetTimeNavigationController(mitk::SliceNavigationController* timeNavigationController); - -protected: - /** \brief Call this method to access the time navigation controller. - * - * \return Pointer to the time navigation controller or nullptr, if it is not available. - */ - mitk::SliceNavigationController* GetTimeNavigationController() const; - -private: - mitk::SliceNavigationController* m_TimeNavigationController; -}; - -#endif diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/SurfaceToImage/QmitkSurfaceToImageWidget.cpp b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/SurfaceToImage/QmitkSurfaceToImageWidget.cpp deleted file mode 100644 index fe8e47e8e8..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/SurfaceToImage/QmitkSurfaceToImageWidget.cpp +++ /dev/null @@ -1,175 +0,0 @@ -/*============================================================================ - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center (DKFZ) -All rights reserved. - -Use of this source code is governed by a 3-clause BSD license that can be -found in the LICENSE file. - -============================================================================*/ - -#include "QmitkSurfaceToImageWidget.h" - -#include -#include -#include -#include -#include -#include - -#include - -#include - -static const char* const HelpText = "Select a patient image and a surface"; - -QmitkSurfaceToImageWidget::QmitkSurfaceToImageWidget(mitk::SliceNavigationController* timeNavigationController, QWidget* parent) - : QmitkSegmentationUtilityWidget(timeNavigationController, parent) -{ - m_Controls.setupUi(this); - - m_Controls.m_DataSelectionWidget->AddDataSelection(QmitkDataSelectionWidget::ImagePredicate); - m_Controls.m_DataSelectionWidget->AddDataSelection(QmitkDataSelectionWidget::SurfacePredicate); - m_Controls.m_DataSelectionWidget->SetHelpText(HelpText); - -// mitk::IDataStorageService* service = -// berry::Platform::GetServiceRegistry().GetServiceById(mitk::IDataStorageService::ID); - -// assert(service.IsNotNull()); - - mitk::DataStorage::Pointer ds = m_Controls.m_DataSelectionWidget->GetDataStorage(); - m_Controls.m_LabelSetWidget->SetDataStorage(ds); - m_Controls.m_LabelSetWidget->setEnabled(true); - - m_Controls.m_SurfaceStampWidget->SetDataStorage(ds); - - this->EnableButtons(false); - - m_Controls.m_chkMakeOutputBinary->setChecked(true); - - connect (m_Controls.btnSurface2Image, SIGNAL(pressed()), this, SLOT(OnSurface2ImagePressed())); - connect(m_Controls.m_DataSelectionWidget, SIGNAL(SelectionChanged(unsigned int, const mitk::DataNode*)), - this, SLOT(OnSelectionChanged(unsigned int, const mitk::DataNode*))); - connect (m_Controls.m_chkMakeOutputBinary, SIGNAL(toggled(bool)), this, SLOT(OnMakeOutputBinaryChanged(bool))); - - if( m_Controls.m_DataSelectionWidget->GetSelection(0).IsNotNull() && - m_Controls.m_DataSelectionWidget->GetSelection(1).IsNotNull() ) - { - this->OnSelectionChanged( 0, m_Controls.m_DataSelectionWidget->GetSelection(0)); - } -} - -QmitkSurfaceToImageWidget::~QmitkSurfaceToImageWidget() -{ -} - -void QmitkSurfaceToImageWidget::EnableButtons(bool enable) -{ - m_Controls.btnSurface2Image->setEnabled(enable); - m_Controls.m_chkMakeOutputBinary->setEnabled(enable); - m_Controls.m_chkOverwriteBackground->setEnabled(enable && !m_Controls.m_chkMakeOutputBinary->isChecked()); - m_Controls.m_leForegroundValue->setEnabled(enable && !m_Controls.m_chkMakeOutputBinary->isChecked()); - m_Controls.m_leBackgroundValue->setEnabled(enable && !m_Controls.m_chkMakeOutputBinary->isChecked()); -} - -void QmitkSurfaceToImageWidget::OnSelectionChanged(unsigned int, const mitk::DataNode*) -{ - mitk::DataNode::Pointer imageNode = m_Controls.m_DataSelectionWidget->GetSelection(0); - mitk::DataNode::Pointer surfaceNode = m_Controls.m_DataSelectionWidget->GetSelection(1); - - if (imageNode.IsNull() || surfaceNode.IsNull() ) - { - m_Controls.m_DataSelectionWidget->SetHelpText(HelpText); - this->EnableButtons(false); - } - else - { - mitk::Image::Pointer image = dynamic_cast( m_Controls.m_DataSelectionWidget->GetSelection(0)->GetData() ); - mitk::Surface::Pointer surface = dynamic_cast( m_Controls.m_DataSelectionWidget->GetSelection(1)->GetData() ); - if( image->GetTimeSteps() != surface->GetTimeSteps() ) - { - m_Controls.m_DataSelectionWidget->SetHelpText("Image and surface are of different size"); - this->EnableButtons(false); - } - else - { - m_Controls.m_DataSelectionWidget->SetHelpText(""); - this->EnableButtons(); - } - } -} - -void QmitkSurfaceToImageWidget::OnSurface2ImagePressed() -{ - this->EnableButtons(false); - - mitk::Image::Pointer image = dynamic_cast( m_Controls.m_DataSelectionWidget->GetSelection(0)->GetData() ); - mitk::Surface::Pointer surface = dynamic_cast( m_Controls.m_DataSelectionWidget->GetSelection(1)->GetData() ); - - if( image.IsNull() || surface.IsNull()) - { - MITK_ERROR << "Selection does not contain an image and/or a surface"; - QMessageBox::information( this, "Surface To Image", "Selection does not contain an image and/or a surface", QMessageBox::Ok ); - this->EnableButtons(); - return; - } - - mitk::Image::Pointer resultImage(nullptr); - resultImage = this->ConvertSurfaceToImage( image, surface ); - - if( resultImage.IsNull() ) - { - QMessageBox::information( this, "Surface to Image", "Could not stamp surface.\n See error log for details.", QMessageBox::Ok ); - this->EnableButtons(); - return; - } - - //create name for result node - std::string nameOfResultImage = m_Controls.m_DataSelectionWidget->GetSelection(0)->GetName(); - nameOfResultImage.append("_"); - nameOfResultImage.append(m_Controls.m_DataSelectionWidget->GetSelection(1)->GetName()); - - //create data node and add to data storage - mitk::DataNode::Pointer resultNode = mitk::DataNode::New(); - resultNode->SetData( resultImage ); - resultNode->SetProperty("name", mitk::StringProperty::New(nameOfResultImage) ); - resultNode->SetProperty("binary", mitk::BoolProperty::New(m_Controls.m_chkMakeOutputBinary->isChecked()) ); - - m_Controls.m_DataSelectionWidget->GetDataStorage()->Add(resultNode, m_Controls.m_DataSelectionWidget->GetSelection(0)); - - this->EnableButtons(); -} - -mitk::Image::Pointer QmitkSurfaceToImageWidget::ConvertSurfaceToImage( mitk::Image::Pointer image, mitk::Surface::Pointer surface ) -{ - mitk::SurfaceStampImageFilter::Pointer filter = mitk::SurfaceStampImageFilter::New(); - filter->SetInput(image); - filter->SetSurface(surface); - filter->SetMakeOutputBinary(m_Controls.m_chkMakeOutputBinary->isChecked()); - filter->SetOverwriteBackground(m_Controls.m_chkOverwriteBackground->isChecked()); - filter->SetForegroundValue(m_Controls.m_leForegroundValue->text().toFloat()); - filter->SetBackgroundValue(m_Controls.m_leBackgroundValue->text().toFloat()); - - try - { - filter->Update(); - } - catch(mitk::Exception& e) - { - MITK_ERROR << "exception caught: " << e.GetDescription(); - return nullptr; - } - - mitk::Image::Pointer resultImage = filter->GetOutput(); - - return resultImage; -} - -void QmitkSurfaceToImageWidget::OnMakeOutputBinaryChanged(bool value) -{ - m_Controls.m_chkOverwriteBackground->setEnabled(!value); - m_Controls.m_leForegroundValue->setEnabled(!value); - m_Controls.m_leBackgroundValue->setEnabled(!value); -} diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/SurfaceToImage/QmitkSurfaceToImageWidget.h b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/SurfaceToImage/QmitkSurfaceToImageWidget.h deleted file mode 100644 index 70e006a2ba..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/SurfaceToImage/QmitkSurfaceToImageWidget.h +++ /dev/null @@ -1,63 +0,0 @@ -/*============================================================================ - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center (DKFZ) -All rights reserved. - -Use of this source code is governed by a 3-clause BSD license that can be -found in the LICENSE file. - -============================================================================*/ - -#ifndef QmitkSurfaceToImageWidget_h -#define QmitkSurfaceToImageWidget_h - -#include "../QmitkSegmentationUtilityWidget.h" -#include - -#include -#include - -/*! - \brief QmitkSurfaceToImageWidget - - The Tool converts a surface to a binary image. The Method requires - a surface and an image, which header information defines the output - image. The resulting binary image has the same dimension, size, and - Geometry3D as the input image. -*/ -class QmitkSurfaceToImageWidget : public QmitkSegmentationUtilityWidget -{ - Q_OBJECT - -public: - - /** @brief Default constructor, including creation of GUI elements and signals/slots connections. */ - explicit QmitkSurfaceToImageWidget(mitk::SliceNavigationController* timeNavigationController, QWidget* parent = nullptr); - - /** @brief Defaul destructor. */ - ~QmitkSurfaceToImageWidget() override; - -private slots: - - /** @brief This slot is called if the selection in the workbench is changed. */ - void OnSelectionChanged(unsigned int index, const mitk::DataNode* selection); - - /** @brief This slot is called if user activates the button to convert a surface into a binary image. */ - void OnSurface2ImagePressed(); - - void OnMakeOutputBinaryChanged(bool value); - -private: - - /** @brief Enable buttons if data selction is valid. */ - void EnableButtons(bool enable = true); - - /** @brief Convert a surface into an binary image. */ - mitk::Image::Pointer ConvertSurfaceToImage( mitk::Image::Pointer image, mitk::Surface::Pointer surface ); - - Ui::QmitkSurfaceToImageWidgetControls m_Controls; -}; - -#endif diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/SurfaceToImage/QmitkSurfaceToImageWidgetControls.ui b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/SurfaceToImage/QmitkSurfaceToImageWidgetControls.ui deleted file mode 100644 index 52b7fc86e4..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/SegmentationUtilities/SurfaceToImage/QmitkSurfaceToImageWidgetControls.ui +++ /dev/null @@ -1,252 +0,0 @@ - - - QmitkSurfaceToImageWidgetControls - - - - 0 - 0 - 179 - 183 - - - - - 3 - - - 4 - - - - - 0 - - - - Masks - - - - 3 - - - 4 - - - - - - 0 - 0 - - - - - - - - make output binary - - - - - - - overwrite background - - - - - - - - - Background Value: - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 50 - 0 - - - - - 50 - 16777215 - - - - 0.0 - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - - - Foreground Value: - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 50 - 0 - - - - - 50 - 16777215 - - - - 1.0 - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - Convert - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - Labels - - - - 2 - - - 2 - - - - - - 0 - 0 - - - - - 0 - 50 - - - - - - - - - 0 - 20 - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - - - QmitkDataSelectionWidget - QWidget -
internal/Common/QmitkDataSelectionWidget.h
- 1 -
- - QmitkLabelSetWidget - QWidget -
QmitkLabelSetWidget.h
- 1 -
- - QmitkSurfaceStampWidget - QWidget -
QmitkSurfaceStampWidget.h
- 1 -
-
- - -
diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/mitkPluginActivator.cpp b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/mitkPluginActivator.cpp deleted file mode 100644 index b699458957..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/mitkPluginActivator.cpp +++ /dev/null @@ -1,49 +0,0 @@ -/*============================================================================ - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center (DKFZ) -All rights reserved. - -Use of this source code is governed by a 3-clause BSD license that can be -found in the LICENSE file. - -============================================================================*/ - -#include "mitkPluginActivator.h" - -#include "QmitkThresholdAction.h" -#include "QmitkConvertSurfaceToLabelAction.h" -#include "QmitkConvertMaskToLabelAction.h" -#include "QmitkConvertToMultiLabelSegmentationAction.h" -#include "QmitkCreateMultiLabelSegmentationAction.h" - -#include "SegmentationUtilities/QmitkMultiLabelSegmentationUtilitiesView.h" - -#include - -ctkPluginContext* mitk::PluginActivator::m_Context = nullptr; - -//MLI TODO -US_INITIALIZE_MODULE //("MultiLabelSegmentation", "liborg_mitk_gui_qt_multilabelsegmentation") - -void mitk::PluginActivator::start(ctkPluginContext *context) -{ - BERRY_REGISTER_EXTENSION_CLASS(QmitkThresholdAction, context) - BERRY_REGISTER_EXTENSION_CLASS(QmitkConvertSurfaceToLabelAction, context) - BERRY_REGISTER_EXTENSION_CLASS(QmitkConvertMaskToLabelAction, context) - BERRY_REGISTER_EXTENSION_CLASS(QmitkConvertToMultiLabelSegmentationAction, context) - BERRY_REGISTER_EXTENSION_CLASS(QmitkCreateMultiLabelSegmentationAction, context) - BERRY_REGISTER_EXTENSION_CLASS(QmitkMultiLabelSegmentationUtilitiesView, context) - - m_Context = context; -} - -void mitk::PluginActivator::stop(ctkPluginContext*) -{ -} - -ctkPluginContext* mitk::PluginActivator::getContext() -{ - return m_Context; -} diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/mitkPluginActivator.h b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/mitkPluginActivator.h deleted file mode 100644 index 1a97dd3e6f..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/mitkPluginActivator.h +++ /dev/null @@ -1,37 +0,0 @@ -/*============================================================================ - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center (DKFZ) -All rights reserved. - -Use of this source code is governed by a 3-clause BSD license that can be -found in the LICENSE file. - -============================================================================*/ - -#ifndef org_mitk_gui_qt_multilabelsegmentation_Activator_h -#define org_mitk_gui_qt_multilabelsegmentation_Activator_h - -#include - -namespace mitk -{ - class PluginActivator : public QObject, public ctkPluginActivator - { - Q_OBJECT - Q_PLUGIN_METADATA(IID "org_mitk_gui_qt_multilabelsegmentation") - Q_INTERFACES(ctkPluginActivator) - - public: - void start(ctkPluginContext *context) override; - void stop(ctkPluginContext *context) override; - - static ctkPluginContext* getContext(); - - private: - static ctkPluginContext* m_Context; - }; -} - -#endif diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/target_libraries.cmake b/Plugins/org.mitk.gui.qt.multilabelsegmentation/target_libraries.cmake deleted file mode 100644 index 6c71bbbf08..0000000000 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/target_libraries.cmake +++ /dev/null @@ -1,3 +0,0 @@ -set(target_libraries - CTKWidgets -) 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 c9afa60b63..a5f247508a 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,39 @@ /** \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_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/files.cmake b/Plugins/org.mitk.gui.qt.segmentation/files.cmake index 584a0cf103..ee2f6186bf 100644 --- a/Plugins/org.mitk.gui.qt.segmentation/files.cmake +++ b/Plugins/org.mitk.gui.qt.segmentation/files.cmake @@ -1,87 +1,95 @@ set(SRC_CPP_FILES QmitkSegmentationPreferencePage.cpp QmitkNewSegmentationDialog.cpp QmitkLabelSetWidget.cpp ) set(INTERNAL_CPP_FILES mitkPluginActivator.cpp QmitkSegmentationView.cpp QmitkAutocropAction.cpp QmitkAutocropLabelSetImageAction.cpp QmitkCreatePolygonModelAction.cpp QmitkLoadMultiLabelPresetAction.cpp QmitkSaveMultiLabelPresetAction.cpp + QmitkConvertSurfaceToLabelAction.cpp + QmitkConvertMaskToLabelAction.cpp + QmitkConvertToMultiLabelSegmentationAction.cpp + QmitkCreateMultiLabelSegmentationAction.cpp Common/QmitkDataSelectionWidget.cpp Common/QmitkLabelsWidget.cpp Common/QmitkLayersWidget.cpp SegmentationUtilities/QmitkSegmentationUtilitiesView.cpp SegmentationUtilities/QmitkSegmentationUtilityWidget.cpp SegmentationUtilities/BooleanOperations/QmitkBooleanOperationsWidget.cpp SegmentationUtilities/ImageMasking/QmitkImageMaskingWidget.cpp SegmentationUtilities/ContourModelToImage/QmitkContourModelToImageWidget.cpp SegmentationUtilities/MorphologicalOperations/QmitkMorphologicalOperationsWidget.cpp SegmentationUtilities/SurfaceToImage/QmitkSurfaceToImageWidget.cpp ) set(UI_FILES src/QmitkSegmentationPreferencePageControls.ui src/QmitkNewSegmentationDialog.ui src/QmitkLabelSetWidgetControls.ui src/internal/QmitkSegmentationViewControls.ui src/internal/Common/QmitkDataSelectionWidgetControls.ui src/internal/Common/QmitkLabelsWidgetControls.ui src/internal/Common/QmitkLayersWidgetControls.ui src/internal/SegmentationUtilities/QmitkSegmentationUtilitiesViewControls.ui src/internal/SegmentationUtilities/BooleanOperations/QmitkBooleanOperationsWidgetControls.ui src/internal/SegmentationUtilities/ImageMasking/QmitkImageMaskingWidgetControls.ui src/internal/SegmentationUtilities/ContourModelToImage/QmitkContourModelToImageWidgetControls.ui src/internal/SegmentationUtilities/MorphologicalOperations/QmitkMorphologicalOperationsWidgetControls.ui src/internal/SegmentationUtilities/SurfaceToImage/QmitkSurfaceToImageWidgetControls.ui ) set(MOC_H_FILES src/QmitkSegmentationPreferencePage.h src/QmitkNewSegmentationDialog.h src/QmitkLabelSetWidget.h src/internal/mitkPluginActivator.h src/internal/QmitkSegmentationView.h src/internal/QmitkAutocropAction.h src/internal/QmitkAutocropLabelSetImageAction.h src/internal/QmitkCreatePolygonModelAction.h src/internal/QmitkLoadMultiLabelPresetAction.h src/internal/QmitkSaveMultiLabelPresetAction.h + src/internal/QmitkConvertSurfaceToLabelAction.h + src/internal/QmitkConvertMaskToLabelAction.h + src/internal/QmitkConvertToMultiLabelSegmentationAction.h + src/internal/QmitkCreateMultiLabelSegmentationAction.h src/internal/Common/QmitkDataSelectionWidget.h src/internal/Common/QmitkLabelsWidget.h src/internal/Common/QmitkLayersWidget.h src/internal/SegmentationUtilities/QmitkSegmentationUtilitiesView.h src/internal/SegmentationUtilities/QmitkSegmentationUtilityWidget.h src/internal/SegmentationUtilities/BooleanOperations/QmitkBooleanOperationsWidget.h src/internal/SegmentationUtilities/ImageMasking/QmitkImageMaskingWidget.h src/internal/SegmentationUtilities/ContourModelToImage/QmitkContourModelToImageWidget.h src/internal/SegmentationUtilities/MorphologicalOperations/QmitkMorphologicalOperationsWidget.h src/internal/SegmentationUtilities/SurfaceToImage/QmitkSurfaceToImageWidget.h ) set(CACHED_RESOURCE_FILES resources/segmentation.svg resources/segmentation_utilities.svg plugin.xml ) set(QRC_FILES resources/segmentation.qrc resources/SegmentationUtilities.qrc resources/BooleanOperationsWidget.qrc resources/MorphologicalOperationsWidget.qrc ) set(CPP_FILES) foreach(file ${SRC_CPP_FILES}) set(CPP_FILES ${CPP_FILES} src/${file}) endforeach(file ${SRC_CPP_FILES}) 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.segmentation/plugin.xml b/Plugins/org.mitk.gui.qt.segmentation/plugin.xml index 7da109cf6a..d761442833 100644 --- a/Plugins/org.mitk.gui.qt.segmentation/plugin.xml +++ b/Plugins/org.mitk.gui.qt.segmentation/plugin.xml @@ -1,80 +1,84 @@ Allows the segmentation of images using different tools. Edit segmentations using standard operations. + + + + diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkConvertMaskToLabelAction.cpp b/Plugins/org.mitk.gui.qt.segmentation/src/internal/QmitkConvertMaskToLabelAction.cpp similarity index 100% rename from Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkConvertMaskToLabelAction.cpp rename to Plugins/org.mitk.gui.qt.segmentation/src/internal/QmitkConvertMaskToLabelAction.cpp diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkConvertMaskToLabelAction.h b/Plugins/org.mitk.gui.qt.segmentation/src/internal/QmitkConvertMaskToLabelAction.h similarity index 95% rename from Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkConvertMaskToLabelAction.h rename to Plugins/org.mitk.gui.qt.segmentation/src/internal/QmitkConvertMaskToLabelAction.h index ad082d9ea7..4c9561b816 100644 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkConvertMaskToLabelAction.h +++ b/Plugins/org.mitk.gui.qt.segmentation/src/internal/QmitkConvertMaskToLabelAction.h @@ -1,48 +1,48 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef __QmitkConvertMaskToLabelAction_H_ #define __QmitkConvertMaskToLabelAction_H_ #include "mitkIContextMenuAction.h" -#include "org_mitk_gui_qt_multilabelsegmentation_Export.h" +#include #include "vector" #include "mitkDataNode.h" #include "mitkImage.h" class MITK_QT_SEGMENTATION QmitkConvertMaskToLabelAction : public QObject, public mitk::IContextMenuAction { Q_OBJECT Q_INTERFACES(mitk::IContextMenuAction) public: QmitkConvertMaskToLabelAction(); ~QmitkConvertMaskToLabelAction() override; //interface methods void Run( const QList& selectedNodes ) override; void SetDataStorage(mitk::DataStorage* dataStorage) override; void SetSmoothed(bool smoothed) override; void SetDecimated(bool decimated) override; void SetFunctionality(berry::QtViewPart* functionality) override; protected: private: typedef QList NodeList; }; #endif // __QmitkConvertMaskToLabelAction_H_ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkConvertSurfaceToLabelAction.cpp b/Plugins/org.mitk.gui.qt.segmentation/src/internal/QmitkConvertSurfaceToLabelAction.cpp similarity index 100% rename from Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkConvertSurfaceToLabelAction.cpp rename to Plugins/org.mitk.gui.qt.segmentation/src/internal/QmitkConvertSurfaceToLabelAction.cpp diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkConvertSurfaceToLabelAction.h b/Plugins/org.mitk.gui.qt.segmentation/src/internal/QmitkConvertSurfaceToLabelAction.h similarity index 95% rename from Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkConvertSurfaceToLabelAction.h rename to Plugins/org.mitk.gui.qt.segmentation/src/internal/QmitkConvertSurfaceToLabelAction.h index 08eb613b2b..d39e8622f1 100644 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkConvertSurfaceToLabelAction.h +++ b/Plugins/org.mitk.gui.qt.segmentation/src/internal/QmitkConvertSurfaceToLabelAction.h @@ -1,48 +1,48 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef __QmitkConvertSurfaceToLabelAction_H_ #define __QmitkConvertSurfaceToLabelAction_H_ #include "mitkIContextMenuAction.h" -#include "org_mitk_gui_qt_multilabelsegmentation_Export.h" +#include #include "vector" #include "mitkDataNode.h" #include "mitkImage.h" class MITK_QT_SEGMENTATION QmitkConvertSurfaceToLabelAction : public QObject, public mitk::IContextMenuAction { Q_OBJECT Q_INTERFACES(mitk::IContextMenuAction) public: QmitkConvertSurfaceToLabelAction(); ~QmitkConvertSurfaceToLabelAction() override; //interface methods void Run( const QList& selectedNodes ) override; void SetDataStorage(mitk::DataStorage* dataStorage) override; void SetSmoothed(bool smoothed) override; void SetDecimated(bool decimated) override; void SetFunctionality(berry::QtViewPart* functionality) override; protected: private: typedef QList NodeList; }; #endif // __QmitkConvertSurfaceToLabelAction_H_ diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkConvertToMultiLabelSegmentationAction.cpp b/Plugins/org.mitk.gui.qt.segmentation/src/internal/QmitkConvertToMultiLabelSegmentationAction.cpp similarity index 100% rename from Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkConvertToMultiLabelSegmentationAction.cpp rename to Plugins/org.mitk.gui.qt.segmentation/src/internal/QmitkConvertToMultiLabelSegmentationAction.cpp diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkConvertToMultiLabelSegmentationAction.h b/Plugins/org.mitk.gui.qt.segmentation/src/internal/QmitkConvertToMultiLabelSegmentationAction.h similarity index 95% rename from Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkConvertToMultiLabelSegmentationAction.h rename to Plugins/org.mitk.gui.qt.segmentation/src/internal/QmitkConvertToMultiLabelSegmentationAction.h index aa6fddfb93..e535fbd4f4 100644 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkConvertToMultiLabelSegmentationAction.h +++ b/Plugins/org.mitk.gui.qt.segmentation/src/internal/QmitkConvertToMultiLabelSegmentationAction.h @@ -1,47 +1,47 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef QMITK_ConvertToMultiLabelSegmentation_H #define QMITK_ConvertToMultiLabelSegmentation_H #include "mitkIContextMenuAction.h" -#include "org_mitk_gui_qt_multilabelsegmentation_Export.h" +#include #include "vector" #include "mitkDataNode.h" //#include "mitkImage.h" class MITK_QT_SEGMENTATION QmitkConvertToMultiLabelSegmentationAction : public QObject, public mitk::IContextMenuAction { Q_OBJECT Q_INTERFACES(mitk::IContextMenuAction) public: QmitkConvertToMultiLabelSegmentationAction(); ~QmitkConvertToMultiLabelSegmentationAction() override; //interface methods void Run( const QList& selectedNodes ) override; void SetDataStorage(mitk::DataStorage* dataStorage) override; void SetFunctionality(berry::QtViewPart* functionality) override; void SetSmoothed(bool smoothed) override; void SetDecimated(bool decimated) override; private: typedef QList NodeList; mitk::DataStorage::Pointer m_DataStorage; }; #endif // QMITK_ConvertToMultiLabelSegmentation_H diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkCreateMultiLabelSegmentationAction.cpp b/Plugins/org.mitk.gui.qt.segmentation/src/internal/QmitkCreateMultiLabelSegmentationAction.cpp similarity index 100% rename from Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkCreateMultiLabelSegmentationAction.cpp rename to Plugins/org.mitk.gui.qt.segmentation/src/internal/QmitkCreateMultiLabelSegmentationAction.cpp diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkCreateMultiLabelSegmentationAction.h b/Plugins/org.mitk.gui.qt.segmentation/src/internal/QmitkCreateMultiLabelSegmentationAction.h similarity index 95% rename from Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkCreateMultiLabelSegmentationAction.h rename to Plugins/org.mitk.gui.qt.segmentation/src/internal/QmitkCreateMultiLabelSegmentationAction.h index a70a5802dd..e5543be96f 100644 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkCreateMultiLabelSegmentationAction.h +++ b/Plugins/org.mitk.gui.qt.segmentation/src/internal/QmitkCreateMultiLabelSegmentationAction.h @@ -1,46 +1,46 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef QMITK_CreateMultiLabelSegmentation_H #define QMITK_CreateMultiLabelSegmentation_H #include "mitkIContextMenuAction.h" -#include "org_mitk_gui_qt_multilabelsegmentation_Export.h" +#include #include "vector" #include "mitkDataNode.h" class MITK_QT_SEGMENTATION QmitkCreateMultiLabelSegmentationAction : public QObject, public mitk::IContextMenuAction { Q_OBJECT Q_INTERFACES(mitk::IContextMenuAction) public: QmitkCreateMultiLabelSegmentationAction(); ~QmitkCreateMultiLabelSegmentationAction() override; //interface methods void Run( const QList& selectedNodes ) override; void SetDataStorage(mitk::DataStorage* dataStorage) override; void SetFunctionality(berry::QtViewPart* functionality) override; void SetSmoothed(bool smoothed) override; void SetDecimated(bool decimated) override; private: typedef QList NodeList; mitk::DataStorage::Pointer m_DataStorage; }; #endif // QMITK_CreateMultiLabelSegmentation_H diff --git a/Plugins/org.mitk.gui.qt.segmentation/src/internal/mitkPluginActivator.cpp b/Plugins/org.mitk.gui.qt.segmentation/src/internal/mitkPluginActivator.cpp index 2e080b5c7e..e50a27bfcd 100644 --- a/Plugins/org.mitk.gui.qt.segmentation/src/internal/mitkPluginActivator.cpp +++ b/Plugins/org.mitk.gui.qt.segmentation/src/internal/mitkPluginActivator.cpp @@ -1,66 +1,74 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #include "mitkPluginActivator.h" #include "QmitkSegmentationView.h" #include "QmitkSegmentationPreferencePage.h" #include "SegmentationUtilities/QmitkSegmentationUtilitiesView.h" #include "QmitkAutocropAction.h" #include "QmitkAutocropLabelSetImageAction.h" #include "QmitkCreatePolygonModelAction.h" #include "QmitkLoadMultiLabelPresetAction.h" #include "QmitkSaveMultiLabelPresetAction.h" +#include "QmitkConvertSurfaceToLabelAction.h" +#include "QmitkConvertMaskToLabelAction.h" +#include "QmitkConvertToMultiLabelSegmentationAction.h" +#include "QmitkCreateMultiLabelSegmentationAction.h" using namespace mitk; ctkPluginContext* PluginActivator::m_context = nullptr; PluginActivator* PluginActivator::m_Instance = nullptr; PluginActivator::PluginActivator() { m_Instance = this; } PluginActivator::~PluginActivator() { m_Instance = nullptr; } void PluginActivator::start(ctkPluginContext *context) { BERRY_REGISTER_EXTENSION_CLASS(QmitkSegmentationView, context) BERRY_REGISTER_EXTENSION_CLASS(QmitkSegmentationPreferencePage, context) BERRY_REGISTER_EXTENSION_CLASS(QmitkSegmentationUtilitiesView, context) BERRY_REGISTER_EXTENSION_CLASS(QmitkAutocropAction, context) BERRY_REGISTER_EXTENSION_CLASS(QmitkAutocropLabelSetImageAction, context) BERRY_REGISTER_EXTENSION_CLASS(QmitkCreatePolygonModelAction, context) BERRY_REGISTER_EXTENSION_CLASS(QmitkLoadMultiLabelPresetAction, context) BERRY_REGISTER_EXTENSION_CLASS(QmitkSaveMultiLabelPresetAction, context) + BERRY_REGISTER_EXTENSION_CLASS(QmitkConvertSurfaceToLabelAction, context) + BERRY_REGISTER_EXTENSION_CLASS(QmitkConvertMaskToLabelAction, context) + BERRY_REGISTER_EXTENSION_CLASS(QmitkConvertToMultiLabelSegmentationAction, context) + BERRY_REGISTER_EXTENSION_CLASS(QmitkCreateMultiLabelSegmentationAction, context) this->m_context = context; } void PluginActivator::stop(ctkPluginContext *) { this->m_context = nullptr; } PluginActivator* PluginActivator::getDefault() { return m_Instance; } ctkPluginContext*PluginActivator::getContext() { return m_context; }