ITK  5.0.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_TEMPLATE_EXPORT SinglePhaseLevelSetSegmentationModule : public SegmentationModule<NDimension>
36 {
37 public:
38  ITK_DISALLOW_COPY_AND_ASSIGN(SinglePhaseLevelSetSegmentationModule);
39 
45 
47  itkNewMacro(Self);
48 
51 
53  static constexpr unsigned int Dimension = NDimension;
54 
57  using SpatialObjectType = typename Superclass::SpatialObjectType;
58  using SpatialObjectPointer = typename Superclass::SpatialObjectPointer;
59 
61  using InputPixelType = float;
62  using FeaturePixelType = float;
63  using OutputPixelType = float;
67 
72 
74  itkSetMacro( PropagationScaling, double );
75  itkGetMacro( PropagationScaling, double );
77 
80  itkSetMacro( CurvatureScaling, double );
81  itkGetMacro( CurvatureScaling, double );
83 
85  itkSetMacro( AdvectionScaling, double );
86  itkGetMacro( AdvectionScaling, double );
88 
91  itkSetMacro( MaximumRMSError, double );
92  itkGetMacro( MaximumRMSError, double );
94 
96  itkSetMacro( MaximumNumberOfIterations, unsigned int );
97  itkGetMacro( MaximumNumberOfIterations, unsigned int );
99 
109  itkSetMacro( InvertOutputIntensities, bool );
110  itkGetMacro( InvertOutputIntensities, bool );
111  itkBooleanMacro( InvertOutputIntensities );
113 
114 protected:
117  void PrintSelf(std::ostream& os, Indent indent) const override;
118 
121  void GenerateData () override;
122 
124  void PackOutputImageInOutputSpatialObject( OutputImageType * outputImage );
125 
127  const InputImageType * GetInternalInputImage() const;
128 
130  const FeatureImageType * GetInternalFeatureImage() const;
131 
132 private:
136 
139 
141 
144 };
145 
146 } // end namespace itk
147 
148 #ifndef ITK_MANUAL_INSTANTIATION
149 # include "itkSinglePhaseLevelSetSegmentationModule.hxx"
150 #endif
151 
152 #endif
typename SpatialObjectType::Pointer SpatialObjectPointer
Light weight base class for most itk classes.
Class applies a single-phase level set segmentation method.
Class provides the abstract interface of the segmentation methods.
Implementation of the composite pattern.
Implementation of an image as spatial object.
Control indentation during Print() invocation.
Definition: itkIndent.h:49
Templated n-dimensional image class.
Definition: itkImage.h:75