ITK
4.4.0
Insight Segmentation and Registration Toolkit
|
#include <itkNarrowBandImageFilterBase.h>
This class implements a multi-threaded finite difference image to image solver that can be applied to an arbitrary list of pixels.
Definition at line 68 of file itkNarrowBandImageFilterBase.h.
Classes | |
struct | NarrowBandImageFilterBaseThreadStruct |
struct | ThreadRegionType |
Static Public Attributes | |
static const unsigned int | ImageDimension = Superclass::ImageDimension |
Static Public Attributes inherited from itk::FiniteDifferenceImageFilter< TInputImage, TOutputImage > | |
static const unsigned int | ImageDimension = OutputImageType::ImageDimension |
Static Public Attributes inherited from itk::InPlaceImageFilter< TInputImage, TOutputImage > | |
static const unsigned int | InputImageDimension = TInputImage::ImageDimension |
static const unsigned int | OutputImageDimension = TOutputImage::ImageDimension |
Static Public Attributes inherited from itk::ImageToImageFilter< TInputImage, TOutputImage > | |
static const unsigned int | InputImageDimension = TInputImage::ImageDimension |
static const unsigned int | OutputImageDimension = TOutputImage::ImageDimension |
Static Public Attributes inherited from itk::ImageSource< TOutputImage > | |
static const unsigned int | OutputImageDimension = TOutputImage::ImageDimension |
Protected Attributes | |
Barrier::Pointer | m_Barrier |
ValueType | m_IsoSurfaceValue |
NarrowBandPointer | m_NarrowBand |
std::vector< RegionType > | m_RegionList |
IdentifierType | m_ReinitializationFrequency |
IdentifierType | m_Step |
bool | m_Touched |
std::vector< bool > | m_TouchedForThread |
Protected Attributes inherited from itk::FiniteDifferenceImageFilter< TInputImage, TOutputImage > | |
IdentifierType | m_ElapsedIterations |
bool | m_IsInitialized |
bool | m_ManualReinitialization |
double | m_MaximumRMSError |
IdentifierType | m_NumberOfIterations |
double | m_RMSChange |
Private Member Functions | |
virtual void | AllocateUpdateBuffer () |
virtual void | ApplyUpdate (const TimeStepType &) |
virtual TimeStepType | CalculateChange () |
NarrowBandImageFilterBase (const Self &) | |
void | operator= (const Self &) |
virtual void | ThreadedApplyUpdate (const TimeStepType &dt, const ThreadRegionType ®ionToProcess, ThreadIdType threadId) |
virtual TimeStepType | ThreadedCalculateChange (const ThreadRegionType ®ionToProcess, ThreadIdType threadId) |
virtual void | ThreadedIterate (void *arg, ThreadIdType threadId) |
Static Private Member Functions | |
static ITK_THREAD_RETURN_TYPE | IterateThreaderCallback (void *arg) |
Additional Inherited Members | |
Static Public Member Functions inherited from itk::Object | |
static bool | GetGlobalWarningDisplay () |
static void | GlobalWarningDisplayOff () |
static void | GlobalWarningDisplayOn () |
static Pointer | New () |
static void | SetGlobalWarningDisplay (bool flag) |
Protected Types inherited from itk::ImageToImageFilter< TInputImage, TOutputImage > | |
typedef ImageToImageFilterDetail::ImageRegionCopier < itkGetStaticConstMacro(OutputImageDimension), itkGetStaticConstMacro(InputImageDimension) > | InputToOutputRegionCopierType |
typedef ImageToImageFilterDetail::ImageRegionCopier < itkGetStaticConstMacro(InputImageDimension), itkGetStaticConstMacro(OutputImageDimension) > | OutputToInputRegionCopierType |
Static Protected Member Functions inherited from itk::ImageSource< TOutputImage > | |
static const ImageRegionSplitterBase * | GetGlobalDefaultSplitter () |
static ITK_THREAD_RETURN_TYPE | ThreaderCallback (void *arg) |
typedef BandNode< IndexType, PixelType > itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >::BandNodeType |
This is the storage type for the nodes on the narrow band.
Definition at line 106 of file itkNarrowBandImageFilterBase.h.
typedef SmartPointer< const Self > itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >::ConstPointer |
Definition at line 77 of file itkNarrowBandImageFilterBase.h.
typedef Superclass::FiniteDifferenceFunctionType itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >::FiniteDifferenceFunctionType |
Definition at line 85 of file itkNarrowBandImageFilterBase.h.
typedef OutputImageType::IndexType itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >::IndexType |
The index type for the output image.
Definition at line 99 of file itkNarrowBandImageFilterBase.h.
typedef Superclass::InputImageType itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >::InputImageType |
Typedefs from the superclass
Definition at line 80 of file itkNarrowBandImageFilterBase.h.
typedef NarrowBandType::Iterator itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >::NarrowBandIterator |
Definition at line 112 of file itkNarrowBandImageFilterBase.h.
typedef NarrowBandType::Pointer itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >::NarrowBandPointer |
Definition at line 110 of file itkNarrowBandImageFilterBase.h.
typedef NarrowBand< BandNodeType > itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >::NarrowBandType |
The list type for storing the narrow band.
Definition at line 109 of file itkNarrowBandImageFilterBase.h.
typedef Superclass::OutputImageType itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >::OutputImageType |
Definition at line 84 of file itkNarrowBandImageFilterBase.h.
typedef Superclass::PixelType itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >::PixelType |
The pixel type of the output image will be used in computations. Inherited from the superclass.
Definition at line 93 of file itkNarrowBandImageFilterBase.h.
typedef SmartPointer< Self > itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >::Pointer |
Definition at line 76 of file itkNarrowBandImageFilterBase.h.
typedef NarrowBandType::RegionType itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >::RegionType |
Definition at line 111 of file itkNarrowBandImageFilterBase.h.
typedef NarrowBandImageFilterBase itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >::Self |
Standard class typedefs
Definition at line 74 of file itkNarrowBandImageFilterBase.h.
typedef FiniteDifferenceImageFilter< TInputImage, TOutputImage > itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >::Superclass |
Definition at line 75 of file itkNarrowBandImageFilterBase.h.
typedef Superclass::TimeStepType itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >::TimeStepType |
The value type of a time step. Inherited from the superclass.
Definition at line 96 of file itkNarrowBandImageFilterBase.h.
typedef OutputImageType::ValueType itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >::ValueType |
The data type used in numerical computations. Derived from the output image type.
Definition at line 103 of file itkNarrowBandImageFilterBase.h.
|
inlineprotected |
Definition at line 212 of file itkNarrowBandImageFilterBase.h.
|
inlineprotectedvirtual |
Definition at line 224 of file itkNarrowBandImageFilterBase.h.
|
private |
|
inlineprivatevirtual |
This method allocates a temporary update container in the subclass.
Implements itk::FiniteDifferenceImageFilter< TInputImage, TOutputImage >.
Definition at line 306 of file itkNarrowBandImageFilterBase.h.
|
inlineprivatevirtual |
This method is defined by a subclass to apply changes to the output from an update buffer and a time step value "dt".
dt | Time step value. |
Implements itk::FiniteDifferenceImageFilter< TInputImage, TOutputImage >.
Definition at line 323 of file itkNarrowBandImageFilterBase.h.
|
inlineprivatevirtual |
This method is defined by a subclass to populate an update buffer with changes for the pixels in the output. It returns a time step value to be used for the update.
Implements itk::FiniteDifferenceImageFilter< TInputImage, TOutputImage >.
Definition at line 331 of file itkNarrowBandImageFilterBase.h.
|
protected |
|
virtual |
This method can be defined in subclasses as needed to copy the input to the output. See DenseFiniteDifferenceImageFilter for an implementation.
Implements itk::FiniteDifferenceImageFilter< TInputImage, TOutputImage >.
|
inlinevirtual |
This is the virtual method called by Initialize to set the band of operation. It is left to the subclasses to define this functionality. This function can make use of above InsertNarrowBandNode function to create a band.
Reimplemented in itk::NarrowBandLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType, TOutputImage >, and itk::NarrowBandLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType, Image< TOutputPixelType, TInputImage::ImageDimension > >.
Definition at line 198 of file itkNarrowBandImageFilterBase.h.
|
protectedvirtual |
This is the default, high-level algorithm for calculating finite difference solutions. It calls virtual methods in its subclasses to implement the major steps of the algorithm.
Reimplemented from itk::FiniteDifferenceImageFilter< TInputImage, TOutputImage >.
Reimplemented in itk::NarrowBandLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType, TOutputImage >, itk::NarrowBandLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType, Image< TOutputPixelType, TInputImage::ImageDimension > >, and itk::NarrowBandCurvesLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >.
|
virtual |
Set/Get IsoSurfaceValue to use in the input image
|
virtual |
Run-time type information (and related methods)
Reimplemented from itk::FiniteDifferenceImageFilter< TInputImage, TOutputImage >.
Reimplemented in itk::NarrowBandLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType, TOutputImage >, itk::NarrowBandLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType, Image< TOutputPixelType, TInputImage::ImageDimension > >, itk::NarrowBandCurvesLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, and itk::NarrowBandThresholdSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >.
|
inline |
Get the narrow band inner radius.
Definition at line 188 of file itkNarrowBandImageFilterBase.h.
|
inline |
Get the narrow band total radius.
Definition at line 170 of file itkNarrowBandImageFilterBase.h.
|
protected |
This function returns a single region (of the narrow band list) for use in multi-threading
|
protectedvirtual |
This function clears the existing narrow band, calls CreateNarrowBand to create a band, and calls the SplitRegions function of NarrowBand to pre-partition the band for multi-threading.
Reimplemented from itk::FiniteDifferenceImageFilter< TInputImage, TOutputImage >.
|
protectedvirtual |
This method check the narrow band state each iteration and reinitialize the narrow band if it is appropriate calling CreateNarrowBand and SplitRegions to pre-partion the band for multi-threading.
Reimplemented from itk::FiniteDifferenceImageFilter< TInputImage, TOutputImage >.
Reimplemented in itk::NarrowBandLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType, TOutputImage >, and itk::NarrowBandLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType, Image< TOutputPixelType, TInputImage::ImageDimension > >.
|
inline |
Root Mean Square Change between successive iterations This function is used to insert a pixel index into the narrow band The entire narrow band can be constructed using this method. Usually, however, the narrow band is initialized and reinitialized automatically by the subclass.
Definition at line 126 of file itkNarrowBandImageFilterBase.h.
|
inline |
Definition at line 133 of file itkNarrowBandImageFilterBase.h.
|
inline |
Definition at line 142 of file itkNarrowBandImageFilterBase.h.
|
staticprivate |
This method gives support for a multithread iterative scheme.
|
private |
|
protectedvirtual |
This method allows deallocation of data and further post processing
Reimplemented from itk::FiniteDifferenceImageFilter< TInputImage, TOutputImage >.
|
protectedvirtual |
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::FiniteDifferenceImageFilter< TInputImage, TOutputImage >.
Reimplemented in itk::NarrowBandLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType, TOutputImage >, and itk::NarrowBandLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType, Image< TOutputPixelType, TInputImage::ImageDimension > >.
|
virtual |
Set/Get IsoSurfaceValue to use in the input image
|
inlinevirtual |
Definition at line 200 of file itkNarrowBandImageFilterBase.h.
|
inline |
Set the narrow band inner radius. The inner radius is the safe are where the level set can be computed. The default value is 1.
Definition at line 177 of file itkNarrowBandImageFilterBase.h.
|
inline |
Set the narrow band total radius. The narrow band width will be twice this value (positive and negative distance to the zero level set). The default value is 3.
Definition at line 159 of file itkNarrowBandImageFilterBase.h.
|
privatevirtual |
This method applies changes from the m_NarrowBand to the output using the ThreadedApplyUpdate() method and a multithreading mechanism. "dt" is the time step to use for the update of each pixel.
|
privatevirtual |
This method populates m_NarrowBand with changes for each pixel in the output using the ThreadedCalculateChange() method and a multithreading mechanism. Returns value is a time step to be used for the update.
|
privatevirtual |
This method is a thread implementation of the iterative scheme implemented in itkFiniteDifferenceImageFilter::GenerateData. It relies on ThreadedApplyUpdate and ThreadedCalculateChange to update the solution at every iteration.
|
protected |
Thread synchronization methods.
|
static |
Dimensionality of input and output data is assumed to be the same. It is inherited from the superclass.
Definition at line 89 of file itkNarrowBandImageFilterBase.h.
|
protected |
Definition at line 286 of file itkNarrowBandImageFilterBase.h.
Referenced by itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType, TInputImage::ImageDimension > >::NarrowBandImageFilterBase().
|
protected |
Definition at line 284 of file itkNarrowBandImageFilterBase.h.
Referenced by itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType, TInputImage::ImageDimension > >::NarrowBandImageFilterBase().
|
protected |
Definition at line 227 of file itkNarrowBandImageFilterBase.h.
Referenced by itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType, TInputImage::ImageDimension > >::GetNarrowBandInnerRadius(), itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType, TInputImage::ImageDimension > >::GetNarrowBandTotalRadius(), itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType, TInputImage::ImageDimension > >::InsertNarrowBandNode(), itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType, TInputImage::ImageDimension > >::NarrowBandImageFilterBase(), itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType, TInputImage::ImageDimension > >::SetNarrowBand(), itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType, TInputImage::ImageDimension > >::SetNarrowBandInnerRadius(), and itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType, TInputImage::ImageDimension > >::SetNarrowBandTotalRadius().
|
protected |
A list of subregions of the narrowband which are passed to each thread for parallel processing.
Definition at line 243 of file itkNarrowBandImageFilterBase.h.
|
protected |
Definition at line 277 of file itkNarrowBandImageFilterBase.h.
Referenced by itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType, TInputImage::ImageDimension > >::NarrowBandImageFilterBase().
|
protected |
Definition at line 278 of file itkNarrowBandImageFilterBase.h.
Referenced by itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType, TInputImage::ImageDimension > >::NarrowBandImageFilterBase().
|
protected |
Definition at line 280 of file itkNarrowBandImageFilterBase.h.
Referenced by itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType, TInputImage::ImageDimension > >::NarrowBandImageFilterBase().
|
protected |
Definition at line 282 of file itkNarrowBandImageFilterBase.h.