#include <itkRegionBasedLevelSetFunction.h>
LevelSet function that computes a speed image based on regional integrals.
This class implements a level set function that computes the speed image by integrating values on the image domain.
Based on the paper [22].
This code was taken from the Insight Journal paper [87] that is based on the papers [86] and [85].
NOTE: The convention followed is inside of the level-set function is negative and outside is positive.
Definition at line 49 of file itkRegionBasedLevelSetFunction.h.
Classes | |
struct | GlobalDataStruct |
Public Types | |
using | ConstPointer = SmartPointer<const Self> |
using | FeatureImageConstPointer = typename FeatureImageType::ConstPointer |
using | FeatureImageType = TFeature |
using | FeatureIndexType = typename FeatureImageType::IndexType |
using | FeatureOffsetType = typename FeatureImageType::OffsetType |
using | FeaturePixelType = typename FeatureImageType::PixelType |
using | FeatureSpacingType = typename FeatureImageType::SpacingType |
using | HeavisideFunctionConstPointer = typename HeavisideFunctionType::ConstPointer |
using | HeavisideFunctionType = HeavisideStepFunctionBase<InputPixelType, InputPixelType> |
using | InputImageConstPointer = typename InputImageType::ConstPointer |
using | InputImagePointer = typename InputImageType::Pointer |
using | InputImageType = TInput |
using | InputIndexType = typename InputImageType::IndexType |
using | InputIndexValueType = typename InputImageType::IndexValueType |
using | InputPixelType = typename InputImageType::PixelType |
using | InputPointType = typename InputImageType::PointType |
using | InputRegionType = typename InputImageType::RegionType |
using | InputSizeType = typename InputImageType::SizeType |
using | InputSizeValueType = typename InputImageType::SizeValueType |
using | Pointer = SmartPointer<Self> |
using | ScalarValueType = PixelType |
using | Self = RegionBasedLevelSetFunction |
using | SharedDataPointer = typename SharedDataType::Pointer |
using | SharedDataType = TSharedData |
using | Superclass = FiniteDifferenceFunction<TInput> |
using | TimeStepType = double |
using | VectorType = FixedArray<ScalarValueType, Self::ImageDimension> |
![]() | |
using | ConstPointer |
using | DefaultBoundaryConditionType |
using | FloatOffsetType |
using | ImageType |
using | NeighborhoodScalesType |
using | NeighborhoodType |
using | PixelRealType |
using | PixelType |
using | Pointer |
using | RadiusType |
using | Self |
using | Superclass |
using | TimeStepType |
![]() | |
using | ConstPointer = SmartPointer<const Self> |
using | Pointer = SmartPointer<Self> |
using | Self = LightObject |
Static Public Attributes | |
static constexpr unsigned int | ImageDimension = Superclass::ImageDimension |
![]() | |
static constexpr unsigned int | ImageDimension |
static constexpr unsigned int | ImageDimension |
Static Protected Member Functions | |
static VectorType | InitializeZeroVectorConstant () |
Static Protected Attributes | |
static double | m_DT |
static double | m_WaveDT |
static VectorType | m_ZeroVectorConstant |
Additional Inherited Members | |
![]() | |
static void | BreakOnError () |
static Pointer | New () |
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ConstPointer = SmartPointer<const Self> |
Definition at line 58 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::FeatureImageConstPointer = typename FeatureImageType::ConstPointer |
Definition at line 120 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::FeatureImageType = TFeature |
Definition at line 119 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::FeatureIndexType = typename FeatureImageType::IndexType |
Definition at line 122 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::FeatureOffsetType = typename FeatureImageType::OffsetType |
Definition at line 124 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::FeaturePixelType = typename FeatureImageType::PixelType |
Definition at line 121 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::FeatureSpacingType = typename FeatureImageType::SpacingType |
Definition at line 123 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::HeavisideFunctionConstPointer = typename HeavisideFunctionType::ConstPointer |
Definition at line 130 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::HeavisideFunctionType = HeavisideStepFunctionBase<InputPixelType, InputPixelType> |
Definition at line 129 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputImageConstPointer = typename InputImageType::ConstPointer |
Definition at line 109 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputImagePointer = typename InputImageType::Pointer |
Definition at line 110 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputImageType = TInput |
Definition at line 108 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputIndexType = typename InputImageType::IndexType |
Definition at line 112 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputIndexValueType = typename InputImageType::IndexValueType |
Definition at line 113 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputPixelType = typename InputImageType::PixelType |
Definition at line 111 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputPointType = typename InputImageType::PointType |
Definition at line 117 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputRegionType = typename InputImageType::RegionType |
Definition at line 116 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputSizeType = typename InputImageType::SizeType |
Definition at line 114 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputSizeValueType = typename InputImageType::SizeValueType |
Definition at line 115 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::Pointer = SmartPointer<Self> |
Definition at line 57 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ScalarValueType = PixelType |
Definition at line 71 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::Self = RegionBasedLevelSetFunction |
Standard class type aliases.
Definition at line 55 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::SharedDataPointer = typename SharedDataType::Pointer |
Definition at line 127 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::SharedDataType = TSharedData |
Definition at line 126 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::Superclass = FiniteDifferenceFunction<TInput> |
Definition at line 56 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::TimeStepType = double |
Extract some parameters from the superclass.
Definition at line 68 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::VectorType = FixedArray<ScalarValueType, Self::ImageDimension> |
Definition at line 76 of file itkRegionBasedLevelSetFunction.h.
|
protected |
|
overrideprotecteddefault |
|
inlinevirtual |
Advection field. Default implementation returns a vector of zeros.
Definition at line 208 of file itkRegionBasedLevelSetFunction.h.
|
inlinevirtual |
This method must be defined in a subclass to implement a working function object. This method is called before the solver begins its work to produce the speed image used as the level set function's Advection field term. See LevelSetFunction for more information.
Definition at line 357 of file itkRegionBasedLevelSetFunction.h.
|
virtual |
|
protectedpure virtual |
|
protected |
Compute the global term as a combination of the internal, external, overlapping and volume regularization terms.
|
overridevirtual |
Computes the time step for an update given a global data structure. The data used in the computation may take different forms depending on the nature of the equations. This global data cannot be kept in the instance of the equation object itself since the equation object must remain stateless for thread safety. The global data is therefore managed for each thread by the finite difference solver filters.
Implements itk::FiniteDifferenceFunction< TInput >.
|
protected |
Compute Hessian Matrix.
|
protected |
|
protectedpure virtual |
|
protected |
Compute the laplacian term.
Compute the laplacian
|
protectedpure virtual |
Compute the overlap term.
[in] | featIndex | |
[out] | pr | = \( \prod_{i \neq j} H(\phi_i)\) |
Implemented in itk::ScalarRegionBasedLevelSetFunction< TInputImage, TFeatureImage, TSharedData >.
|
protectedpure virtual |
Compute Parameters for the inner and outer parts.
|
overridevirtual |
Compute the equation value.
Implements itk::FiniteDifferenceFunction< TInput >.
|
protected |
Compute the overlap term.
|
inlinevirtual |
Curvature speed can be used to spatially modify the effects of curvature . The default implementation returns one.
Definition at line 347 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Definition at line 279 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Definition at line 220 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Definition at line 268 of file itkRegionBasedLevelSetFunction.h.
|
inlinevirtual |
Definition at line 190 of file itkRegionBasedLevelSetFunction.h.
|
inlineoverridevirtual |
Returns a pointer to a global data structure that is passed to this object from the solver at each calculation. The idea is that the solver holds the state of any global values needed to calculate the time step, while the equation object performs the actual calculations.
The global data should also be initialized in this method.
Implements itk::FiniteDifferenceFunction< TInput >.
Definition at line 169 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Definition at line 232 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Definition at line 244 of file itkRegionBasedLevelSetFunction.h.
|
overridevirtual |
Reimplemented from itk::FiniteDifferenceFunction< TInput >.
Reimplemented in itk::ScalarRegionBasedLevelSetFunction< TInputImage, TFeatureImage, TSharedData >.
|
inline |
Definition at line 256 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Definition at line 291 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Definition at line 315 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Definition at line 303 of file itkRegionBasedLevelSetFunction.h.
|
inlinevirtual |
Definition at line 139 of file itkRegionBasedLevelSetFunction.h.
|
staticprotected |
This method's only purpose is to initialize the zero vector constant.
|
inlinevirtual |
Laplacian smoothing speed can be used to spatially modify the effects of laplacian smoothing of the level set function.
Definition at line 339 of file itkRegionBasedLevelSetFunction.h.
|
inlineoverridevirtual |
When the finite difference solver filter has finished using a global data pointer, it passes it to this method, which frees the memory.
The solver cannot free the memory because it does not know the type to which the pointer points.
Implements itk::FiniteDifferenceFunction< TInput >.
Definition at line 328 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Definition at line 274 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Nu. Area regularization values
Definition at line 215 of file itkRegionBasedLevelSetFunction.h.
|
inlinevirtual |
Gamma. Scales all curvature weight values
Definition at line 263 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Definition at line 133 of file itkRegionBasedLevelSetFunction.h.
|
inlinevirtual |
Definition at line 195 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Set function id.
Definition at line 322 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Definition at line 184 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Lambda1. Internal intensity difference weight
Definition at line 227 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Lambda2. External intensity difference weight
Definition at line 239 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Gamma. Overlap penalty
Definition at line 251 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Weight of the laplacian smoothing term
Definition at line 286 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Definition at line 159 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Pixel Volume = Number of pixels inside the level-set
Definition at line 310 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Volume matching weight.
Definition at line 298 of file itkRegionBasedLevelSetFunction.h.
void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::UpdateSharedData | ( | bool | forceUpdate | ) |
|
protectedpure virtual |
Update and save the inner and outer parameters in the shared data structure.
|
staticconstexpr |
Definition at line 60 of file itkRegionBasedLevelSetFunction.h.
|
protected |
Definition at line 395 of file itkRegionBasedLevelSetFunction.h.
|
protected |
Area regularization weight
Definition at line 375 of file itkRegionBasedLevelSetFunction.h.
|
protected |
Definition at line 403 of file itkRegionBasedLevelSetFunction.h.
|
protected |
Curvature Regularization Weight
Definition at line 393 of file itkRegionBasedLevelSetFunction.h.
|
protected |
Definition at line 372 of file itkRegionBasedLevelSetFunction.h.
|
staticprotected |
Definition at line 408 of file itkRegionBasedLevelSetFunction.h.
|
protected |
The feature image
Definition at line 368 of file itkRegionBasedLevelSetFunction.h.
|
protected |
Definition at line 400 of file itkRegionBasedLevelSetFunction.h.
|
protected |
The initial level set image
Definition at line 365 of file itkRegionBasedLevelSetFunction.h.
|
protected |
Definition at line 405 of file itkRegionBasedLevelSetFunction.h.
|
protected |
Internal functional of the level set weight
Definition at line 378 of file itkRegionBasedLevelSetFunction.h.
|
protected |
External functional of the level set weight
Definition at line 381 of file itkRegionBasedLevelSetFunction.h.
|
protected |
Overlap Penalty Weight
Definition at line 384 of file itkRegionBasedLevelSetFunction.h.
|
protected |
Laplacian Regularization Weight
Definition at line 398 of file itkRegionBasedLevelSetFunction.h.
|
protected |
Definition at line 370 of file itkRegionBasedLevelSetFunction.h.
|
protected |
Definition at line 468 of file itkRegionBasedLevelSetFunction.h.
|
protected |
Volume Constraint in pixels
Definition at line 390 of file itkRegionBasedLevelSetFunction.h.
|
protected |
Volume Regularization Weight
Definition at line 387 of file itkRegionBasedLevelSetFunction.h.
|
staticprotected |
Definition at line 407 of file itkRegionBasedLevelSetFunction.h.
|
protected |
Definition at line 404 of file itkRegionBasedLevelSetFunction.h.
|
staticprotected |
Zero vector constant.
Definition at line 476 of file itkRegionBasedLevelSetFunction.h.
|
protected |
Definition at line 402 of file itkRegionBasedLevelSetFunction.h.