00001 #include "mitkErodeTool.h" 00002 #include "mitkImageCast.h" 00003 #include "mitkRenderingManager.h" 00004 00005 namespace mitk{ 00006 MITK_TOOL_MACRO(MitkExt_EXPORT, ErodeTool, "Erode Tool"); 00007 } 00008 00009 mitk::ErodeTool::ErodeTool() 00010 { 00011 00012 } 00013 00014 mitk::ErodeTool::~ErodeTool() 00015 { 00016 00017 } 00018 00019 const char* mitk::ErodeTool::GetName() const 00020 { 00021 return "Erode Tool"; 00022 } 00023 00024 const char** mitk::ErodeTool::GetXPM() const 00025 { 00026 return mitkErodeTool_xpm; 00027 } 00028 00029 mitk::Image::Pointer mitk::ErodeTool::ApplyFilter(mitk::Image::Pointer image) 00030 { 00031 SegmentationType::Pointer itkImage = SegmentationType::New(); 00032 mitk::CastToItkImage(image, itkImage); 00033 m_Ball.SetRadius( m_Radius); 00034 m_Ball.CreateStructuringElement(); 00035 m_BallErodeFilter = BallErodeFilterType::New(); 00036 m_BallErodeFilter->SetKernel(m_Ball); 00037 m_BallErodeFilter->SetInput(itkImage); 00038 m_BallErodeFilter->SetErodeValue(1); 00039 m_BallErodeFilter->BoundaryToForegroundOn(); 00040 m_BallErodeFilter->UpdateLargestPossibleRegion(); 00041 00042 mitk::Image::Pointer new_image = mitk::Image::New(); 00043 mitk::CastToMitkImage(m_BallErodeFilter->GetOutput(), new_image); 00044 return new_image; 00045 }