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://oncora1.lyon.fnclcc.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 CLITKSEGMENTATIONFUNCTIONS_H
20 #define CLITKSEGMENTATIONFUNCTIONS_H
22 #include "clitkAutoCropFilter.h"
24 //--------------------------------------------------------------------
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 //--------------------------------------------------------------------
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),
49 //--------------------------------------------------------------------
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 //--------------------------------------------------------------------
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 //--------------------------------------------------------------------
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();
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,
93 //--------------------------------------------------------------------
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);
106 //--------------------------------------------------------------------
108 #include "clitkSegmentationFunctions.txx"
109 //--------------------------------------------------------------------