template<typename TInputImage, typename TOutputImage>
class itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >
This class implements the fourth order level set PDE framework.
- This class adds a ProcessNormals method to SparseFieldLevelSetImageFilter class. The ProcessNormals method uses the ImplicitManifoldNormalDiffusionFilter class to generate a SparseImage of filtered normal vectors. We make a copy of the current state of the output image (also referred to as level set image) for this class and pass it to ImplicitManifoldNormalDiffusionFilter. That class computes the normal vectors to the level set image and filters them. The output is in the form of a sparse image templated with the NormalBandNode type. We then compute curvatures from that output and store them in the SparseImage as well. This SparseImage is passed onto the LevelSetFunctionWithRefitTerm filter class to be used as a target in the propagation term.
- INPUT and OUTPUT
- Same as SparseFieldLevelSetImageFilter
- PARAMETERS
- MaxRefitIteration sets the maximum number of allowable iterations between calls to ProcessNormals. The decision of when to call the ProcessNormals method is made in InitializeIteration according to a few criteria one of which is this maximum number of iterations.
- MaxNormalIteration sets the maximum number of diffusion iterations on the normals to be performed by the ImplicitManifoldNormalDiffusionFilter class. Please read the documentation for that class.
- CurvatureBandWidth determines the width of the band to be processed in ImplicitManifoldNormalDiffusionFilter.
- RMSChangeNormalProcessTrigger provides another mechanism in InitializeIteration for calling the ProcessNormals method. Whenever the RMS change reported by SparseFieldLevelSetImageFilter falls below this parameter ProcessNormals is called regardless of whether MaxRefitIteration has been reached. This parameter could be used to speed up the algorithm; however, it can also effect the results. Use with caution. Default is 0 which does nothing.
- IMPORTANT
- Defaults for above parameters are set in the constructor. Users should not change these unless they have a good understanding of the algorithm.
- OTHER PARAMETERS
- NormalProcessType tells ImplicitManifoldNormalVectorFilter whether to use isotropic or anisotropic diffusion. A value of 0 means isotropic whereas a value of 1 means anisotropic diffusion. If this parameter is set to 1, NormalProcessConductance determines the level of detail preservation. Please read the documentation for ImplicitManifoldNormalVectorFilter and AnisotropicFourthOrderLevelSetImageFilter.
- NormalProcessUnsharpFlag turns unsharp masking on/off. If this parameter is turned on, then NormalProcessUnsharpWeight should be set. Please read the documentation for ImplicitManifoldNormalVectorFilter.
- IMPORTANT
- Users of this class must define the Halt function.
Definition at line 157 of file itkSparseFieldFourthOrderLevelSetImageFilter.h.
|
static Pointer | New () |
|
static bool | GetGlobalWarningDisplay () |
|
static void | GlobalWarningDisplayOff () |
|
static void | GlobalWarningDisplayOn () |
|
static Pointer | New () |
|
static void | SetGlobalWarningDisplay (bool flag) |
|
static void | BreakOnError () |
|
static Pointer | New () |
|
typedef
ImageToImageFilterDetail::ImageRegionCopier
< itkGetStaticConstMacro(OutputImageDimension),
itkGetStaticConstMacro(InputImageDimension) > | InputToOutputRegionCopierType |
|
typedef
ImageToImageFilterDetail::ImageRegionCopier
< itkGetStaticConstMacro(InputImageDimension),
itkGetStaticConstMacro(OutputImageDimension) > | OutputToInputRegionCopierType |
|
void | AllocateUpdateBuffer () override |
|
void | ApplyUpdate (const TimeStepType &dt) override |
|
TimeStepType | CalculateChange () override |
|
virtual ValueType | CalculateUpdateValue (const IndexType &, const TimeStepType &dt, const ValueType &value, const ValueType &change) |
|
void | ConstructActiveLayer () |
|
void | ConstructLayer (StatusType from, StatusType to) |
|
void | CopyInputToOutput () override |
|
virtual ValueType | GetValueOne () const |
|
virtual ValueType | GetValueZero () const |
|
void | Initialize () override |
|
void | InitializeActiveLayerValues () |
|
virtual void | InitializeBackgroundPixels () |
|
virtual void | PostProcessOutput () override |
|
void | ProcessOutsideList (LayerType *OutsideList, StatusType ChangeToStatus) |
|
void | ProcessStatusList (LayerType *InputList, LayerType *OutputList, StatusType ChangeToStatus, StatusType SearchForStatus) |
|
void | PropagateAllLayerValues () |
|
void | PropagateLayerValues (StatusType from, StatusType to, StatusType promote, int InOrOut) |
|
| SparseFieldLevelSetImageFilter () |
|
void | UpdateActiveLayerValues (TimeStepType dt, LayerType *StatusUpList, LayerType *StatusDownList) |
|
| ~SparseFieldLevelSetImageFilter () |
|
| FiniteDifferenceImageFilter () |
|
virtual void | GenerateData () override |
|
virtual void | GenerateInputRequestedRegion () override |
|
virtual bool | Halt () |
|
virtual TimeStepType | ResolveTimeStep (const std::vector< TimeStepType > &timeStepList, const std::vector< bool > &valid) const |
|
virtual void | SetElapsedIterations (IdentifierType _arg) |
|
virtual bool | ThreadedHalt (void *) |
|
virtual | ~FiniteDifferenceImageFilter () |
|
virtual void | AllocateOutputs () override |
|
virtual bool | GetRunningInPlace () const |
|
| InPlaceImageFilter () |
|
virtual void | ReleaseInputs () override |
|
| ~InPlaceImageFilter () |
|
virtual void | CallCopyInputRegionToOutputRegion (OutputImageRegionType &destRegion, const InputImageRegionType &srcRegion) |
|
virtual void | CallCopyOutputRegionToInputRegion (InputImageRegionType &destRegion, const OutputImageRegionType &srcRegion) |
|
| ImageToImageFilter () |
|
virtual void | VerifyInputInformation () override |
|
| ~ImageToImageFilter () |
|
void | PushBackInput (const DataObject *input) override |
|
void | PushFrontInput (const DataObject *input) override |
|
virtual void | AfterThreadedGenerateData () |
|
virtual void | BeforeThreadedGenerateData () |
|
virtual const
ImageRegionSplitterBase * | GetImageRegionSplitter () const |
|
| ImageSource () |
|
virtual unsigned int | SplitRequestedRegion (unsigned int i, unsigned int pieces, OutputImageRegionType &splitRegion) |
|
virtual void | ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId) |
|
virtual | ~ImageSource () |
|
virtual void | AddInput (DataObject *input) |
|
virtual void | AddOutput (DataObject *output) |
|
bool | AddRequiredInputName (const DataObjectIdentifierType &) |
|
bool | AddRequiredInputName (const DataObjectIdentifierType &, DataObjectPointerArraySizeType idx) |
|
virtual void | CacheInputReleaseDataFlags () |
|
virtual void | GenerateOutputInformation () |
|
virtual void | GenerateOutputRequestedRegion (DataObject *output) |
|
DataObject * | GetInput (const DataObjectIdentifierType &key) |
|
const DataObject * | GetInput (const DataObjectIdentifierType &key) const |
|
virtual const
DataObjectPointerArraySizeType & | GetNumberOfRequiredInputs () const |
|
virtual const
DataObjectPointerArraySizeType & | GetNumberOfRequiredOutputs () const |
|
bool | IsIndexedInputName (const DataObjectIdentifierType &) const |
|
bool | IsIndexedOutputName (const DataObjectIdentifierType &) const |
|
bool | IsRequiredInputName (const DataObjectIdentifierType &) const |
|
| itkLegacyMacro (virtual void RemoveOutput(DataObject *output)) |
|
| itkLegacyMacro (void SetNumberOfOutputs(DataObjectPointerArraySizeType num)) |
|
| itkLegacyMacro (virtual void RemoveInput(DataObject *input)) |
|
| itkLegacyMacro (void SetNumberOfInputs(DataObjectPointerArraySizeType num)) |
|
DataObjectPointerArraySizeType | MakeIndexFromInputName (const DataObjectIdentifierType &name) const |
|
DataObjectPointerArraySizeType | MakeIndexFromOutputName (const DataObjectIdentifierType &name) const |
|
DataObjectIdentifierType | MakeNameFromInputIndex (DataObjectPointerArraySizeType idx) const |
|
DataObjectIdentifierType | MakeNameFromOutputIndex (DataObjectPointerArraySizeType idx) const |
|
| ProcessObject () |
|
virtual void | PropagateResetPipeline () |
|
virtual void | RemoveInput (const DataObjectIdentifierType &key) |
|
virtual void | RemoveInput (DataObjectPointerArraySizeType) |
|
virtual void | RemoveOutput (const DataObjectIdentifierType &key) |
|
virtual void | RemoveOutput (DataObjectPointerArraySizeType idx) |
|
bool | RemoveRequiredInputName (const DataObjectIdentifierType &) |
|
virtual void | RestoreInputReleaseDataFlags () |
|
virtual void | SetInput (const DataObjectIdentifierType &key, DataObject *input) |
|
virtual void | SetNthInput (DataObjectPointerArraySizeType num, DataObject *input) |
|
virtual void | SetNthOutput (DataObjectPointerArraySizeType num, DataObject *output) |
|
void | SetNumberOfIndexedInputs (DataObjectPointerArraySizeType num) |
|
void | SetNumberOfIndexedOutputs (DataObjectPointerArraySizeType num) |
|
virtual void | SetNumberOfRequiredInputs (DataObjectPointerArraySizeType) |
|
virtual void | SetNumberOfRequiredOutputs (DataObjectPointerArraySizeType _arg) |
|
virtual void | SetOutput (const DataObjectIdentifierType &key, DataObject *output) |
|
virtual void | SetPrimaryInput (DataObject *input) |
|
virtual void | SetPrimaryOutput (DataObject *output) |
|
void | SetRequiredInputNames (const NameArray &) |
|
virtual void | VerifyPreconditions () |
|
| ~ProcessObject () |
|
DataObject * | GetInput (DataObjectPointerArraySizeType idx) |
|
const DataObject * | GetInput (DataObjectPointerArraySizeType idx) const |
|
DataObject * | GetPrimaryInput () |
|
const DataObject * | GetPrimaryInput () const |
|
virtual void | SetPrimaryInputName (const DataObjectIdentifierType &key) |
|
virtual const char * | GetPrimaryInputName (void) const |
|
DataObject * | GetOutput (const DataObjectIdentifierType &key) |
|
const DataObject * | GetOutput (const DataObjectIdentifierType &key) const |
|
virtual void | SetPrimaryOutputName (const DataObjectIdentifierType &key) |
|
virtual const char * | GetPrimaryOutputName (void) const |
|
DataObject * | GetOutput (DataObjectPointerArraySizeType idx) |
|
const DataObject * | GetOutput (DataObjectPointerArraySizeType idx) const |
|
DataObject * | GetPrimaryOutput () |
|
const DataObject * | GetPrimaryOutput () const |
|
| Object () |
|
bool | PrintObservers (std::ostream &os, Indent indent) const |
|
virtual void | SetTimeStamp (const TimeStamp &time) |
|
virtual | ~Object () |
|
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_TYPE | ThreaderCallback (void *arg) |
|
double | m_ConstantGradientValue |
|
const InputImageType * | m_InputImage |
|
bool | m_InterpolateSurfaceLocation |
|
ValueType | m_IsoSurfaceValue |
|
LayerNodeStorageType::Pointer | m_LayerNodeStore |
|
LayerListType | m_Layers |
|
SparseFieldCityBlockNeighborList
< NeighborhoodIterator
< OutputImageType > > | m_NeighborList |
|
unsigned int | m_NumberOfLayers |
|
OutputImageType * | m_OutputImage |
|
OutputImageType::Pointer | m_ShiftedImage |
|
StatusImageType::Pointer | m_StatusImage |
|
UpdateBufferType | m_UpdateBuffer |
|
IdentifierType | m_ElapsedIterations |
|
bool | m_IsInitialized |
|
bool | m_ManualReinitialization |
|
double | m_MaximumRMSError |
|
IdentifierType | m_NumberOfIterations |
|
double | m_RMSChange |
|
TimeStamp | m_OutputInformationMTime |
|
bool | m_Updating |
|
AtomicInt< int > | m_ReferenceCount |
|
static StatusType | m_StatusActiveChangingDown |
|
static StatusType | m_StatusActiveChangingUp |
|
static StatusType | m_StatusBoundaryPixel |
|
static StatusType | m_StatusChanging |
|
static StatusType | m_StatusNull |
|
static ValueType | m_ValueOne |
|
static ValueType | m_ValueZero |
|