]> Creatis software - clitk.git/blob - itk/clitkSegmentationFunctions.h
add seg folder
[clitk.git] / itk / clitkSegmentationFunctions.h
1 /*=========================================================================
2   Program:   vv                     http://www.creatis.insa-lyon.fr/rio/vv
3
4   Authors belong to: 
5   - University of LYON              http://www.universite-lyon.fr/
6   - Léon Bérard cancer center       http://oncora1.lyon.fnclcc.fr
7   - CREATIS CNRS laboratory         http://www.creatis.insa-lyon.fr
8
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.
12
13   It is distributed under dual licence
14
15   - BSD        See included LICENSE.txt file
16   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
17   ======================================================================-====*/
18
19 #ifndef CLITKSEGMENTATIONFUNCTIONS_H
20 #define CLITKSEGMENTATIONFUNCTIONS_H
21
22 #include "clitkAutoCropFilter.h"
23
24 //--------------------------------------------------------------------
25 namespace clitk {
26
27   //--------------------------------------------------------------------
28   template<class TInternalImageType, class TMaskInternalImageType>
29   typename TInternalImageType::Pointer
30   SetBackground(typename TInternalImageType::ConstPointer input,
31                 typename TMaskInternalImageType::ConstPointer mask, 
32                 typename TMaskInternalImageType::PixelType maskBG, 
33                 typename TInternalImageType::PixelType outValue);
34   //--------------------------------------------------------------------
35
36     
37   //--------------------------------------------------------------------
38   template<class TInternalImageType, class TMaskInternalImageType>
39   typename TInternalImageType::Pointer
40   SetBackground(typename TInternalImageType::Pointer input, 
41                 typename TMaskInternalImageType::Pointer mask, 
42                 typename TMaskInternalImageType::PixelType maskBG, 
43                 typename TInternalImageType::PixelType outValue) {
44     return SetBackground<TInternalImageType, TMaskInternalImageType>
45       (static_cast<typename TInternalImageType::ConstPointer>(input),  
46        static_cast<typename TMaskInternalImageType::ConstPointer>(mask), 
47        maskBG, outValue);
48   }
49   //--------------------------------------------------------------------
50
51
52   //-------------------------------------------------------------------- 
53   template<class TImageType>
54   typename TImageType::Pointer
55   Labelize(typename TImageType::Pointer input, 
56            typename TImageType::PixelType BG, 
57            bool isFullyConnected, 
58            int minimalComponentSize);
59   //--------------------------------------------------------------------
60
61
62   //--------------------------------------------------------------------
63   template<class TImageType>
64   typename TImageType::Pointer
65   RemoveLabels(typename TImageType::Pointer input, 
66                typename TImageType::PixelType BG, 
67                std::vector<typename TImageType::PixelType> & labelsToRemove);
68   //--------------------------------------------------------------------
69
70
71   //--------------------------------------------------------------------
72   template<class ImageType>
73     typename ImageType::Pointer
74     AutoCrop(typename ImageType::Pointer input, 
75              typename ImageType::PixelType BG) {
76       typedef clitk::AutoCropFilter<ImageType> AutoCropFilterType;
77       typename AutoCropFilterType::Pointer autoCropFilter = AutoCropFilterType::New();
78       autoCropFilter->SetInput(input);
79       autoCropFilter->Update();   
80       return autoCropFilter->GetOutput();
81   }
82
83   //--------------------------------------------------------------------
84   //--------------------------------------------------------------------
85   template<class TImageType>
86   typename TImageType::Pointer
87   KeepLabels(typename TImageType::Pointer input,
88              typename TImageType::PixelType BG, 
89              typename TImageType::PixelType FG,  
90              typename TImageType::PixelType firstKeep, 
91              typename TImageType::PixelType lastKeep, 
92              bool useLastKeep);
93   //--------------------------------------------------------------------
94
95
96   //--------------------------------------------------------------------
97   template<class TImageType>
98   typename TImageType::Pointer
99   LabelizeAndSelectLabels(typename TImageType::Pointer input,
100                           typename TImageType::PixelType BG, 
101                           typename TImageType::PixelType FG, 
102                           bool isFullyConnected,
103                           int minimalComponentSize,
104                           LabelizeParameters<typename TImageType::PixelType> * param);
105 }
106 //--------------------------------------------------------------------
107
108 #include "clitkSegmentationFunctions.txx"
109 //--------------------------------------------------------------------
110                       
111 #endif