|
static constexpr unsigned int | SetDimension = Superclass::SetDimension |
|
static constexpr unsigned int | SetDimension = LevelSetType::SetDimension |
|
static constexpr unsigned int | SpeedImageDimension = SpeedImageType::ImageDimension |
|
static constexpr unsigned int | InputImageDimension |
|
static constexpr unsigned int | OutputImageDimension |
|
static constexpr unsigned int | OutputImageDimension |
|
enum | {
NoTargets,
OneTarget,
SomeTargets,
AllTargets
} |
|
using | GradientPixelType = CovariantVector< PixelType, Self::SetDimension > |
|
using | GradientImageType = Image< GradientPixelType, Self::SetDimension > |
|
using | GradientImagePointer = typename GradientImageType::Pointer |
|
NodeContainerPointer | m_TargetPoints |
|
NodeContainerPointer | m_ReachedTargetPoints |
|
GradientImagePointer | m_GradientImage |
|
bool | m_GenerateGradientImage |
|
double | m_TargetOffset |
|
int | m_TargetReachedMode |
|
double | m_TargetValue |
|
SizeValueType | m_NumberOfTargets |
|
void | SetTargetPoints (NodeContainer *points) |
|
NodeContainerPointer | GetTargetPoints () |
|
NodeContainerPointer | GetReachedTargetPoints () |
|
GradientImagePointer | GetGradientImage () const |
|
virtual void | SetGenerateGradientImage (bool _arg) |
|
virtual const bool & | GetGenerateGradientImage () const |
|
virtual void | GenerateGradientImageOn () |
|
virtual void | GenerateGradientImageOff () |
|
virtual void | SetTargetOffset (double _arg) |
|
virtual const double & | GetTargetOffset () const |
|
virtual void | SetTargetReachedMode (int _arg) |
|
virtual const int & | GetTargetReachedMode () const |
|
void | SetTargetReachedModeToNoTargets () |
|
void | SetTargetReachedModeToOneTarget () |
|
void | SetTargetReachedModeToSomeTargets (SizeValueType numberOfTargets) |
|
void | SetTargetReachedModeToAllTargets () |
|
virtual const SizeValueType & | GetNumberOfTargets () const |
|
virtual const double & | GetTargetValue () const |
|
| FastMarchingUpwindGradientImageFilter () |
|
| ~FastMarchingUpwindGradientImageFilter () override=default |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
void | Initialize (LevelSetImageType *) override |
|
void | GenerateData () override |
|
void | UpdateNeighbors (const IndexType &index, const SpeedImageType *, LevelSetImageType *) override |
|
virtual void | ComputeGradient (const IndexType &index, const LevelSetImageType *output, const LabelImageType *labelImage, GradientImageType *gradientImage) |
|
|
using | LevelSetIndexType = typename LevelSetImageType::IndexType |
|
using | InputToOutputRegionCopierType = ImageToImageFilterDetail::ImageRegionCopier< Self::OutputImageDimension, Self::InputImageDimension > |
|
using | OutputToInputRegionCopierType = ImageToImageFilterDetail::ImageRegionCopier< Self::InputImageDimension, Self::OutputImageDimension > |
|
| FastMarchingImageFilter () |
|
| ~FastMarchingImageFilter () override=default |
|
virtual double | UpdateValue (const IndexType &index, const SpeedImageType *, LevelSetImageType *) |
|
const AxisNodeType & | GetNodeUsedInCalculation (unsigned int idx) const |
|
void | GenerateOutputInformation () override |
|
void | EnlargeOutputRequestedRegion (DataObject *output) override |
|
virtual const PixelType & | GetLargeValue () const |
|
virtual const LevelSetIndexType & | GetStartIndex () const |
|
virtual const LevelSetIndexType & | GetLastIndex () const |
|
void | PushBackInput (const DataObject *input) override |
|
void | PushFrontInput (const DataObject *input) override |
|
| ImageToImageFilter () |
|
| ~ImageToImageFilter () override=default |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
void | VerifyInputInformation () ITKv5_CONST override |
|
void | GenerateInputRequestedRegion () override |
|
virtual void | CallCopyOutputRegionToInputRegion (InputImageRegionType &destRegion, const OutputImageRegionType &srcRegion) |
|
virtual void | CallCopyInputRegionToOutputRegion (OutputImageRegionType &destRegion, const InputImageRegionType &srcRegion) |
|
| ImageSource () |
|
| ~ImageSource () override=default |
|
void | GenerateData () override |
|
void | ClassicMultiThread (ThreadFunctionType callbackFunction) |
|
virtual void | ThreadedGenerateData (const OutputImageRegionType ®ion, ThreadIdType threadId) |
|
virtual void | DynamicThreadedGenerateData (const OutputImageRegionType &outputRegionForThread) |
|
virtual void | AllocateOutputs () |
|
virtual void | BeforeThreadedGenerateData () |
|
virtual void | AfterThreadedGenerateData () |
|
virtual const ImageRegionSplitterBase * | GetImageRegionSplitter () const |
|
virtual unsigned int | SplitRequestedRegion (unsigned int i, unsigned int pieces, OutputImageRegionType &splitRegion) |
|
virtual bool | GetDynamicMultiThreading () const |
|
virtual void | SetDynamicMultiThreading (bool _arg) |
|
virtual void | DynamicMultiThreadingOn () |
|
virtual void | DynamicMultiThreadingOff () |
|
| ProcessObject () |
|
| ~ProcessObject () override |
|
DataObject * | GetInput (const DataObjectIdentifierType &key) |
|
const DataObject * | GetInput (const DataObjectIdentifierType &key) const |
|
DataObject * | GetInput (DataObjectPointerArraySizeType idx) |
|
const DataObject * | GetInput (DataObjectPointerArraySizeType idx) const |
|
virtual void | SetInput (const DataObjectIdentifierType &key, DataObject *input) |
|
virtual void | SetNthInput (DataObjectPointerArraySizeType idx, DataObject *input) |
|
virtual void | AddInput (DataObject *input) |
|
virtual void | RemoveInput (const DataObjectIdentifierType &key) |
|
virtual void | RemoveInput (DataObjectPointerArraySizeType) |
|
DataObject * | GetPrimaryInput () |
|
const DataObject * | GetPrimaryInput () const |
|
virtual void | SetPrimaryInputName (const DataObjectIdentifierType &key) |
|
virtual const char * | GetPrimaryInputName () const |
|
virtual void | SetPrimaryInput (DataObject *object) |
|
void | SetNumberOfIndexedInputs (DataObjectPointerArraySizeType num) |
|
virtual void | SetNumberOfRequiredInputs (DataObjectPointerArraySizeType) |
|
virtual const DataObjectPointerArraySizeType & | GetNumberOfRequiredInputs () const |
|
bool | RemoveRequiredInputName (const DataObjectIdentifierType &) |
|
bool | IsRequiredInputName (const DataObjectIdentifierType &) const |
|
void | SetRequiredInputNames (const NameArray &) |
|
bool | AddRequiredInputName (const DataObjectIdentifierType &) |
|
bool | AddRequiredInputName (const DataObjectIdentifierType &, DataObjectPointerArraySizeType idx) |
|
void | AddOptionalInputName (const DataObjectIdentifierType &) |
|
void | AddOptionalInputName (const DataObjectIdentifierType &, DataObjectPointerArraySizeType idx) |
|
DataObject * | GetOutput (const DataObjectIdentifierType &key) |
|
const DataObject * | GetOutput (const DataObjectIdentifierType &key) const |
|
virtual void | SetPrimaryOutputName (const DataObjectIdentifierType &key) |
|
virtual const char * | GetPrimaryOutputName () const |
|
DataObject * | GetOutput (DataObjectPointerArraySizeType i) |
|
const DataObject * | GetOutput (DataObjectPointerArraySizeType i) const |
|
virtual void | SetOutput (const DataObjectIdentifierType &name, DataObject *output) |
|
virtual void | RemoveOutput (const DataObjectIdentifierType &key) |
|
DataObject * | GetPrimaryOutput () |
|
const DataObject * | GetPrimaryOutput () const |
|
virtual void | SetPrimaryOutput (DataObject *object) |
|
virtual void | SetNthOutput (DataObjectPointerArraySizeType idx, DataObject *output) |
|
virtual void | AddOutput (DataObject *output) |
|
virtual void | RemoveOutput (DataObjectPointerArraySizeType idx) |
|
virtual void | SetNumberOfRequiredOutputs (DataObjectPointerArraySizeType _arg) |
|
virtual const DataObjectPointerArraySizeType & | GetNumberOfRequiredOutputs () const |
|
void | SetNumberOfIndexedOutputs (DataObjectPointerArraySizeType num) |
|
DataObjectIdentifierType | MakeNameFromInputIndex (DataObjectPointerArraySizeType idx) const |
|
DataObjectIdentifierType | MakeNameFromOutputIndex (DataObjectPointerArraySizeType idx) const |
|
DataObjectPointerArraySizeType | MakeIndexFromInputName (const DataObjectIdentifierType &name) const |
|
DataObjectPointerArraySizeType | MakeIndexFromOutputName (const DataObjectIdentifierType &name) const |
|
bool | IsIndexedInputName (const DataObjectIdentifierType &) const |
|
bool | IsIndexedOutputName (const DataObjectIdentifierType &) const |
|
virtual void | VerifyPreconditions () ITKv5_CONST |
|
virtual void | GenerateOutputRequestedRegion (DataObject *output) |
|
virtual void | PropagateResetPipeline () |
|
virtual void | ReleaseInputs () |
|
virtual void | CacheInputReleaseDataFlags () |
|
virtual void | RestoreInputReleaseDataFlags () |
|
virtual bool | GetThreaderUpdateProgress () const |
|
virtual void | ThreaderUpdateProgressOn () |
|
virtual void | ThreaderUpdateProgressOff () |
|
virtual void | SetThreaderUpdateProgress (bool arg) |
|
| Object () |
|
| ~Object () override |
|
bool | PrintObservers (std::ostream &os, Indent indent) const |
|
virtual void | SetTimeStamp (const TimeStamp &timeStamp) |
|
virtual LightObject::Pointer | InternalClone () const |
|
| LightObject () |
|
virtual void | PrintHeader (std::ostream &os, Indent indent) const |
|
virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
|
virtual | ~LightObject () |
|
static const ImageRegionSplitterBase * | GetGlobalDefaultSplitter () |
|
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | ThreaderCallback (void *arg) |
|
static constexpr float | progressFixedToFloat (uint32_t fixed) |
|
static uint32_t | progressFloatToFixed (float f) |
|
OutputRegionType | m_BufferedRegion |
|
LevelSetIndexType | m_StartIndex |
|
LevelSetIndexType | m_LastIndex |
|
bool | m_DynamicMultiThreading |
|
bool | m_Updating |
|
TimeStamp | m_OutputInformationMTime |
|
std::atomic< int > | m_ReferenceCount |
|
template<typename TLevelSet, typename TSpeedImage = Image<float, TLevelSet::ImageDimension>>
class itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >
Generates the upwind gradient field of fast marching arrival times.
This filter adds some extra functionality to its base class. While the solution T(x) of the Eikonal equation is being generated by the base class with the fast marching method, the filter generates the upwind gradient vectors of T(x), storing them in an image.
Since the Eikonal equation generates the arrival times of a wave traveling at a given speed, the generated gradient vectors can be interpreted as the slowness (1/velocity) vectors of the front (the quantity inside the modulus operator in the Eikonal equation).
Gradient vectors are computed using upwind finite differences, that is, information only propagates from points where the wavefront has already passed. This is consistent with how the fast marching method works.
One more extra feature is the possibility to define a set of Target points where the propagation stops. This can be used to avoid computing the Eikonal solution for the whole domain. The front can be stopped either when one Target point is reached or all Target points are reached. The propagation can stop after a time TargetOffset has passed since the stop condition is met. This way the solution is computed a bit downstream the Target points, so that the level sets of T(x) corresponding to the Target are smooth.
For an alternative implementation, see itk::FastMarchingUpwindGradientImageFilterBase.
- Author
- Luca Antiga Ph.D. Biomedical Technologies Laboratory, Bioengineering Department, Mario Negri Institute, Italy.
Definition at line 61 of file itkFastMarchingUpwindGradientImageFilter.h.