#include <itkFastMarchingImageFilter.h>
Inheritance diagram for itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >:
Fast marching solves an Eikonal equation where the speed is always non-negative and depends on the position only. Starting from an initial position on the front, fast marching systematically moves the front forward one grid point at a time.
Updates are preformed using an entropy satisfy scheme where only "upwind" neighborhoods are used. This implementation of Fast Marching uses a std::priority_queue to locate the next proper grid position to update.
Fast Marching sweeps through N grid points in (N log N) steps to obtain the arrival time value as the front propagates through the grid.
Implementation of this class is based on Chapter 8 of "Level Set Methods and Fast Marching Methods", J.A. Sethian, Cambridge Press, Second edition, 1999.
This class is templated over the level set image type and the speed image type. The initial front is specified by two containers: one containing the known points and one containing the trial points. The speed function can be specified as a speed image or a speed constant. The speed image is set using the method SetInput(). If the speed image is NULL, a constant speed function is used and is specified using method the SetSpeedConstant().
If the speed function is constant and of value one, fast marching results in an approximate distance function from the initial alive points. FastMarchingImageFilter is used in the ReinitializeLevelSetImageFilter object to create a signed distance function from the zero level set.
The algorithm can be terminated early by setting an appropriate stopping value. The algorithm terminates when the current arrival time being processed is greater than the stopping value.
There are two ways to specify the output image information ( LargestPossibleRegion, Spacing, Origin): (a) it is copied directly from the input speed image or (b) it is specified by the user. Default values are used if the user does not specify all the information.
The output information is computed as follows. If the speed image is NULL or if the OverrideOutputInformation is set to true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing() and SetOutputOrigin(). Else if the speed image is not NULL, the output information is copied from the input speed image.
Possible Improvements: In the current implemenation, std::priority_queue only allows taking nodes out from the front and putting nodes in from the back. To update a value already on the heap, a new node is added to the heap. The defunct old node is left on the heap. When it is removed from the top, it will be recognized as invalid and not used. Future implementations can implement the heap in a different way allowing the values to be updated. This will generally require some sift-up and sift-down functions and an image of back-pointers going from the image to heap in order to locate the node which is to be updated.
Definition at line 98 of file itkFastMarchingImageFilter.h.
|
Reimplemented from itk::ImageToImageFilter< TSpeedImage, TLevelSet >. Reimplemented in itk::FastMarchingExtensionImageFilter< TLevelSet, TAuxValue, VAuxDimension, TSpeedImage >, and itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >. Definition at line 106 of file itkFastMarchingImageFilter.h. |
|
Index typedef support. Reimplemented in itk::FastMarchingExtensionImageFilter< TLevelSet, TAuxValue, VAuxDimension, TSpeedImage >, and itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >. Definition at line 143 of file itkFastMarchingImageFilter.h. Referenced by itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::~FastMarchingImageFilter(). |
|
LabelImagePointer typedef support. Definition at line 162 of file itkFastMarchingImageFilter.h. Referenced by itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GetTrialPoints(). |
|
LabelImage typedef support. Reimplemented in itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >. Definition at line 159 of file itkFastMarchingImageFilter.h. |
|
Reimplemented in itk::FastMarchingExtensionImageFilter< TLevelSet, TAuxValue, VAuxDimension, TSpeedImage >, and itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >. Definition at line 116 of file itkFastMarchingImageFilter.h. Referenced by itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::~FastMarchingImageFilter(). |
|
Reimplemented in itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >. Definition at line 293 of file itkFastMarchingImageFilter.h. Referenced by itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GetNodeUsedInCalculation(). |
|
Reimplemented in itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >. Definition at line 117 of file itkFastMarchingImageFilter.h. |
|
Typedef support of level set method types. Reimplemented in itk::FastMarchingExtensionImageFilter< TLevelSet, TAuxValue, VAuxDimension, TSpeedImage >, and itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >. Definition at line 115 of file itkFastMarchingImageFilter.h. |
|
Reimplemented in itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >. Definition at line 120 of file itkFastMarchingImageFilter.h. Referenced by itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SetAlivePoints(). |
|
Reimplemented in itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >. Definition at line 121 of file itkFastMarchingImageFilter.h. |
|
Reimplemented in itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >. Definition at line 119 of file itkFastMarchingImageFilter.h. Referenced by itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::AxisNodeType::operator=(). |
|
Definition at line 125 of file itkFastMarchingImageFilter.h. Referenced by itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GetOutputSize(). |
|
Definition at line 123 of file itkFastMarchingImageFilter.h. Referenced by itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GetNodeUsedInCalculation(), and itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SetOutputSize(). |
|
Definition at line 122 of file itkFastMarchingImageFilter.h. |
|
Reimplemented in itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >. Definition at line 124 of file itkFastMarchingImageFilter.h. Referenced by itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GetOutputSize(), and itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SetOutputSize(). |
|
Reimplemented in itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >. Definition at line 118 of file itkFastMarchingImageFilter.h. Referenced by itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GetNodeUsedInCalculation(). |
|
Reimplemented from itk::ImageToImageFilter< TSpeedImage, TLevelSet >. Reimplemented in itk::FastMarchingExtensionImageFilter< TLevelSet, TAuxValue, VAuxDimension, TSpeedImage >, and itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >. Definition at line 105 of file itkFastMarchingImageFilter.h. |
|
Standard class typdedefs. Reimplemented from itk::ImageToImageFilter< TSpeedImage, TLevelSet >. Reimplemented in itk::FastMarchingExtensionImageFilter< TLevelSet, TAuxValue, VAuxDimension, TSpeedImage >, and itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >. Definition at line 103 of file itkFastMarchingImageFilter.h. |
|
Reimplemented in itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >. Definition at line 150 of file itkFastMarchingImageFilter.h. |
|
SpeedImagePointer typedef support. Definition at line 149 of file itkFastMarchingImageFilter.h. |
|
SpeedImage typedef support. Reimplemented in itk::FastMarchingExtensionImageFilter< TLevelSet, TAuxValue, VAuxDimension, TSpeedImage >, and itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >. Definition at line 146 of file itkFastMarchingImageFilter.h. Referenced by itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::~FastMarchingImageFilter(). |
|
Reimplemented from itk::ImageToImageFilter< TSpeedImage, TLevelSet >. Reimplemented in itk::FastMarchingExtensionImageFilter< TLevelSet, TAuxValue, VAuxDimension, TSpeedImage >, and itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >. Definition at line 104 of file itkFastMarchingImageFilter.h. |
|
Enum of Fast Marching algorithm point types. FarPoints represent far away points; TrialPoints represent points within a narrowband of the propagating front; and AlivePoints represent points which have already been processed. Definition at line 156 of file itkFastMarchingImageFilter.h. |
|
|
|
|
Get thConste Collect Points flag. |
|
Get thConste Collect Points flag. |
|
Generate the output image meta information. Reimplemented from itk::ProcessObject. Reimplemented in itk::FastMarchingExtensionImageFilter< TLevelSet, TAuxValue, VAuxDimension, TSpeedImage >. |
|
A version of GenerateData() specific for image processing filters. This implementation will split the processing across multiple threads. The buffer is allocated by this method. Then the BeforeThreadedGenerateData() method is called (if provided). Then, a series of threads are spawned each calling ThreadedGenerateData(). After all the threads have completed processing, the AfterThreadedGenerateData() method is called (if provided). If an image processing filter cannot be threaded, the filter should provide an implementation of GenerateData(). That implementation is responsible for allocating the output buffer. If a filter an be threaded, it should NOT provide a GenerateData() method but should provide a ThreadedGenerateData() instead.
Reimplemented from itk::ImageSource< TLevelSet >. |
|
Generate the output image meta information. Reimplemented from itk::ProcessObject. Reimplemented in itk::FastMarchingExtensionImageFilter< TLevelSet, TAuxValue, VAuxDimension, TSpeedImage >. |
|
Get the container of Alive Points representing the initial front. Definition at line 174 of file itkFastMarchingImageFilter.h. |
|
Get thConste Collect Points flag. |
|
Get the point type label image. Definition at line 191 of file itkFastMarchingImageFilter.h. |
|
Get Large Value. This value is used to represent the concept of infinity for the time assigned to pixels that have not been visited. This value is set by default to half the max() of the pixel type used to represent the time-crossing map. |
|
|
|
Run-time type information (and related methods). Reimplemented from itk::ImageToImageFilter< TSpeedImage, TLevelSet >. Reimplemented in itk::FastMarchingExtensionImageFilter< TLevelSet, TAuxValue, VAuxDimension, TSpeedImage >, and itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >. |
|
|
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. |
|
The output largeset possible, spacing and origin is computed as follows. If the speed image is NULL or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing() and SetOutputOrigin(). Else if the speed image is not NULL, the output information is copied from the input speed image. |
|
The output largeset possible, spacing and origin is computed as follows. If the speed image is NULL or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing() and SetOutputOrigin(). Else if the speed image is not NULL, the output information is copied from the input speed image. |
|
The output largeset possible, spacing and origin is computed as follows. If the speed image is NULL or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing() and SetOutputOrigin(). Else if the speed image is not NULL, the output information is copied from the input speed image. Definition at line 251 of file itkFastMarchingImageFilter.h. References itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::OutputPointType, and itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::OutputSpacingType. |
|
The output largeset possible, spacing and origin is computed as follows. If the speed image is NULL or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing() and SetOutputOrigin(). Else if the speed image is not NULL, the output information is copied from the input speed image. |
|
The output largeset possible, spacing and origin is computed as follows. If the speed image is NULL or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing() and SetOutputOrigin(). Else if the speed image is not NULL, the output information is copied from the input speed image. |
|
Get the container of Processed Points. If the CollectPoints flag is set, the algorithm collects a container of all processed nodes. This is useful for defining creating Narrowbands for level set algorithms that supports narrow banding. Definition at line 239 of file itkFastMarchingImageFilter.h. |
|
Get the Speed Constant. |
|
|
|
Get the Fast Marching algorithm Stopping Value. |
|
Get the container of Trial Points representing the initial front. Definition at line 187 of file itkFastMarchingImageFilter.h. References itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::LabelImagePointer. |
|
Reimplemented in itk::FastMarchingExtensionImageFilter< TLevelSet, TAuxValue, VAuxDimension, TSpeedImage >, and itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >. |
|
Dimension of the level set. |
|
Method for creation through the object factory. Reimplemented from itk::Object. Reimplemented in itk::FastMarchingExtensionImageFilter< TLevelSet, TAuxValue, VAuxDimension, TSpeedImage >, and itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >. |
|
The output largeset possible, spacing and origin is computed as follows. If the speed image is NULL or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing() and SetOutputOrigin(). Else if the speed image is not NULL, the output information is copied from the input speed image. |
|
The output largeset possible, spacing and origin is computed as follows. If the speed image is NULL or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing() and SetOutputOrigin(). Else if the speed image is not NULL, the output information is copied from the input speed image. |
|
Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes. Reimplemented from itk::ImageToImageFilter< TSpeedImage, TLevelSet >. Reimplemented in itk::FastMarchingExtensionImageFilter< TLevelSet, TAuxValue, VAuxDimension, TSpeedImage >, and itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >. |
|
Set the container of Alive Points representing the initial front. Alive points are represented as a VectorContainer of LevelSetNodes. Definition at line 166 of file itkFastMarchingImageFilter.h. References itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::NodeContainer. |
|
Set the Collect Points flag. Instrument the algorithm to collect a container of all nodes which it has visited. Useful for creating Narrowbands for level set algorithms that supports narrow banding. |
|
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. |
|
The output largeset possible, spacing and origin is computed as follows. If the speed image is NULL or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing() and SetOutputOrigin(). Else if the speed image is not NULL, the output information is copied from the input speed image. |
|
The output largeset possible, spacing and origin is computed as follows. If the speed image is NULL or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing() and SetOutputOrigin(). Else if the speed image is not NULL, the output information is copied from the input speed image. |
|
The output largeset possible, spacing and origin is computed as follows. If the speed image is NULL or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing() and SetOutputOrigin(). Else if the speed image is not NULL, the output information is copied from the input speed image. Definition at line 249 of file itkFastMarchingImageFilter.h. References itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::OutputRegionType, and itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::OutputSpacingType. |
|
The output largeset possible, spacing and origin is computed as follows. If the speed image is NULL or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing() and SetOutputOrigin(). Else if the speed image is not NULL, the output information is copied from the input speed image. |
|
The output largeset possible, spacing and origin is computed as follows. If the speed image is NULL or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing() and SetOutputOrigin(). Else if the speed image is not NULL, the output information is copied from the input speed image. |
|
Set the Speed Constant. If the Speed Image is NULL, the SpeedConstant value is used for the whole level set. By default, the SpeedConstant is set to 1.0. Definition at line 197 of file itkFastMarchingImageFilter.h. |
|
Set the Fast Marching algorithm Stopping Value. The Fast Marching algorithm is terminated when the value of the smallest trial point is greater than the stopping value. |
|
Set the container of Trial Points representing the initial front. Trial points are represented as a VectorContainer of LevelSetNodes. Definition at line 179 of file itkFastMarchingImageFilter.h. |
|
Reimplemented in itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >. |
|
Reimplemented in itk::FastMarchingExtensionImageFilter< TLevelSet, TAuxValue, VAuxDimension, TSpeedImage >. |
|
Definition at line 292 of file itkFastMarchingImageFilter.h. |
|
Definition at line 295 of file itkFastMarchingImageFilter.h. |
|
Definition at line 294 of file itkFastMarchingImageFilter.h. |