#include <mitkMorphologicTool.h>


Public Types | |
| typedef MorphologicTool | Self |
| typedef Tool | Superclass |
| typedef itk::SmartPointer< Self > | Pointer |
| typedef itk::SmartPointer < const Self > | ConstPointer |
Public Member Functions | |
| virtual const char * | GetClassName () const |
| const char * | GetGroup () const |
| Name of a group. | |
| virtual unsigned int | GetRadius () |
| void | SetRadius (unsigned int) |
| virtual bool | GetPreview () |
| virtual void | SetPreview (bool _arg) |
| virtual void | PreviewOn () |
| virtual void | PreviewOff () |
| virtual void | Activated () |
| Called when the tool gets activated (registered to mitk::GlobalInteraction). | |
| virtual void | Deactivated () |
| Called when the tool gets deactivated (unregistered from mitk::GlobalInteraction). | |
| void | AcceptPreview (const std::string &name, const Color &color) |
| virtual void | CancelPreviewing () |
Protected Member Functions | |
| MorphologicTool () | |
| MorphologicTool (const char *) | |
| virtual | ~MorphologicTool () |
| virtual void | UpdatePreview () |
| virtual mitk::Image::Pointer | ApplyFilter (mitk::Image::Pointer image) |
| virtual void | SetupPreviewNodeFor (mitk::DataNode *nodeToProceed) |
| virtual void | OnRoiDataChanged () |
Protected Attributes | |
| unsigned int | m_Radius |
| bool | m_Preview |
| mitk::DataNode::Pointer | m_FeedbackNode |
| mitk::DataNode * | m_NodeToProceed |
| mitk::DataNode * | m_OriginalNode |
Definition at line 9 of file mitkMorphologicTool.h.
| typedef itk::SmartPointer<const Self> mitk::MorphologicTool::ConstPointer |
Reimplemented from mitk::Tool.
Reimplemented in mitk::ClosingTool, mitk::DilateTool, mitk::ErodeTool, and mitk::OpeningTool.
Definition at line 13 of file mitkMorphologicTool.h.
| typedef itk::SmartPointer<Self> mitk::MorphologicTool::Pointer |
Reimplemented from mitk::Tool.
Reimplemented in mitk::ClosingTool, mitk::DilateTool, mitk::ErodeTool, and mitk::OpeningTool.
Definition at line 13 of file mitkMorphologicTool.h.
Reimplemented from mitk::Tool.
Reimplemented in mitk::ClosingTool, mitk::DilateTool, mitk::ErodeTool, and mitk::OpeningTool.
Definition at line 13 of file mitkMorphologicTool.h.
Reimplemented from mitk::Tool.
Reimplemented in mitk::ClosingTool, mitk::DilateTool, mitk::ErodeTool, and mitk::OpeningTool.
Definition at line 13 of file mitkMorphologicTool.h.
| mitk::MorphologicTool::MorphologicTool | ( | ) | [protected] |
Definition at line 10 of file mitkMorphologicTool.cpp.
References m_FeedbackNode, mitk::BoolProperty::New(), mitk::StateMachine::New(), and mitk::Tool::SupportRoiOn().
: Tool("dummy"), m_Radius(0), m_Preview(true) { this->SupportRoiOn(); m_FeedbackNode = mitk::DataNode::New(); m_FeedbackNode->SetColor(1.0,1.0,1.0); m_FeedbackNode->SetName("feedback node"); m_FeedbackNode->SetProperty("helper object", mitk::BoolProperty::New("true")); }
| mitk::MorphologicTool::MorphologicTool | ( | const char * | ) | [protected] |
| mitk::MorphologicTool::~MorphologicTool | ( | ) | [protected, virtual] |
Definition at line 22 of file mitkMorphologicTool.cpp.
{
}
| void mitk::MorphologicTool::AcceptPreview | ( | const std::string & | name, |
| const Color & | color | ||
| ) |
Definition at line 32 of file mitkMorphologicTool.cpp.
References mitk::RenderingManager::GetInstance(), mitk::DataNode::New(), and mitk::RenderingManager::RequestUpdateAll().
{
mitk::DataNode::Pointer resultNode = mitk::DataNode::New();
mitk::Image::Pointer image;
if (m_Preview)
image = dynamic_cast<Image*>( m_FeedbackNode->GetData() );
else
image = ApplyFilter(dynamic_cast<Image*> (m_NodeToProceed->GetData()));
if (image.IsNotNull())
{
resultNode->SetData(image);
resultNode->SetName(name);
resultNode->SetColor(color);
if (mitk::DataStorage* ds = m_ToolManager->GetDataStorage())
{
ds->Add(resultNode);
}
}
mitk::RenderingManager::GetInstance()->RequestUpdateAll();
m_ToolManager->ActivateTool(-1);
}
| void mitk::MorphologicTool::Activated | ( | ) | [virtual] |
Called when the tool gets activated (registered to mitk::GlobalInteraction).
Derived tools should call their parents implementation.
Reimplemented from mitk::Tool.
Definition at line 111 of file mitkMorphologicTool.cpp.
References OnRoiDataChanged().
{
m_ToolManager->RoiDataChanged += mitk::MessageDelegate<mitk::MorphologicTool>(this, &mitk::MorphologicTool::OnRoiDataChanged);
m_OriginalNode = m_ToolManager->GetReferenceData(0);
m_NodeToProceed = m_OriginalNode;
if( m_NodeToProceed != NULL)
SetupPreviewNodeFor(m_NodeToProceed);
//if no referencedata is set deactivate tool
else
m_ToolManager->ActivateTool(-1);
}
| mitk::Image::Pointer mitk::MorphologicTool::ApplyFilter | ( | mitk::Image::Pointer | image ) | [protected, virtual] |
Reimplemented in mitk::ClosingTool, mitk::DilateTool, mitk::ErodeTool, and mitk::OpeningTool.
Definition at line 86 of file mitkMorphologicTool.cpp.
{
return image;
}
| void mitk::MorphologicTool::CancelPreviewing | ( | ) | [virtual] |
Definition at line 58 of file mitkMorphologicTool.cpp.
{
m_ToolManager->ActivateTool(-1);
}
| void mitk::MorphologicTool::Deactivated | ( | ) | [virtual] |
Called when the tool gets deactivated (unregistered from mitk::GlobalInteraction).
Derived tools should call their parents implementation.
Reimplemented from mitk::Tool.
Definition at line 125 of file mitkMorphologicTool.cpp.
References mitk::RenderingManager::GetInstance(), OnRoiDataChanged(), and mitk::RenderingManager::RequestUpdateAll().
{
m_ToolManager->RoiDataChanged -= mitk::MessageDelegate<mitk::MorphologicTool>(this, &mitk::MorphologicTool::OnRoiDataChanged);
m_NodeToProceed = NULL;
if (mitk::DataStorage* ds = m_ToolManager->GetDataStorage())
{
ds->Remove(m_FeedbackNode);
mitk::RenderingManager::GetInstance()->RequestUpdateAll();
}
m_FeedbackNode->SetData(NULL);
}
| virtual const char* mitk::MorphologicTool::GetClassName | ( | ) | const [virtual] |
Reimplemented from mitk::Tool.
Reimplemented in mitk::ClosingTool, mitk::DilateTool, mitk::ErodeTool, and mitk::OpeningTool.
| const char * mitk::MorphologicTool::GetGroup | ( | ) | const [virtual] |
Name of a group.
You can group several tools by assigning a group name. Graphical tool selectors might use this information to group tools. (What other reason could there be?)
Reimplemented from mitk::Tool.
Definition at line 27 of file mitkMorphologicTool.cpp.
{
return "morphologic";
}
| virtual bool mitk::MorphologicTool::GetPreview | ( | ) | [virtual] |
| virtual unsigned int mitk::MorphologicTool::GetRadius | ( | ) | [virtual] |
| void mitk::MorphologicTool::OnRoiDataChanged | ( | ) | [protected, virtual] |
Definition at line 139 of file mitkMorphologicTool.cpp.
References mitk::CastToItkImage(), mitk::CastToMitkImage(), mitk::DataNode::GetData(), mitk::BoundingObjectToSegmentationFilter::New(), mitk::Image::New(), and mitk::DataNode::New().
Referenced by Activated(), and Deactivated().
{
typedef itk::Image<int, 3> ItkImageType;
typedef itk::Image<unsigned char, 3> ItkMaskType;
typedef itk::MaskImageFilter<ItkImageType, ItkMaskType, ItkImageType> MaskFilterType;
mitk::DataNode* node = m_ToolManager->GetRoiData(0);
if (node == NULL)
{
this->SetupPreviewNodeFor(m_OriginalNode);
m_NodeToProceed = m_OriginalNode;
return;
}
mitk::DataNode::Pointer new_node = mitk::DataNode::New();
mitk::Image* image = dynamic_cast<mitk::Image*> (m_OriginalNode->GetData());
mitk::Image::Pointer new_image = mitk::Image::New();
mitk::Image::Pointer roi;
mitk::BoundingObject* boundingObject = dynamic_cast<mitk::BoundingObject*> (node->GetData());
if (boundingObject)
{
mitk::BoundingObjectToSegmentationFilter::Pointer filter = mitk::BoundingObjectToSegmentationFilter::New();
filter->SetBoundingObject( boundingObject);
filter->SetInput(image);
filter->Update();
roi = filter->GetOutput();
}
else
roi = dynamic_cast<mitk::Image*> (node->GetData());
if (roi)
{
MaskFilterType::Pointer filter = MaskFilterType::New();
ItkMaskType::Pointer itkRoi = ItkMaskType::New();
ItkImageType::Pointer itkImage = ItkImageType::New();
mitk::CastToItkImage(image, itkImage);
mitk::CastToItkImage(roi, itkRoi);
filter->SetInput1(itkImage);
filter->SetInput2(itkRoi);
filter->SetOutsideValue(0);
filter->Update();
mitk::CastToMitkImage(filter->GetOutput(),new_image);
}
new_node->SetData(new_image);
this->SetupPreviewNodeFor(new_node);
m_NodeToProceed = new_node;
UpdatePreview();
}| virtual void mitk::MorphologicTool::PreviewOff | ( | ) | [virtual] |
| virtual void mitk::MorphologicTool::PreviewOn | ( | ) | [virtual] |
| virtual void mitk::MorphologicTool::SetPreview | ( | bool | _arg ) | [virtual] |
| void mitk::MorphologicTool::SetRadius | ( | unsigned int | value ) |
Definition at line 63 of file mitkMorphologicTool.cpp.
{
m_Radius = value;
this->UpdatePreview();
}
| void mitk::MorphologicTool::SetupPreviewNodeFor | ( | mitk::DataNode * | nodeToProceed ) | [protected, virtual] |
Definition at line 91 of file mitkMorphologicTool.cpp.
References mitk::DataNode::GetData().
{
if (nodeToProceed)
{
mitk::Image::Pointer image = dynamic_cast<Image*>( nodeToProceed->GetData() );
if (image.IsNotNull())
{
// initialize and a new node with the same image as our reference image
m_FeedbackNode->SetData( image );
if (mitk::DataStorage* ds = m_ToolManager->GetDataStorage())
{
if (ds->Exists(m_FeedbackNode))
ds->Remove(m_FeedbackNode);
ds->Add( m_FeedbackNode, nodeToProceed );
}
}
}
}
| void mitk::MorphologicTool::UpdatePreview | ( | ) | [protected, virtual] |
Definition at line 69 of file mitkMorphologicTool.cpp.
References mitk::RenderingManager::GetInstance(), and mitk::RenderingManager::RequestUpdateAll().
{
mitk::Image::Pointer image = dynamic_cast<mitk::Image*>( m_NodeToProceed->GetData() );
if (image && m_Preview)
{
if (m_Radius == 0)
m_FeedbackNode->SetData(image);
else
{
m_FeedbackNode->SetData(ApplyFilter(image));
}
}
mitk::RenderingManager::GetInstance()->RequestUpdateAll();
}
Definition at line 41 of file mitkMorphologicTool.h.
Referenced by MorphologicTool().
mitk::DataNode* mitk::MorphologicTool::m_NodeToProceed [protected] |
Definition at line 42 of file mitkMorphologicTool.h.
mitk::DataNode* mitk::MorphologicTool::m_OriginalNode [protected] |
Definition at line 43 of file mitkMorphologicTool.h.
bool mitk::MorphologicTool::m_Preview [protected] |
Definition at line 39 of file mitkMorphologicTool.h.
unsigned int mitk::MorphologicTool::m_Radius [protected] |
Definition at line 38 of file mitkMorphologicTool.h.
1.7.2