18 #ifndef itkFastMarchingUpwindGradientImageFilter_h
19 #define itkFastMarchingUpwindGradientImageFilter_h
61 typename TSpeedImage = Image< float, TLevelSet ::ImageDimension > >
87 typedef typename Superclass::NodeType
NodeType;
95 typedef typename Superclass::OutputPointType
PointType;
98 itkStaticConstMacro(SetDimension,
unsigned int, Superclass::SetDimension);
105 m_TargetPoints = points;
112 {
return m_TargetPoints; }
116 {
return m_ReachedTargetPoints; }
131 {
return m_GradientImage; }
135 itkSetMacro(GenerateGradientImage,
bool);
138 itkGetConstReferenceMacro(GenerateGradientImage,
bool);
139 itkBooleanMacro(GenerateGradientImage);
145 itkSetMacro(TargetOffset,
double);
148 itkGetConstReferenceMacro(TargetOffset,
double);
153 itkSetMacro(TargetReachedMode,
int);
154 itkGetConstReferenceMacro(TargetReachedMode,
int);
156 { this->SetTargetReachedMode(NoTargets); }
158 { this->SetTargetReachedMode(OneTarget); }
161 this->SetTargetReachedMode(SomeTargets);
162 m_NumberOfTargets = numberOfTargets;
167 { this->SetTargetReachedMode(AllTargets); }
176 itkGetConstReferenceMacro(TargetValue,
double);
185 #ifdef ITK_USE_CONCEPT_CHECKING
197 void PrintSelf(std::ostream & os,
Indent indent)
const ITK_OVERRIDE;
199 virtual void Initialize(LevelSetImageType *) ITK_OVERRIDE;
201 void GenerateData() ITK_OVERRIDE;
203 virtual
void UpdateNeighbors(const
IndexType & index,
204 const SpeedImageType *, LevelSetImageType *) ITK_OVERRIDE;
206 virtual
void ComputeGradient(const
IndexType & index,
207 const LevelSetImageType *output,
208 const LabelImageType *labelImage,
209 GradientImageType *gradientImage);
219 bool m_GenerateGradientImage;
221 double m_TargetOffset;
223 int m_TargetReachedMode;
225 double m_TargetValue;
231 #ifndef ITK_MANUAL_INSTANTIATION
232 #include "itkFastMarchingUpwindGradientImageFilter.hxx"
void SetTargetReachedModeToNoTargets()
Superclass::AxisNodeType AxisNodeType
FastMarchingImageFilter< TLevelSet, TSpeedImage > Superclass
Light weight base class for most itk classes.
Superclass::NodeContainerPointer NodeContainerPointer
Superclass::IndexType IndexType
FastMarchingUpwindGradientImageFilter Self
Superclass::PixelType PixelType
unsigned long SizeValueType
Superclass::LevelSetIndexType LevelSetIndexType
NodeContainerPointer GetTargetPoints()
Superclass::LevelSetImageType LevelSetImageType
void SetTargetReachedModeToSomeTargets(SizeValueType numberOfTargets)
Superclass::NodeContainer NodeContainer
SmartPointer< const Self > ConstPointer
Image< GradientPixelType, itkGetStaticConstMacro(SetDimension) > GradientImageType
Superclass::LabelImageType LabelImageType
Superclass::OutputPointType PointType
Superclass::LevelSetPointer LevelSetPointer
~FastMarchingUpwindGradientImageFilter() override
void SetTargetReachedModeToOneTarget()
GradientImageType::Pointer GradientImagePointer
Generates the upwind gradient field of fast marching arrival times.
void SetTargetReachedModeToAllTargets()
CovariantVector< PixelType, itkGetStaticConstMacro(SetDimension) > GradientPixelType
Superclass::SpeedImageConstPointer SpeedImageConstPointer
Superclass::OutputSpacingType OutputSpacingType
Define a front-end to the STL "vector" container that conforms to the IndexedContainerInterface.
Superclass::LevelSetType LevelSetType
Control indentation during Print() invocation.
SmartPointer< Self > Pointer
Superclass::SpeedImageType SpeedImageType
NodeContainerPointer GetReachedTargetPoints()
Solve an Eikonal equation using Fast Marching.
#define itkConceptMacro(name, concept)
A templated class holding a n-Dimensional covariant vector.
GradientImagePointer GetGradientImage() const
Superclass::NodeType NodeType
Templated n-dimensional image class.
void SetTargetPoints(NodeContainer *points)
ImageBaseType::IndexType IndexType