1 /*=========================================================================
2 Program: vv http://www.creatis.insa-lyon.fr/rio/vv
5 - University of LYON http://www.universite-lyon.fr/
6 - Léon Bérard cancer center http://www.centreleonberard.fr
7 - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr
9 This software is distributed WITHOUT ANY WARRANTY; without even
10 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11 PURPOSE. See the copyright notices for more information.
13 It is distributed under dual licence
15 - BSD See included LICENSE.txt file
16 - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
17 ===========================================================================*/
19 #ifndef clitkReconstructWithConditionalGrayscaleDilateImageFilter_txx
20 #define clitkReconstructWithConditionalGrayscaleDilateImageFilter_txx
22 #include <itkGrayscaleDilateImageFilter.h>
27 //-------------------------------------------------------------------
28 template<class ImageType>
29 ReconstructWithConditionalGrayscaleDilateImageFilter<ImageType>::ReconstructWithConditionalGrayscaleDilateImageFilter()
33 m_IterationNumber = 5;
35 //-------------------------------------------------------------------
37 //-------------------------------------------------------------------
38 template<class ImageType>
40 ReconstructWithConditionalGrayscaleDilateImageFilter<ImageType>::GenerateData()
43 typename ImageType::ConstPointer input = this->GetInput();
46 typename ImageType::Pointer output;
47 for(int r=0; r<GetIterationNumber(); r++) {
49 // Create kernel for GrayscaleDilateImageFilter
50 typedef itk::BinaryBallStructuringElement<PixelType,ImageDimension > KernelType;
53 k.CreateStructuringElement();
55 // Check that BG is 0, because ConditionalGrayscaleDilateImageFilter consider BG is 0
56 if (GetBackgroundValue() !=0) {
57 FATAL("FATAL -> BG is not 0, check ReconstructWithConditionalGrayscaleDilateImageFilter");
58 // TODO -> replace 0 with new label, replace BG with 0 ; reverse at the end
61 // ConditionalGrayscaleDilateImageFilter -> Dilate only BG value
62 typedef itk::ConditionalGrayscaleDilateImageFilter<ImageType, ImageType, KernelType> FilterType;
63 typename FilterType::Pointer m = FilterType::New();
66 m->SetInput(input); // First time
68 else m->SetInput(output);
70 output = m->GetOutput();
73 //---------------------------------
74 this->SetNthOutput(0, output);
79 #endif //#define clitkReconstructWithConditionalGrayscaleDilateImageFilter_txx