ITK  4.13.0
Insight Segmentation and Registration Toolkit
itkSinglePhaseLevelSetSegmentationModule.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Insight Segmentation & Registration Toolkit
4  Module: itkSinglePhaseLevelSetSegmentationModule.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 itkSinglePhaseLevelSetSegmentationModule_h
18 #define itkSinglePhaseLevelSetSegmentationModule_h
19 
20 #include "itkSegmentationModule.h"
21 #include "itkImageSpatialObject.h"
22 
23 namespace itk
24 {
25 
34 template <unsigned int NDimension>
35 class ITK_EXPORT SinglePhaseLevelSetSegmentationModule : public SegmentationModule<NDimension>
36 {
37 public:
43 
45  itkNewMacro(Self);
46 
49 
51  itkStaticConstMacro(Dimension, unsigned int, NDimension);
52 
55  typedef typename Superclass::SpatialObjectType SpatialObjectType;
56  typedef typename Superclass::SpatialObjectPointer SpatialObjectPointer;
57 
59  typedef float InputPixelType;
60  typedef float FeaturePixelType;
61  typedef float OutputPixelType;
65 
70 
72  itkSetMacro( PropagationScaling, double );
73  itkGetMacro( PropagationScaling, double );
75 
78  itkSetMacro( CurvatureScaling, double );
79  itkGetMacro( CurvatureScaling, double );
81 
83  itkSetMacro( AdvectionScaling, double );
84  itkGetMacro( AdvectionScaling, double );
86 
89  itkSetMacro( MaximumRMSError, double );
90  itkGetMacro( MaximumRMSError, double );
92 
94  itkSetMacro( MaximumNumberOfIterations, unsigned int );
95  itkGetMacro( MaximumNumberOfIterations, unsigned int );
97 
107  itkSetMacro( InvertOutputIntensities, bool );
108  itkGetMacro( InvertOutputIntensities, bool );
109  itkBooleanMacro( InvertOutputIntensities );
111 
112 protected:
115  void PrintSelf(std::ostream& os, Indent indent) const;
116 
119  void GenerateData ();
120 
122  void PackOutputImageInOutputSpatialObject( OutputImageType * outputImage );
123 
125  const InputImageType * GetInternalInputImage() const;
126 
128  const FeatureImageType * GetInternalFeatureImage() const;
129 
130 private:
131  SinglePhaseLevelSetSegmentationModule(const Self&); //purposely not implemented
132  void operator=(const Self&); //purposely not implemented
133 
137 
140 
142 
145 };
146 
147 } // end namespace itk
148 
149 #ifndef ITK_MANUAL_INSTANTIATION
150 # include "itkSinglePhaseLevelSetSegmentationModule.hxx"
151 #endif
152 
153 #endif
Light weight base class for most itk classes.
ImageSpatialObject< NDimension, FeaturePixelType > FeatureSpatialObjectType
Class applies a single-phase level set segmentation method.
ImageSpatialObject< NDimension, OutputPixelType > OutputSpatialObjectType
Class provides the abstract interface of the segmentation methods.
Implementation of an image as spatial object.
Control indentation during Print() invocation.
Definition: itkIndent.h:49
ImageSpatialObject< NDimension, InputPixelType > InputSpatialObjectType
Templated n-dimensional image class.
Definition: itkImage.h:75