18 #ifndef itkFastMarchingUpwindGradientImageFilter_h
19 #define itkFastMarchingUpwindGradientImageFilter_h
60 typename TSpeedImage = Image< float, TLevelSet ::ImageDimension > >
86 typedef typename Superclass::NodeType
NodeType;
94 typedef typename Superclass::OutputPointType
PointType;
97 itkStaticConstMacro(SetDimension,
unsigned int, Superclass::SetDimension);
104 m_TargetPoints = points;
111 {
return m_TargetPoints; }
115 {
return m_ReachedTargetPoints; }
130 {
return m_GradientImage; }
134 itkSetMacro(GenerateGradientImage,
bool);
137 itkGetConstReferenceMacro(GenerateGradientImage,
bool);
138 itkBooleanMacro(GenerateGradientImage);
144 itkSetMacro(TargetOffset,
double);
147 itkGetConstReferenceMacro(TargetOffset,
double);
152 itkSetMacro(TargetReachedMode,
int);
153 itkGetConstReferenceMacro(TargetReachedMode,
int);
155 { this->SetTargetReachedMode(NoTargets); }
157 { this->SetTargetReachedMode(OneTarget); }
160 this->SetTargetReachedMode(SomeTargets);
161 m_NumberOfTargets = numberOfTargets;
166 { this->SetTargetReachedMode(AllTargets); }
175 itkGetConstReferenceMacro(TargetValue,
double);
184 #ifdef ITK_USE_CONCEPT_CHECKING
196 void PrintSelf(std::ostream & os,
Indent indent)
const ITK_OVERRIDE;
198 virtual void Initialize(LevelSetImageType *) ITK_OVERRIDE;
200 void GenerateData() ITK_OVERRIDE;
202 virtual
void UpdateNeighbors(const IndexType & index,
203 const SpeedImageType *, LevelSetImageType *) ITK_OVERRIDE;
205 virtual
void ComputeGradient(const IndexType & index,
206 const LevelSetImageType *output,
207 const LabelImageType *labelImage,
208 GradientImageType *gradientImage);
218 bool m_GenerateGradientImage;
220 double m_TargetOffset;
222 int m_TargetReachedMode;
224 double m_TargetValue;
230 #ifndef ITK_MANUAL_INSTANTIATION
231 #include "itkFastMarchingUpwindGradientImageFilter.hxx"
void SetTargetReachedModeToNoTargets()
Superclass::AxisNodeType AxisNodeType
FastMarchingImageFilter< TLevelSet, TSpeedImage > Superclass
Light weight base class for most itk classes.
~FastMarchingUpwindGradientImageFilter()
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
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)