#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.