ITK  4.9.0
Insight Segmentation and Registration Toolkit
itkLesionSegmentationMethod.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Insight Segmentation & Registration Toolkit
4  Module: itkLesionSegmentationMethod.h
5  Language: C++
6  Date: $Date$
7  Version: $Revision$
8 
9  Copyright (c) Insight Software Consortium. All rights reserved.
10  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
11 
12  This software is distributed WITHOUT ANY WARRANTY; without even
13  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14  PURPOSE. See the above copyright notices for more information.
15 
16 =========================================================================*/
17 #ifndef itkLesionSegmentationMethod_h
18 #define itkLesionSegmentationMethod_h
19 
20 #include "itkProcessObject.h"
21 #include "itkImage.h"
22 #include "itkDataObjectDecorator.h"
23 #include "itkSpatialObject.h"
24 #include "itkFeatureGenerator.h"
25 #include "itkSegmentationModule.h"
26 #include "itkProgressAccumulator.h"
27 
28 namespace itk
29 {
30 
42 template <unsigned int NDimension>
43 class ITK_EXPORT LesionSegmentationMethod : public ProcessObject
44 {
45 public:
51 
53  itkNewMacro(Self);
54 
57 
59  itkStaticConstMacro(Dimension, unsigned int, NDimension);
60 
66 
68  itkSetObjectMacro( RegionOfInterest, SpatialObjectType );
69  itkGetConstObjectMacro( RegionOfInterest, SpatialObjectType );
71 
75  itkSetConstObjectMacro( InitialSegmentation, SpatialObjectType );
76  itkGetConstObjectMacro( InitialSegmentation, SpatialObjectType );
78 
82 
87  void AddFeatureGenerator( FeatureGeneratorType * generator );
88 
93 
94 
99  itkSetObjectMacro( SegmentationModule, SegmentationModuleType );
100 
101 
102 protected:
104  virtual ~LesionSegmentationMethod();
105  void PrintSelf(std::ostream& os, Indent indent) const;
106 
109  void GenerateData();
110 
111 private:
112  LesionSegmentationMethod(const Self&); //purposely not implemented
113  void operator=(const Self&); //purposely not implemented
114 
117 
119  typedef std::vector< FeatureGeneratorPointer > FeatureGeneratorArrayType;
120  typedef typename FeatureGeneratorArrayType::iterator FeatureGeneratorIterator;
121  typedef typename FeatureGeneratorArrayType::const_iterator FeatureGeneratorConstIterator;
122 
124 
126 
128 
129 
131  void UpdateAllFeatureGenerators();
132 
136  void VerifyNumberOfAvailableFeaturesMatchedExpectations() const;
137 
139  void ConnectFeaturesToSegmentationModule();
140 
141  void ExecuteSegmentationModule();
142 
143 };
144 
145 } // end namespace itk
146 
147 #ifndef ITK_MANUAL_INSTANTIATION
148 # include "itkLesionSegmentationMethod.hxx"
149 #endif
150 
151 #endif
FeatureGeneratorArrayType m_FeatureGenerators
SegmentationModulePointer m_SegmentationModule
Light weight base class for most itk classes.
SpatialObject< NDimension > SpatialObjectType
SpatialObjectConstPointer m_InitialSegmentation
FeatureGenerator< Dimension > FeatureGeneratorType
Class for coordinating components of a segmentation framework.
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
SpatialObjectType::ConstPointer SpatialObjectConstPointer
SmartPointer< const Self > ConstPointer
Class provides the abstract interface of the segmentation methods.
SpatialObjectType::Pointer SpatialObjectPointer
SegmentationModule< Dimension > SegmentationModuleType
Class that generates features (typically images) used as input for a segmentation method...
Implementation of the composite pattern.
FeatureGeneratorArrayType::iterator FeatureGeneratorIterator
FeatureGeneratorArrayType::const_iterator FeatureGeneratorConstIterator
SegmentationModuleType::Pointer SegmentationModulePointer
ProgressAccumulator::Pointer m_ProgressAccumulator
FeatureGeneratorType::Pointer FeatureGeneratorPointer
Control indentation during Print() invocation.
Definition: itkIndent.h:49
std::vector< FeatureGeneratorPointer > FeatureGeneratorArrayType
SpatialObjectConstPointer m_RegionOfInterest