Class FastMarchingUpwindGradientImageFilter

java.lang.Object
org.itk.simple.ProcessObject
org.itk.simple.ImageFilter
org.itk.simple.FastMarchingUpwindGradientImageFilter

public class FastMarchingUpwindGradientImageFilter extends ImageFilter
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 . Luca Antiga Ph.D. Biomedical Technologies Laboratory, Bioengineering Department, Mario Negri Institute, Italy. See: itk::simple::FastMarchingUpwindGradient for the procedural interface itk::FastMarchingUpwindGradientImageFilter for the Doxygen on the original ITK class. C++ includes: sitkFastMarchingUpwindGradientImageFilter.h
  • Constructor Details

    • FastMarchingUpwindGradientImageFilter

      protected FastMarchingUpwindGradientImageFilter(long cPtr, boolean cMemoryOwn)
    • FastMarchingUpwindGradientImageFilter

      public FastMarchingUpwindGradientImageFilter()
      itk::simple::FastMarchingUpwindGradientImageFilter::FastMarchingUpwindGradientImageFilter() Default Constructor that takes no arguments and initializes default parameters
  • Method Details

    • getCPtr

      protected static long getCPtr(FastMarchingUpwindGradientImageFilter obj)
    • swigRelease

      protected static long swigRelease(FastMarchingUpwindGradientImageFilter obj)
    • finalize

      protected void finalize()
      Overrides:
      finalize in class ImageFilter
    • delete

      public void delete()
      virtual itk::simple::FastMarchingUpwindGradientImageFilter::~FastMarchingUpwindGradientImageFilter() Destructor
      Overrides:
      delete in class ImageFilter
    • setTrialPoints

      public void setTrialPoints(VectorUIntList TrialPoints)
      Self& itk::simple::FastMarchingUpwindGradientImageFilter::SetTrialPoints(std::vector< std::vector< unsigned int > > TrialPoints)
    • getTrialPoints

      public VectorUIntList getTrialPoints()
      std::vector< std::vector< unsigned int > > itk::simple::FastMarchingUpwindGradientImageFilter::GetTrialPoints() const
    • addTrialPoint

      public void addTrialPoint(VectorUInt32 point)
      Self& itk::simple::FastMarchingUpwindGradientImageFilter::AddTrialPoint(std::vector< unsigned int > point) Add TrialPoints point.
    • clearTrialPoints

      public void clearTrialPoints()
      Self& itk::simple::FastMarchingUpwindGradientImageFilter::ClearTrialPoints() Remove all TrialPoints points.
    • setNumberOfTargets

      public void setNumberOfTargets(long NumberOfTargets)
      Self& itk::simple::FastMarchingUpwindGradientImageFilter::SetNumberOfTargets(unsigned int NumberOfTargets)
    • getNumberOfTargets

      public long getNumberOfTargets()
      unsigned int itk::simple::FastMarchingUpwindGradientImageFilter::GetNumberOfTargets() const Get the number of targets.
    • setTargetPoints

      public void setTargetPoints(VectorUIntList TargetPoints)
      Self& itk::simple::FastMarchingUpwindGradientImageFilter::SetTargetPoints(std::vector< std::vector< unsigned int > > TargetPoints) Set the container of Target Points. If a target point is reached, the propagation stops. Trial points are represented as a VectorContainer of LevelSetNodes.
    • getTargetPoints

      public VectorUIntList getTargetPoints()
      std::vector< std::vector< unsigned int > > itk::simple::FastMarchingUpwindGradientImageFilter::GetTargetPoints() const Get the container of Target Points.
    • addTargetPoint

      public void addTargetPoint(VectorUInt32 point)
      Self& itk::simple::FastMarchingUpwindGradientImageFilter::AddTargetPoint(std::vector< unsigned int > point) Add TargetPoints point.
    • clearTargetPoints

      public void clearTargetPoints()
      Self& itk::simple::FastMarchingUpwindGradientImageFilter::ClearTargetPoints() Remove all TargetPoints points.
    • setTargetOffset

      public void setTargetOffset(double TargetOffset)
      Self& itk::simple::FastMarchingUpwindGradientImageFilter::SetTargetOffset(double TargetOffset) Set how long (in terms of arrival times) after targets are reached the front must stop. This is useful to ensure that the level set of target arrival time is smooth.
    • getTargetOffset

      public double getTargetOffset()
      double itk::simple::FastMarchingUpwindGradientImageFilter::GetTargetOffset() const Get the TargetOffset ivar.
    • setNormalizationFactor

      public void setNormalizationFactor(double NormalizationFactor)
      Self& itk::simple::FastMarchingUpwindGradientImageFilter::SetNormalizationFactor(double NormalizationFactor) Set/Get the Normalization Factor for the Speed Image . The values in the Speed Image is divided by this factor. This allows the use of images with integer pixel types to represent the speed.
    • getNormalizationFactor

      public double getNormalizationFactor()
      double itk::simple::FastMarchingUpwindGradientImageFilter::GetNormalizationFactor() const Set/Get the Normalization Factor for the Speed Image . The values in the Speed Image is divided by this factor. This allows the use of images with integer pixel types to represent the speed.
    • setInitialTrialValues

      public void setInitialTrialValues(VectorDouble InitialTrialValues)
      Self& itk::simple::FastMarchingUpwindGradientImageFilter::SetInitialTrialValues(std::vector< double > InitialTrialValues) Set the initial seed values for corresponding trial point.
    • getInitialTrialValues

      public VectorDouble getInitialTrialValues()
      std::vector<double> itk::simple::FastMarchingUpwindGradientImageFilter::GetInitialTrialValues() const
    • getGradientImage

      public Image getGradientImage()
      Image itk::simple::FastMarchingUpwindGradientImageFilter::GetGradientImage() const Get the gradient image. This is a measurement. Its value is updated in the Execute methods, so the value will only be valid after an execution.
    • getTargetValue

      public double getTargetValue()
      double itk::simple::FastMarchingUpwindGradientImageFilter::GetTargetValue() const Get the arrival time corresponding to the last reached target. If TargetReachedMode is set to NoTargets, TargetValue contains the last (aka largest) Eikonal solution value generated. This is a measurement. Its value is updated in the Execute methods, so the value will only be valid after an execution.
    • getName

      public String getName()
      std::string itk::simple::FastMarchingUpwindGradientImageFilter::GetName() const Name of this class
      Overrides:
      getName in class ProcessObject
    • toString

      public String toString()
      std::string itk::simple::FastMarchingUpwindGradientImageFilter::ToString() const Print ourselves out
      Overrides:
      toString in class ProcessObject
    • execute

      public Image execute(Image image1)
      Image itk::simple::FastMarchingUpwindGradientImageFilter::Execute(const Image &image1) Execute the filter on the input image