SimpleITK
|
Apply the Fast Marching method to solve an Eikonal equation on an image. More...
#include <sitkFastMarchingBaseImageFilter.h>
Apply the Fast Marching method to solve an Eikonal equation on an image.
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 nullptr, 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 is an approximate distance function from the initial alive points.
There are two ways to specify the output image information (LargestPossibleRegion, Spacing, Origin):
The output information is computed as follows.
If the speed image is nullptr or if the OverrideOutputInformation is set to true, the output information is set from user specified parameters. These parameters can be specified using methods
Else the output information is copied from the input speed image.
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.
For an alternative implementation, see itk::FastMarchingImageFilter .
TTraits
traits
Definition at line 91 of file sitkFastMarchingBaseImageFilter.h.
Public Types | |
using | PixelIDTypeList = BasicPixelIDTypeList |
using | Self = FastMarchingBaseImageFilter |
enum | TopologyCheckType { Nothing, NoHandles, Strict } |
Public Types inherited from itk::simple::ImageFilter | |
using | Self = ImageFilter |
Public Types inherited from itk::simple::ProcessObject | |
using | Self = ProcessObject |
Public Member Functions | |
Self & | AddTrialPoint (std::vector< unsigned int > point) |
Add TrialPoints point. More... | |
Self & | ClearTrialPoints () |
Remove all TrialPoints points. More... | |
Image | Execute (const Image &image1) |
FastMarchingBaseImageFilter () | |
std::vector< double > | GetInitialTrialValues () const |
std::string | GetName () const |
double | GetNormalizationFactor () const |
double | GetStoppingValue () const |
TopologyCheckType | GetTopologyCheck () const |
std::vector< std::vector< unsigned int > > | GetTrialPoints () const |
Self & | SetInitialTrialValues (std::vector< double > InitialTrialValues) |
Set the initial seed values for corresponding trial point. More... | |
Self & | SetNormalizationFactor (double NormalizationFactor) |
Self & | SetStoppingValue (double StoppingValue) |
Self & | SetTopologyCheck (TopologyCheckType TopologyCheck) |
Self & | SetTrialPoints (std::vector< std::vector< unsigned int > > TrialPoints) |
std::string | ToString () const |
virtual | ~FastMarchingBaseImageFilter () |
Public Member Functions inherited from itk::simple::ImageFilter | |
ImageFilter () | |
virtual | ~ImageFilter ()=0 |
Public Member Functions inherited from itk::simple::ProcessObject | |
virtual void | Abort () |
virtual int | AddCommand (itk::simple::EventEnum event, const std::function< void()> &func) |
Directly add a callback to observe an event. More... | |
virtual int | AddCommand (itk::simple::EventEnum event, itk::simple::Command &cmd) |
Add a Command Object to observer the event. More... | |
virtual float | GetProgress () const |
An Active Measurement of the progress of execution. More... | |
virtual bool | HasCommand (itk::simple::EventEnum event) const |
Query of this object has any registered commands for event. More... | |
ProcessObject () | |
virtual void | RemoveAllCommands () |
Remove all registered commands. More... | |
virtual | ~ProcessObject () |
virtual void | DebugOn () |
virtual void | DebugOff () |
virtual bool | GetDebug () const |
virtual void | SetDebug (bool debugFlag) |
virtual void | SetNumberOfThreads (unsigned int n) |
virtual unsigned int | GetNumberOfThreads () const |
virtual void | SetNumberOfWorkUnits (unsigned int n) |
virtual unsigned int | GetNumberOfWorkUnits () const |
Private Types | |
using | MemberFunctionType = Image(Self::*)(const Image &image1) |
Private Member Functions | |
template<class TImageType > | |
Image | ExecuteInternal (const Image &image1) |
Private Attributes | |
std::vector< double > | m_InitialTrialValues {std::vector<double>()} |
std::unique_ptr< detail::MemberFunctionFactory< MemberFunctionType > > | m_MemberFactory |
double | m_NormalizationFactor {1.0} |
double | m_StoppingValue {std::numeric_limits<float>::max()/2.0} |
TopologyCheckType | m_TopologyCheck {itk::simple::FastMarchingBaseImageFilter::Nothing} |
std::vector< std::vector< unsigned int > > | m_TrialPoints {std::vector< std::vector<unsigned int > >()} |
Friends | |
struct | detail::MemberFunctionAddressor< MemberFunctionType > |
Additional Inherited Members | |
Static Public Member Functions inherited from itk::simple::ProcessObject | |
static bool | GetGlobalDefaultDebug () |
static void | GlobalDefaultDebugOff () |
static void | GlobalDefaultDebugOn () |
static void | SetGlobalDefaultDebug (bool debugFlag) |
static void | GlobalWarningDisplayOn () |
static void | GlobalWarningDisplayOff () |
static void | SetGlobalWarningDisplay (bool flag) |
static bool | GetGlobalWarningDisplay () |
static double | GetGlobalDefaultCoordinateTolerance () |
Access the global tolerance to determine congruent spaces. More... | |
static void | SetGlobalDefaultCoordinateTolerance (double) |
Access the global tolerance to determine congruent spaces. More... | |
static double | GetGlobalDefaultDirectionTolerance () |
Access the global tolerance to determine congruent spaces. More... | |
static void | SetGlobalDefaultDirectionTolerance (double) |
Access the global tolerance to determine congruent spaces. More... | |
static bool | SetGlobalDefaultThreader (const std::string &threader) |
Set/Get the default threader used for process objects. More... | |
static std::string | GetGlobalDefaultThreader () |
Set/Get the default threader used for process objects. More... | |
static void | SetGlobalDefaultNumberOfThreads (unsigned int n) |
static unsigned int | GetGlobalDefaultNumberOfThreads () |
Set/Get the default threader used for process objects. More... | |
Protected Member Functions inherited from itk::simple::ImageFilter | |
void | CheckImageMatchingDimension (const Image &image1, const Image &image2, const std::string &image2Name) |
void | CheckImageMatchingPixelType (const Image &image1, const Image &image2, const std::string &image2Name) |
void | CheckImageMatchingSize (const Image &image1, const Image &image2, const std::string &image2Name) |
Protected Member Functions inherited from itk::simple::ProcessObject | |
virtual unsigned long | AddITKObserver (const itk::EventObject &, itk::Command *) |
virtual itk::ProcessObject * | GetActiveProcess () |
virtual void | OnActiveProcessDelete () |
virtual void | onCommandDelete (const itk::simple::Command *cmd) noexcept |
virtual void | PreUpdate (itk::ProcessObject *p) |
virtual void | RemoveITKObserver (EventCommand &e) |
Protected Member Functions inherited from itk::simple::NonCopyable | |
NonCopyable ()=default | |
NonCopyable (const NonCopyable &)=delete | |
NonCopyable & | operator= (const NonCopyable &)=delete |
Static Protected Member Functions inherited from itk::simple::ImageFilter | |
template<class TImageType > | |
static void | FixNonZeroIndex (TImageType *img) |
Static Protected Member Functions inherited from itk::simple::ProcessObject | |
template<class TImageType > | |
static TImageType::ConstPointer | CastImageToITK (const Image &img) |
template<class TPixelType , unsigned int VImageDimension, unsigned int VLength, template< typename, unsigned int > class TVector> | |
static Image | CastITKToImage (itk::Image< TVector< TPixelType, VLength >, VImageDimension > *img) |
template<unsigned int VImageDimension, unsigned int VLength, template< unsigned int > class TVector> | |
static Image | CastITKToImage (itk::Image< TVector< VLength >, VImageDimension > *img) |
template<class TImageType > | |
static Image | CastITKToImage (TImageType *img) |
static const itk::EventObject & | GetITKEventObject (EventEnum e) |
template<typename T > | |
static std::ostream & | ToStringHelper (std::ostream &os, const T &v) |
static std::ostream & | ToStringHelper (std::ostream &os, const char &v) |
static std::ostream & | ToStringHelper (std::ostream &os, const signed char &v) |
static std::ostream & | ToStringHelper (std::ostream &os, const unsigned char &v) |
|
private |
Setup for member function dispatching
Definition at line 175 of file sitkFastMarchingBaseImageFilter.h.
Define the pixels types supported by this filter
Definition at line 103 of file sitkFastMarchingBaseImageFilter.h.
Definition at line 93 of file sitkFastMarchingBaseImageFilter.h.
Enumerator | |
---|---|
Nothing | |
NoHandles | |
Strict |
Definition at line 141 of file sitkFastMarchingBaseImageFilter.h.
|
virtual |
Destructor
itk::simple::FastMarchingBaseImageFilter::FastMarchingBaseImageFilter | ( | ) |
Default Constructor that takes no arguments and initializes default parameters
|
inline |
Add TrialPoints point.
Definition at line 116 of file sitkFastMarchingBaseImageFilter.h.
References itk::point().
|
inline |
Remove all TrialPoints points.
Definition at line 118 of file sitkFastMarchingBaseImageFilter.h.
Execute the filter on the input image
|
private |
|
inline |
Definition at line 158 of file sitkFastMarchingBaseImageFilter.h.
|
inlinevirtual |
Name of this class
Implements itk::simple::ProcessObject.
Definition at line 161 of file sitkFastMarchingBaseImageFilter.h.
|
inline |
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.
Definition at line 129 of file sitkFastMarchingBaseImageFilter.h.
|
inline |
Get the Fast Marching algorithm Stopping Value.
Definition at line 139 of file sitkFastMarchingBaseImageFilter.h.
|
inline |
Definition at line 149 of file sitkFastMarchingBaseImageFilter.h.
|
inline |
Get the container of Trial Points representing the initial front.
Definition at line 114 of file sitkFastMarchingBaseImageFilter.h.
|
inline |
Set the initial seed values for corresponding trial point.
Definition at line 154 of file sitkFastMarchingBaseImageFilter.h.
|
inline |
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.
Definition at line 124 of file sitkFastMarchingBaseImageFilter.h.
|
inline |
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.
Definition at line 134 of file sitkFastMarchingBaseImageFilter.h.
|
inline |
Definition at line 145 of file sitkFastMarchingBaseImageFilter.h.
|
inline |
Set the container of Trial Points representing the initial front. Trial points are represented as a VectorContainer of LevelSetNodes.
Definition at line 109 of file sitkFastMarchingBaseImageFilter.h.
|
virtual |
Print ourselves out
Reimplemented from itk::simple::ProcessObject.
|
friend |
Definition at line 179 of file sitkFastMarchingBaseImageFilter.h.
|
private |
Definition at line 193 of file sitkFastMarchingBaseImageFilter.h.
|
private |
Definition at line 181 of file sitkFastMarchingBaseImageFilter.h.
|
private |
Definition at line 186 of file sitkFastMarchingBaseImageFilter.h.
|
private |
Definition at line 188 of file sitkFastMarchingBaseImageFilter.h.
|
private |
Definition at line 191 of file sitkFastMarchingBaseImageFilter.h.
|
private |
Definition at line 184 of file sitkFastMarchingBaseImageFilter.h.