18 #ifndef itkFastMarchingUpwindGradientImageFilter_h
19 #define itkFastMarchingUpwindGradientImageFilter_h
61 typename TSpeedImage = Image< float, TLevelSet ::ImageDimension > >
89 using NodeType =
typename Superclass::NodeType;
97 using PointType =
typename Superclass::OutputPointType;
100 static constexpr
unsigned int SetDimension = Superclass::SetDimension;
107 m_TargetPoints = points;
114 {
return m_TargetPoints; }
118 {
return m_ReachedTargetPoints; }
122 Self::SetDimension >;
126 Self::SetDimension >;
133 {
return m_GradientImage; }
137 itkSetMacro(GenerateGradientImage,
bool);
140 itkGetConstReferenceMacro(GenerateGradientImage,
bool);
141 itkBooleanMacro(GenerateGradientImage);
147 itkSetMacro(TargetOffset,
double);
150 itkGetConstReferenceMacro(TargetOffset,
double);
155 itkSetMacro(TargetReachedMode,
int);
156 itkGetConstReferenceMacro(TargetReachedMode,
int);
158 { this->SetTargetReachedMode(NoTargets); }
160 { this->SetTargetReachedMode(OneTarget); }
163 this->SetTargetReachedMode(SomeTargets);
164 m_NumberOfTargets = numberOfTargets;
169 { this->SetTargetReachedMode(AllTargets); }
178 itkGetConstReferenceMacro(TargetValue,
double);
187 #ifdef ITK_USE_CONCEPT_CHECKING
199 void PrintSelf(std::ostream & os,
Indent indent)
const override;
201 void Initialize(LevelSetImageType *)
override;
203 void GenerateData()
override;
205 void UpdateNeighbors(
const IndexType & index,
206 const SpeedImageType *, LevelSetImageType *)
override;
208 virtual void ComputeGradient(
const IndexType & index,
209 const LevelSetImageType *output,
210 const LabelImageType *labelImage,
211 GradientImageType *gradientImage);
231 #ifndef ITK_MANUAL_INSTANTIATION
232 #include "itkFastMarchingUpwindGradientImageFilter.hxx"
NodeContainerPointer m_TargetPoints
void SetTargetReachedModeToNoTargets()
typename LevelSetType::NodeType NodeType
Light weight base class for most itk classes.
typename LevelSetType::LevelSetPointer LevelSetPointer
typename LevelSetType::LevelSetImageType LevelSetImageType
typename GradientImageType::Pointer GradientImagePointer
Represent a n-dimensional index in a n-dimensional image.
NodeContainerPointer m_ReachedTargetPoints
unsigned long SizeValueType
GradientImagePointer m_GradientImage
SizeValueType m_NumberOfTargets
typename Superclass::OutputPointType PointType
typename LevelSetType::NodeContainerPointer NodeContainerPointer
NodeContainerPointer GetTargetPoints()
void SetTargetReachedModeToSomeTargets(SizeValueType numberOfTargets)
bool m_GenerateGradientImage
ImageBaseType::IndexType IndexType
void SetTargetReachedModeToOneTarget()
TSpeedImage SpeedImageType
Generates the upwind gradient field of fast marching arrival times.
void SetTargetReachedModeToAllTargets()
typename LevelSetType::NodeContainer NodeContainer
typename LevelSetType::PixelType PixelType
typename SpeedImageType::ConstPointer SpeedImageConstPointer
Control indentation during Print() invocation.
typename LevelSetImageType::SpacingType OutputSpacingType
NodeContainerPointer GetReachedTargetPoints()
Solve an Eikonal equation using Fast Marching.
typename LevelSetImageType::IndexType LevelSetIndexType
typename Superclass::AxisNodeType AxisNodeType
#define itkConceptMacro(name, concept)
Level set type information.
A templated class holding a n-Dimensional covariant vector.
GradientImagePointer GetGradientImage() const
Templated n-dimensional image class.
void SetTargetPoints(NodeContainer *points)