1 #ifndef clitkDecomposeAndReconstructImageFilter_txx
2 #define clitkDecomposeAndReconstructImageFilter_txx
4 /* =================================================
5 * @file clitkDecomposeAndReconstructImageFilter.txx
11 ===================================================*/
17 //-------------------------------------------------------------------
18 // Update with the number of dimensions
19 //-------------------------------------------------------------------
20 template<class InputImageType, class OutputImageType>
21 DecomposeAndReconstructImageFilter<InputImageType, OutputImageType>::DecomposeAndReconstructImageFilter()
24 for (unsigned int i=0; i<InputImageDimension; i++)
26 m_NumberOfNewLabels=1;
27 m_FullyConnected=true;
30 m_MaximumNumberOfLabels=10;
31 m_MinimumObjectSize=10;
32 m_MinimumNumberOfIterations=1;
37 //-------------------------------------------------------------------
38 // Update with the number of dimensions and the pixeltype
39 //-------------------------------------------------------------------
40 template <class InputImageType, class OutputImageType>
42 DecomposeAndReconstructImageFilter<InputImageType, OutputImageType>::GenerateData()
47 typedef itk::Image<InternalPixelType, InputImageDimension> InternalImageType;
50 typedef clitk::DecomposeThroughErosionImageFilter<InputImageType, InternalImageType> DecomposeThroughErosionImageFilterType;
51 typedef clitk::ReconstructThroughDilationImageFilter<InternalImageType, InputImageType> ReconstructThroughDilationImageFilterType;
54 typename DecomposeThroughErosionImageFilterType::Pointer erosionFilter=DecomposeThroughErosionImageFilterType::New();
55 erosionFilter->SetInput(this->GetInput());
56 erosionFilter->SetVerbose(m_Verbose);
57 erosionFilter->SetFullyConnected(m_FullyConnected);
58 erosionFilter->SetRadius(m_Radius);
59 erosionFilter->SetNumberOfNewLabels(m_NumberOfNewLabels);
60 erosionFilter->SetMinimumObjectSize(m_MinimumObjectSize);
61 erosionFilter->SetMinimumNumberOfIterations(m_MinimumNumberOfIterations);
62 erosionFilter->Update();
65 typename ReconstructThroughDilationImageFilterType::Pointer reconstructionFilter =ReconstructThroughDilationImageFilterType::New();
66 reconstructionFilter->SetInput(erosionFilter->GetOutput());
67 reconstructionFilter->SetVerbose(m_Verbose);
68 reconstructionFilter->SetRadius(m_Radius);
69 reconstructionFilter->SetMaximumNumberOfLabels(m_MaximumNumberOfLabels);
70 reconstructionFilter->SetBackgroundValue(m_BackgroundValue);
71 reconstructionFilter->SetForegroundValue(m_ForegroundValue);
72 reconstructionFilter->Update();
75 this->SetNthOutput(0,reconstructionFilter->GetOutput());
81 #endif //#define clitkDecomposeAndReconstructImageFilter_txx