diff --git a/Modules/Segmentation/Interactions/mitkSetRegionTool.cpp b/Modules/Segmentation/Interactions/mitkSetRegionTool.cpp deleted file mode 100644 index 486679ddaf..0000000000 --- a/Modules/Segmentation/Interactions/mitkSetRegionTool.cpp +++ /dev/null @@ -1,138 +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 "mitkSetRegionTool.h" - -#include "mitkToolManager.h" - -#include "mitkBaseRenderer.h" - -#include -#include - -#include -#include - -mitk::SetRegionTool::SetRegionTool(int paintingPixelValue) - : FeedbackContourTool("PressMoveRelease"), m_PaintingPixelValue(paintingPixelValue) -{ -} - -mitk::SetRegionTool::~SetRegionTool() -{ -} - -void mitk::SetRegionTool::ConnectActionsAndFunctions() -{ - CONNECT_FUNCTION("PrimaryButtonPressed", OnMousePressed); - CONNECT_FUNCTION("Release", OnMouseReleased); - CONNECT_FUNCTION("Move", OnMouseMoved); -} - -void mitk::SetRegionTool::Activated() -{ - Superclass::Activated(); -} - -void mitk::SetRegionTool::Deactivated() -{ - Superclass::Deactivated(); -} - -void mitk::SetRegionTool::OnMousePressed(StateMachineAction *, InteractionEvent *interactionEvent) -{ - auto *positionEvent = dynamic_cast(interactionEvent); - if (!positionEvent) - return; - - m_LastEventSender = positionEvent->GetSender(); - m_LastEventSlice = m_LastEventSender->GetSlice(); - - // 1. Get the working image - Image::Pointer workingSlice = FeedbackContourTool::GetAffectedWorkingSlice(positionEvent); - if (workingSlice.IsNull()) - return; // can't do anything without the segmentation - - // if click was outside the image, don't continue - const BaseGeometry *sliceGeometry = workingSlice->GetGeometry(); - itk::Index<3> projectedPointIn2D; - sliceGeometry->WorldToIndex(positionEvent->GetPositionInWorld(), projectedPointIn2D); - if (!sliceGeometry->IsIndexInside(projectedPointIn2D)) - { - MITK_WARN << "Point outside of segmentation slice." << std::endl; - return; // can't use that as a seed point - } - - typedef itk::Image InputImageType; - typedef InputImageType::IndexType IndexType; - typedef itk::ConnectedThresholdImageFilter RegionGrowingFilterType; - RegionGrowingFilterType::Pointer regionGrower = RegionGrowingFilterType::New(); - - // convert world coordinates to image indices - IndexType seedIndex; - sliceGeometry->WorldToIndex(positionEvent->GetPositionInWorld(), seedIndex); - - // perform region growing in desired segmented region - InputImageType::Pointer itkImage = InputImageType::New(); - CastToItkImage(workingSlice, itkImage); - regionGrower->SetInput(itkImage); - regionGrower->AddSeed(seedIndex); - - InputImageType::PixelType bound = itkImage->GetPixel(seedIndex); - - regionGrower->SetLower(bound); - regionGrower->SetUpper(bound); - regionGrower->SetReplaceValue(1); - - itk::BinaryFillholeImageFilter::Pointer fillHolesFilter = - itk::BinaryFillholeImageFilter::New(); - - fillHolesFilter->SetInput(regionGrower->GetOutput()); - fillHolesFilter->SetForegroundValue(1); - - // Store result and preview - mitk::Image::Pointer resultImage = mitk::GrabItkImageMemory(fillHolesFilter->GetOutput()); - resultImage->SetGeometry(workingSlice->GetGeometry()); - // Get the current working color - DataNode *workingNode(this->GetToolManager()->GetWorkingData(0)); - if (!workingNode) - return; - - mitk::ImageToContourModelFilter::Pointer contourextractor = mitk::ImageToContourModelFilter::New(); - contourextractor->SetInput(resultImage); - contourextractor->Update(); - - mitk::ContourModel::Pointer awesomeContour = contourextractor->GetOutput(); - - this->UpdateCurrentFeedbackContour(awesomeContour); - - FeedbackContourTool::SetFeedbackContourVisible(true); - mitk::RenderingManager::GetInstance()->RequestUpdate(positionEvent->GetSender()->GetRenderWindow()); -} - -void mitk::SetRegionTool::OnMouseReleased(StateMachineAction *, InteractionEvent *interactionEvent) -{ - auto *positionEvent = dynamic_cast(interactionEvent); - if (!positionEvent) - return; - - assert(positionEvent->GetSender()->GetRenderWindow()); - // 1. Hide the feedback contour, find out which slice the user clicked, find out which slice of the toolmanager's - // working image corresponds to that - mitk::RenderingManager::GetInstance()->RequestUpdate(positionEvent->GetSender()->GetRenderWindow()); - - this->WriteBackFeedbackContourAsSegmentationResult(positionEvent, m_PaintingPixelValue); -} - -void mitk::SetRegionTool::OnMouseMoved(mitk::StateMachineAction *, mitk::InteractionEvent *) -{ -} diff --git a/Modules/Segmentation/Interactions/mitkSetRegionTool.h b/Modules/Segmentation/Interactions/mitkSetRegionTool.h deleted file mode 100644 index 9fab9b8030..0000000000 --- a/Modules/Segmentation/Interactions/mitkSetRegionTool.h +++ /dev/null @@ -1,60 +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 mitkSetRegionTool_h_Included -#define mitkSetRegionTool_h_Included - -#include "mitkCommon.h" -#include "mitkFeedbackContourTool.h" -#include - -namespace mitk -{ - class Image; - class StateMachineAction; - class InteractionEvent; - /** - \brief Fills or erases a 2D region - - \sa FeedbackContourTool - \sa ExtractImageFilter - - \ingroup Interactions - - Finds the outer contour of a shape in 2D (possibly including holes or single patches) and sets all - the inside pixels to a specified value. This might fill holes or erase segmentations. - - \warning Only to be instantiated by mitk::ToolManager. - */ - class MITKSEGMENTATION_EXPORT SetRegionTool : public FeedbackContourTool - { - public: - mitkClassMacro(SetRegionTool, FeedbackContourTool); - - protected: - SetRegionTool(int paintingPixelValue = 1); // purposely hidden - ~SetRegionTool() override; - - void ConnectActionsAndFunctions() override; - - void Activated() override; - void Deactivated() override; - - virtual void OnMousePressed(StateMachineAction *, InteractionEvent *); - virtual void OnMouseReleased(StateMachineAction *, InteractionEvent *); - virtual void OnMouseMoved(StateMachineAction *, InteractionEvent *); - int m_PaintingPixelValue; - }; - -} // namespace - -#endif diff --git a/Modules/Segmentation/files.cmake b/Modules/Segmentation/files.cmake index 7a0697d090..844e5b6a38 100644 --- a/Modules/Segmentation/files.cmake +++ b/Modules/Segmentation/files.cmake @@ -1,111 +1,110 @@ set(CPP_FILES Algorithms/mitkCalculateSegmentationVolume.cpp Algorithms/mitkContourModelSetToImageFilter.cpp Algorithms/mitkContourSetToPointSetFilter.cpp Algorithms/mitkContourUtils.cpp Algorithms/mitkCorrectorAlgorithm.cpp Algorithms/mitkDiffImageApplier.cpp Algorithms/mitkDiffSliceOperation.cpp Algorithms/mitkDiffSliceOperationApplier.cpp Algorithms/mitkFeatureBasedEdgeDetectionFilter.cpp Algorithms/mitkImageLiveWireContourModelFilter.cpp Algorithms/mitkImageToContourFilter.cpp #Algorithms/mitkImageToContourModelFilter.cpp Algorithms/mitkImageToLiveWireContourFilter.cpp Algorithms/mitkManualSegmentationToSurfaceFilter.cpp Algorithms/mitkOtsuSegmentationFilter.cpp Algorithms/mitkSegmentationHelper.cpp Algorithms/mitkSegmentationObjectFactory.cpp Algorithms/mitkShapeBasedInterpolationAlgorithm.cpp Algorithms/mitkShowSegmentationAsSmoothedSurface.cpp Algorithms/mitkShowSegmentationAsSurface.cpp Algorithms/mitkVtkImageOverwrite.cpp Controllers/mitkSegmentationInterpolationController.cpp Controllers/mitkToolManager.cpp Controllers/mitkSegmentationModuleActivator.cpp Controllers/mitkToolManagerProvider.cpp DataManagement/mitkContour.cpp DataManagement/mitkContourSet.cpp DataManagement/mitkExtrudedContour.cpp Interactions/mitkAddContourTool.cpp Interactions/mitkAutoCropTool.cpp Interactions/mitkSegWithPreviewTool.cpp Interactions/mitkBinaryThresholdBaseTool.cpp Interactions/mitkBinaryThresholdTool.cpp Interactions/mitkBinaryThresholdULTool.cpp Interactions/mitkCloseRegionTool.cpp Interactions/mitkContourModelInteractor.cpp Interactions/mitkContourModelLiveWireInteractor.cpp Interactions/mitkEditableContourTool.cpp Interactions/mitkLiveWireTool2D.cpp Interactions/mitkLassoTool.cpp Interactions/mitkContourTool.cpp Interactions/mitkDrawPaintbrushTool.cpp Interactions/mitkErasePaintbrushTool.cpp Interactions/mitkEraseRegionTool.cpp Interactions/mitkFeedbackContourTool.cpp Interactions/mitkFillRegionBaseTool.cpp Interactions/mitkFillRegionTool.cpp Interactions/mitkOtsuTool3D.cpp Interactions/mitkPaintbrushTool.cpp Interactions/mitkRegionGrowingTool.cpp Interactions/mitkSegmentationsProcessingTool.cpp - Interactions/mitkSetRegionTool.cpp Interactions/mitkSegTool2D.cpp Interactions/mitkSubtractContourTool.cpp Interactions/mitkTool.cpp Interactions/mitkToolCommand.cpp Interactions/mitkPickingTool.cpp Interactions/mitknnUnetTool.cpp Interactions/mitkSegmentationInteractor.cpp #SO Interactions/mitkProcessExecutor.cpp Rendering/mitkContourMapper2D.cpp Rendering/mitkContourSetMapper2D.cpp Rendering/mitkContourSetVtkMapper3D.cpp Rendering/mitkContourVtkMapper3D.cpp SegmentationUtilities/BooleanOperations/mitkBooleanOperation.cpp SegmentationUtilities/MorphologicalOperations/mitkMorphologicalOperations.cpp #Added from ML Controllers/mitkSliceBasedInterpolationController.cpp Algorithms/mitkSurfaceStampImageFilter.cpp ) set(RESOURCE_FILES Add_48x48.png Add_Cursor_32x32.png AI_48x48.png AI_Cursor_32x32.png Erase_48x48.png Erase_Cursor_32x32.png Fill_48x48.png Fill_Cursor_32x32.png LiveWire_48x48.png LiveWire_Cursor_32x32.png NewAdd_48x48.png NewAdd_Cursor_32x32.png Otsu_48x48.png Paint_48x48.png Paint_Cursor_32x32.png Pick_48x48.png RegionGrowing_48x48.png RegionGrowing_Cursor_32x32.png Subtract_48x48.png Subtract_Cursor_32x32.png Threshold_48x48.png TwoThresholds_48x48.png Wipe_48x48.png Wipe_Cursor_32x32.png Interactions/dummy.xml Interactions/EditableContourTool.xml Interactions/PickingTool.xml Interactions/MouseReleaseOnly.xml Interactions/PressMoveRelease.xml Interactions/PressMoveReleaseAndPointSetting.xml Interactions/PressMoveReleaseWithCTRLInversion.xml Interactions/PressMoveReleaseWithCTRLInversionAllMouseMoves.xml Interactions/SegmentationToolsConfig.xml Interactions/ContourModelModificationConfig.xml Interactions/ContourModelModificationInteractor.xml )