00001 #include "mitkClosingTool.h" 00002 #include "mitkImageCast.h" 00003 #include "mitkRenderingManager.h" 00004 00005 namespace mitk{ 00006 MITK_TOOL_MACRO(MitkExt_EXPORT, ClosingTool, "Closing Tool"); 00007 } 00008 00009 mitk::ClosingTool::ClosingTool() 00010 { 00011 00012 } 00013 00014 mitk::ClosingTool::~ClosingTool() 00015 { 00016 00017 } 00018 00019 const char* mitk::ClosingTool::GetName() const 00020 { 00021 return "Closing Tool"; 00022 } 00023 00024 const char** mitk::ClosingTool::GetXPM() const 00025 { 00026 return mitkClosingTool_xpm; 00027 } 00028 00029 mitk::Image::Pointer mitk::ClosingTool::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_BallClosingFilter = BallClosingFilterType::New(); 00036 m_BallClosingFilter->SetKernel(m_Ball); 00037 m_BallClosingFilter->SetInput(itkImage); 00038 //m_BallClosingFilter->SetRadius(1); 00039 m_BallClosingFilter->SetForegroundValue(1); 00040 //m_BallClosingFilter->SetBackgroundValue(0); 00041 m_BallClosingFilter->UpdateLargestPossibleRegion(); 00042 00043 mitk::Image::Pointer new_image = mitk::Image::New(); 00044 mitk::CastToMitkImage(m_BallClosingFilter->GetOutput(), new_image); 00045 return new_image; 00046 }