20 #include "itkOrImageFilter.h" 40 m_UpperThreshold(200),
45 m_PointSetAddObserverTag(0),
46 m_PointSetRemoveObserverTag(0)
56 if (referenceData ==
nullptr)
59 auto *
image =
dynamic_cast<Image *
>(referenceData);
64 if (
image->GetDimension() < 3)
84 return "Fast Marching 3D";
146 Superclass::Activated();
216 itk::SimpleMemberCommand<mitk::FastMarchingTool3D>::Pointer pointAddedCommand =
217 itk::SimpleMemberCommand<mitk::FastMarchingTool3D>::New();
221 itk::SimpleMemberCommand<mitk::FastMarchingTool3D>::Pointer pointRemovedCommand =
222 itk::SimpleMemberCommand<mitk::FastMarchingTool3D>::New();
242 for (
unsigned int i = 0; i < numberOfPoints; ++i)
255 Superclass::Deactivated();
266 timeSelector->UpdateLargestPossibleRegion();
280 OutputImageType::Pointer segmentationImageInITK = OutputImageType::New();
283 if (workingImage->GetTimeGeometry()->CountTimeSteps() > 1)
286 timeSelector->SetInput(workingImage);
288 timeSelector->UpdateLargestPossibleRegion();
289 CastToItkImage(timeSelector->GetOutput(), segmentationImageInITK);
296 typedef itk::OrImageFilter<OutputImageType, OutputImageType> OrImageFilterType;
297 OrImageFilterType::Pointer orFilter = OrImageFilterType::New();
300 orFilter->SetInput(1, segmentationImageInITK);
304 workingImage->SetVolume((
void *)(
m_ThresholdFilter->GetOutput()->GetPixelContainer()->GetBufferPointer()),
308 workingImage->Modified();
323 seedPosition[0] = clickInIndex[0];
324 seedPosition[1] = clickInIndex[1];
325 seedPosition[2] = clickInIndex[2];
328 const double seedValue = 0.0;
329 node.SetValue(seedValue);
330 node.SetIndex(seedPosition);
340 m_ReadyMessage.Send();
362 const unsigned int progress_steps = 200;
375 catch (itk::ExceptionObject &excep)
377 MITK_ERROR <<
"Exception caught: " << excep.GetDescription();
382 std::string msg = excep.GetDescription();
393 result->GetGeometry()->SetOrigin(
m_ReferenceImage->GetGeometry()->GetOrigin());
394 result->GetGeometry()->SetIndexToWorldTransform(
m_ReferenceImage->GetGeometry()->GetIndexToWorldTransform());
425 itk::SimpleMemberCommand<mitk::FastMarchingTool3D>::Pointer pointAddedCommand =
426 itk::SimpleMemberCommand<mitk::FastMarchingTool3D>::New();
430 itk::SimpleMemberCommand<mitk::FastMarchingTool3D>::Pointer pointRemovedCommand =
431 itk::SimpleMemberCommand<mitk::FastMarchingTool3D>::New();
Base of all data objects.
#define MITKSEGMENTATION_EXPORT
DataCollection - Class to facilitate loading/accessing structured data.
Constants for most interaction classes, due to the generic StateMachines.
virtual void Add(DataNode *node, const DataStorage::SetOfObjects *parents=nullptr)=0
Adds a DataNode containing a data object to its internal storage.
MITK_TOOL_MACRO(MITKSEGMENTATION_EXPORT, LiveWireTool2D, "LiveWire tool")
BaseData * GetData() const
Get the data object (instance of BaseData, e.g., an Image) managed by this DataNode.
static RenderingManager * GetInstance()
Module * GetModule() const
Image class for storing images.
ModuleResource GetResource(const std::string &path) const
Operation that handles all actions on one Point.
mitk::Image::Pointer image
virtual void Remove(const DataNode *node)=0
Removes node from the DataStorage.
void CastToMitkImage(const itk::SmartPointer< ItkOutputImageType > &itkimage, itk::SmartPointer< mitk::Image > &mitkoutputimage)
Cast an itk::Image (with a specific type) to an mitk::Image.
void MITKCORE_EXPORT CastToItkImage(const mitk::Image *mitkImage, itk::SmartPointer< ItkOutputImageType > &itkOutputImage)
Cast an mitk::Image to an itk::Image with a specific type.
static ModuleContext * GetModuleContext()
Returns the module context of the calling module.
void RequestUpdateAll(RequestType type=REQUEST_UPDATE_ALL)