ITK
5.2.0
Insight Toolkit
|
#include <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 | FloatOffsetType = typename Superclass::FloatOffsetType |
using | HeavisideFunctionConstPointer = typename HeavisideFunctionType::ConstPointer |
using | HeavisideFunctionType = HeavisideStepFunctionBase< InputPixelType, InputPixelType > |
using | ImageType = typename Superclass::ImageType |
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 | NeighborhoodScalesType = typename Superclass::NeighborhoodScalesType |
using | NeighborhoodType = typename Superclass::NeighborhoodType |
using | PixelType = typename Superclass::PixelType |
using | Pointer = SmartPointer< Self > |
using | RadiusType = typename Superclass::RadiusType |
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 > |
Public Types inherited from itk::FiniteDifferenceFunction< TInput > | |
using | ConstPointer = SmartPointer< const Self > |
using | DefaultBoundaryConditionType = ZeroFluxNeumannBoundaryCondition< ImageType > |
using | FloatOffsetType = Vector< float, Self::ImageDimension > |
using | ImageType = TInput |
using | NeighborhoodScalesType = Vector< PixelRealType, Self::ImageDimension > |
using | NeighborhoodType = ConstNeighborhoodIterator< TInput, DefaultBoundaryConditionType > |
using | PixelRealType = double |
using | PixelType = typename ImageType::PixelType |
using | Pointer = SmartPointer< Self > |
using | RadiusType = typename ConstNeighborhoodIterator< TInput >::RadiusType |
using | Self = FiniteDifferenceFunction |
using | Superclass = LightObject |
using | TimeStepType = double |
Public Types inherited from itk::LightObject | |
using | ConstPointer = SmartPointer< const Self > |
using | Pointer = SmartPointer< Self > |
using | Self = LightObject |
Public Member Functions | |
virtual VectorType | AdvectionField (const NeighborhoodType &, const FloatOffsetType &, GlobalDataStruct *=0) const |
TimeStepType | ComputeGlobalTimeStep (void *GlobalData) const override |
PixelType | ComputeUpdate (const NeighborhoodType &neighborhood, void *globalData, const FloatOffsetType &=FloatOffsetType(0.0)) override |
virtual const FeatureImageType * | GetFeatureImage () const |
void * | GetGlobalDataPointer () const override |
virtual const char * | GetNameOfClass () const |
virtual void | Initialize (const RadiusType &r) |
void | SetDomainFunction (const HeavisideFunctionType *f) |
virtual void | SetFeatureImage (const FeatureImageType *f) |
void | SetInitialImage (InputImageType *f) |
void | SetSharedData (SharedDataPointer sharedDataIn) |
void | UpdateSharedData (bool forceUpdate) |
Public Member Functions inherited from itk::FiniteDifferenceFunction< TInput > | |
const NeighborhoodScalesType | ComputeNeighborhoodScales () const |
virtual PixelType | ComputeUpdate (const NeighborhoodType &neighborhood, void *globalData, const FloatOffsetType &offset=FloatOffsetType(0.0))=0 |
const RadiusType & | GetRadius () const |
void | GetScaleCoefficients (PixelRealType vals[ImageDimension]) const |
virtual void | InitializeIteration () |
void | SetRadius (const RadiusType &r) |
void | SetScaleCoefficients (const PixelRealType vals[ImageDimension]) |
Public Member Functions inherited from itk::LightObject | |
Pointer | Clone () const |
virtual Pointer | CreateAnother () const |
virtual void | Delete () |
virtual int | GetReferenceCount () const |
void | Print (std::ostream &os, Indent indent=0) const |
virtual void | Register () const |
virtual void | SetReferenceCount (int) |
virtual void | UnRegister () const noexcept |
Additional Inherited Members | |
Static Public Member Functions inherited from itk::LightObject | |
static void | BreakOnError () |
static Pointer | New () |
Protected Member Functions inherited from itk::FiniteDifferenceFunction< TInput > | |
FiniteDifferenceFunction () | |
void | PrintSelf (std::ostream &os, Indent indent) const override |
~FiniteDifferenceFunction () override=default | |
Protected Member Functions inherited from itk::LightObject | |
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 () |
Protected Attributes inherited from itk::FiniteDifferenceFunction< TInput > | |
RadiusType | m_Radius |
PixelRealType | m_ScaleCoefficients [ImageDimension] |
Protected Attributes inherited from itk::LightObject | |
std::atomic< int > | m_ReferenceCount |
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:
"An active contour model without edges" T. Chan and L. Vese. In Scale-Space Theories in Computer Vision, pages 141-151, 1999.
This code was taken from the Insight Journal paper:
"Cell Tracking using Coupled Active Surfaces for Nuclei and Membranes" http://www.insight-journal.org/browse/publication/642 https://hdl.handle.net/10380/3055
That is based on the papers:
"Level Set Segmentation: Active Contours without edge" http://www.insight-journal.org/browse/publication/322 https://hdl.handle.net/1926/1532 and "Level set segmentation using coupled active surfaces" http://www.insight-journal.org/browse/publication/323 https://hdl.handle.net/1926/1533
NOTE: The convention followed is inside of the level-set function is negative and outside is positive.
Definition at line 67 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ConstPointer = SmartPointer<const Self> |
Definition at line 76 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::FeatureImageConstPointer = typename FeatureImageType::ConstPointer |
Definition at line 138 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::FeatureImageType = TFeature |
Definition at line 137 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::FeatureIndexType = typename FeatureImageType::IndexType |
Definition at line 140 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::FeatureOffsetType = typename FeatureImageType::OffsetType |
Definition at line 142 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::FeaturePixelType = typename FeatureImageType::PixelType |
Definition at line 139 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::FeatureSpacingType = typename FeatureImageType::SpacingType |
Definition at line 141 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::FloatOffsetType = typename Superclass::FloatOffsetType |
Definition at line 93 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::HeavisideFunctionConstPointer = typename HeavisideFunctionType::ConstPointer |
Definition at line 148 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::HeavisideFunctionType = HeavisideStepFunctionBase<InputPixelType, InputPixelType> |
Definition at line 147 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ImageType = typename Superclass::ImageType |
Definition at line 87 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputImageConstPointer = typename InputImageType::ConstPointer |
Definition at line 127 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputImagePointer = typename InputImageType::Pointer |
Definition at line 128 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputImageType = TInput |
Definition at line 126 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputIndexType = typename InputImageType::IndexType |
Definition at line 130 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputIndexValueType = typename InputImageType::IndexValueType |
Definition at line 131 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputPixelType = typename InputImageType::PixelType |
Definition at line 129 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputPointType = typename InputImageType::PointType |
Definition at line 135 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputRegionType = typename InputImageType::RegionType |
Definition at line 134 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputSizeType = typename InputImageType::SizeType |
Definition at line 132 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputSizeValueType = typename InputImageType::SizeValueType |
Definition at line 133 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::NeighborhoodScalesType = typename Superclass::NeighborhoodScalesType |
Definition at line 92 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::NeighborhoodType = typename Superclass::NeighborhoodType |
Definition at line 91 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::PixelType = typename Superclass::PixelType |
Definition at line 88 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::Pointer = SmartPointer<Self> |
Definition at line 75 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::RadiusType = typename Superclass::RadiusType |
Definition at line 90 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ScalarValueType = PixelType |
Definition at line 89 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::Self = RegionBasedLevelSetFunction |
Standard class type aliases.
Definition at line 73 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::SharedDataPointer = typename SharedDataType::Pointer |
Definition at line 145 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::SharedDataType = TSharedData |
Definition at line 144 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::Superclass = FiniteDifferenceFunction<TInput> |
Definition at line 74 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::TimeStepType = double |
Extract some parameters from the superclass.
Definition at line 86 of file itkRegionBasedLevelSetFunction.h.
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::VectorType = FixedArray<ScalarValueType, Self::ImageDimension> |
Definition at line 94 of file itkRegionBasedLevelSetFunction.h.
|
protected |
The initial level set image
|
overrideprotecteddefault |
The initial level set image
|
inlinevirtual |
Advection field. Default implementation returns a vector of zeros.
Definition at line 226 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 383 of file itkRegionBasedLevelSetFunction.h.
|
virtual |
The initial level set image
|
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 |
The initial level set image
|
protectedpure virtual |
|
protected |
Compute the laplacian term.
Compute the laplacian
|
protectedpure virtual |
Compute the overlap term.
[in] | featIndex | |
[out] | pr | = |
|
protectedpure virtual |
Compute Parameters for the inner and outer parts.
Implemented in itk::ScalarChanAndVeseLevelSetFunction< TInputImage, TFeatureImage, TSharedData >.
|
override |
Compute the equation value.
|
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 373 of file itkRegionBasedLevelSetFunction.h.
|
inline |
The initial level set image
Definition at line 302 of file itkRegionBasedLevelSetFunction.h.
|
inline |
The initial level set image
Definition at line 238 of file itkRegionBasedLevelSetFunction.h.
|
inline |
The initial level set image
Definition at line 290 of file itkRegionBasedLevelSetFunction.h.
|
inlinevirtual |
Definition at line 208 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 187 of file itkRegionBasedLevelSetFunction.h.
|
inline |
The initial level set image
Definition at line 251 of file itkRegionBasedLevelSetFunction.h.
|
inline |
The initial level set image
Definition at line 264 of file itkRegionBasedLevelSetFunction.h.
|
virtual |
Run-time type information (and related methods)
Reimplemented from itk::FiniteDifferenceFunction< TInput >.
Reimplemented in itk::ScalarChanAndVeseLevelSetFunction< TInputImage, TFeatureImage, TSharedData >, and itk::ScalarRegionBasedLevelSetFunction< TInputImage, TFeatureImage, TSharedData >.
|
inline |
The initial level set image
Definition at line 277 of file itkRegionBasedLevelSetFunction.h.
|
inline |
The initial level set image
Definition at line 314 of file itkRegionBasedLevelSetFunction.h.
|
inline |
The initial level set image
Definition at line 340 of file itkRegionBasedLevelSetFunction.h.
|
inline |
The initial level set image
Definition at line 327 of file itkRegionBasedLevelSetFunction.h.
|
inlinevirtual |
Definition at line 157 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 365 of file itkRegionBasedLevelSetFunction.h.
|
inlineoverridevirtual |
The initial level set image
Implements itk::FiniteDifferenceFunction< TInput >.
Definition at line 354 of file itkRegionBasedLevelSetFunction.h.
|
inline |
The initial level set image
Definition at line 297 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Nu. Area regularization values
Definition at line 233 of file itkRegionBasedLevelSetFunction.h.
|
inlinevirtual |
Gamma. Scales all curvature weight values
Definition at line 285 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Definition at line 151 of file itkRegionBasedLevelSetFunction.h.
|
inlinevirtual |
Definition at line 213 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Set function id.
Definition at line 348 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Definition at line 202 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Lambda1. Internal intensity difference weight
Definition at line 246 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Lambda2. External intensity difference weight
Definition at line 259 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Gamma. Overlap penalty
Definition at line 272 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Weight of the laplacian smoothing term
Definition at line 309 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Definition at line 177 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Pixel Volume = Number of pixels inside the level-set
Definition at line 335 of file itkRegionBasedLevelSetFunction.h.
|
inline |
Volume matching weight.
Definition at line 322 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.
Implemented in itk::ScalarChanAndVeseLevelSetFunction< TInputImage, TFeatureImage, TSharedData >.
|
staticconstexpr |
Definition at line 78 of file itkRegionBasedLevelSetFunction.h.
|
protected |
The initial level set image
Definition at line 421 of file itkRegionBasedLevelSetFunction.h.
|
protected |
Area regularization weight
Definition at line 401 of file itkRegionBasedLevelSetFunction.h.
|
protected |
The initial level set image
Definition at line 429 of file itkRegionBasedLevelSetFunction.h.
|
protected |
Curvature Regularization Weight
Definition at line 419 of file itkRegionBasedLevelSetFunction.h.
|
protected |
The initial level set image
Definition at line 398 of file itkRegionBasedLevelSetFunction.h.
|
staticprotected |
The initial level set image
Definition at line 434 of file itkRegionBasedLevelSetFunction.h.
|
protected |
The feature image
Definition at line 394 of file itkRegionBasedLevelSetFunction.h.
|
protected |
The initial level set image
Definition at line 426 of file itkRegionBasedLevelSetFunction.h.
|
protected |
The initial level set image
Definition at line 391 of file itkRegionBasedLevelSetFunction.h.
|
protected |
The initial level set image
Definition at line 431 of file itkRegionBasedLevelSetFunction.h.
|
protected |
Internal functional of the level set weight
Definition at line 404 of file itkRegionBasedLevelSetFunction.h.
|
protected |
External functional of the level set weight
Definition at line 407 of file itkRegionBasedLevelSetFunction.h.
|
protected |
Overlap Penalty Weight
Definition at line 410 of file itkRegionBasedLevelSetFunction.h.
|
protected |
Laplacian Regularization Weight
Definition at line 424 of file itkRegionBasedLevelSetFunction.h.
|
protected |
The initial level set image
Definition at line 396 of file itkRegionBasedLevelSetFunction.h.
|
protected |
The initial level set image
Definition at line 499 of file itkRegionBasedLevelSetFunction.h.
|
protected |
Volume Constraint in pixels
Definition at line 416 of file itkRegionBasedLevelSetFunction.h.
|
protected |
Volume Regularization Weight
Definition at line 413 of file itkRegionBasedLevelSetFunction.h.
|
staticprotected |
The initial level set image
Definition at line 433 of file itkRegionBasedLevelSetFunction.h.
|
protected |
The initial level set image
Definition at line 430 of file itkRegionBasedLevelSetFunction.h.
|
staticprotected |
Zero vector constant.
Definition at line 507 of file itkRegionBasedLevelSetFunction.h.
|
protected |
The initial level set image
Definition at line 428 of file itkRegionBasedLevelSetFunction.h.