template<typename TInputImage, typename TFeatureImage, typename TSharedData = ConstrainedRegionBasedLevelSetFunctionSharedData< TInputImage, TFeatureImage, ScalarChanAndVeseLevelSetFunctionData<TInputImage, TFeatureImage>>>
class itk::ScalarChanAndVeseLevelSetFunction< TInputImage, TFeatureImage, TSharedData >
LevelSet function that computes a speed image based on regional integrals of probabilities.
This class implements a level set function that computes the speed image by integrating values on the image domain.
- Author
- Mosaliganti K., Smith B., Gelas A., Gouaillard A., Megason S.
Based on the papers:
"An active contour model without edges"
T. Chan and L. Vese.
In Scale-Space Theories in Computer Vision, pages 141-151, 1999.
"Segmenting and Tracking Fluorescent Cells in Dynamic 3-D
Microscopy With Coupled Active Surfaces"
Dufour, Shinin, Tajbakhsh, Guillen-Aghion, Olivo-Marin
In IEEE Transactions on Image Processing, vol. 14, No 9, Sep. 2005
This code was taken from the Insight Journal paper:
"Cell Tracking using Coupled Active Surfaces for Nuclei and Membranes"
https://doi.org/10.54294/wvwmf8
That is based on the papers:
"Level Set Segmentation: Active Contours without edge"
https://doi.org/10.54294/8jk6oy
and
"Level set segmentation using coupled active surfaces"
https://doi.org/10.54294/23ugmy
- ITK Sphinx Examples:
-
- Examples
- SphinxExamples/src/Nonunit/Review/MultiphaseChanAndVeseSparseFieldLevelSetSegmentation/Code.cxx, SphinxExamples/src/Nonunit/Review/SinglephaseChanAndVeseDenseFieldLevelSetSegmentation/Code.cxx, and SphinxExamples/src/Nonunit/Review/SinglephaseChanAndVeseSparseFieldLevelSetSegmentation/Code.cxx.
Definition at line 78 of file itkScalarChanAndVeseLevelSetFunction.h.
|
using | ConstFeatureIteratorType = ImageRegionConstIterator< FeatureImageType > |
|
using | ConstImageIteratorType = ImageRegionConstIteratorWithIndex< InputImageType > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | FeatureImageConstPointer = typename FeatureImageType::ConstPointer |
|
using | FeatureImageIteratorType = ImageRegionIteratorWithIndex< FeatureImageType > |
|
using | FeatureImageType = TFeatureImage |
|
using | ImageIteratorType = ImageRegionIteratorWithIndex< InputImageType > |
|
using | InputImageType = TInputImage |
|
using | ListImageType = Image< ListPixelType, Self::ImageDimension > |
|
using | ListPixelConstIterator = typename ListPixelType::const_iterator |
|
using | ListPixelIterator = typename ListPixelType::iterator |
|
using | ListPixelType = std::list< unsigned int > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = ScalarChanAndVeseLevelSetFunction |
|
using | Superclass = ScalarRegionBasedLevelSetFunction< TInputImage, TFeatureImage, TSharedData > |
|
using | ConstFeatureIteratorType = ImageRegionConstIterator< FeatureImageType > |
|
using | ConstImageIteratorType = ImageRegionConstIteratorWithIndex< InputImageType > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | FeatureImageConstPointer = typename FeatureImageType::ConstPointer |
|
using | FeatureImageIteratorType = ImageRegionIteratorWithIndex< FeatureImageType > |
|
using | ImageIteratorType = ImageRegionIteratorWithIndex< InputImageType > |
|
using | ListImageType = Image< ListPixelType, Self::ImageDimension > |
|
using | ListPixelConstIterator = typename ListPixelType::const_iterator |
|
using | ListPixelIterator = typename ListPixelType::iterator |
|
using | ListPixelType = std::list< unsigned int > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = ScalarRegionBasedLevelSetFunction |
|
using | Superclass = RegionBasedLevelSetFunction< TInputImage, TFeatureImage, TSharedData > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | FeatureImageConstPointer = typename FeatureImageType::ConstPointer |
|
using | FeatureImageType = TFeatureImage |
|
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 = TInputImage |
|
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< TInputImage > |
|
using | TimeStepType = double |
|
using | VectorType = FixedArray< ScalarValueType, Self::ImageDimension > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | DefaultBoundaryConditionType = ZeroFluxNeumannBoundaryCondition< ImageType > |
|
using | FloatOffsetType = Vector< float, Self::ImageDimension > |
|
using | ImageType = TInputImage |
|
using | NeighborhoodScalesType = Vector< PixelRealType, Self::ImageDimension > |
|
using | NeighborhoodType = ConstNeighborhoodIterator< TInputImage, DefaultBoundaryConditionType > |
|
using | PixelRealType = double |
|
using | PixelType = typename ImageType::PixelType |
|
using | Pointer = SmartPointer< Self > |
|
using | RadiusType = typename ConstNeighborhoodIterator< TInputImage >::RadiusType |
|
using | Self = FiniteDifferenceFunction |
|
using | Superclass = LightObject |
|
using | TimeStepType = double |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = LightObject |
|
|
const char * | GetNameOfClass () const override |
|
const char * | GetNameOfClass () const override |
|
void | UpdatePixel (const unsigned int idx, NeighborhoodIterator< TInputImage > &iterator, InputPixelType &newValue, bool &status) |
|
virtual VectorType | AdvectionField (const NeighborhoodType &, const FloatOffsetType &, GlobalDataStruct *=0) const |
|
virtual void | CalculateAdvectionImage () |
|
virtual ScalarValueType | ComputeCurvature (const NeighborhoodType &, const FloatOffsetType &, GlobalDataStruct *gd) |
|
TimeStepType | ComputeGlobalTimeStep (void *GlobalData) const override |
|
PixelType | ComputeUpdate (const NeighborhoodType &neighborhood, void *globalData, const FloatOffsetType &=FloatOffsetType(0.0)) override |
|
virtual ScalarValueType | CurvatureSpeed (const NeighborhoodType &, const FloatOffsetType &, GlobalDataStruct *=0) const |
|
ScalarValueType | GetAdvectionWeight () const |
|
virtual const FeatureImageType * | GetFeatureImage () const |
|
void * | GetGlobalDataPointer () const override |
|
const char * | GetNameOfClass () const override |
|
virtual void | Initialize (const RadiusType &r) |
|
virtual ScalarValueType | LaplacianSmoothingSpeed (const NeighborhoodType &, const FloatOffsetType &, GlobalDataStruct *=0) const |
|
void | ReleaseGlobalDataPointer (void *GlobalData) const override |
|
void | SetAdvectionWeight (const ScalarValueType &iA) |
|
void | SetDomainFunction (const HeavisideFunctionType *f) |
|
virtual void | SetFeatureImage (const FeatureImageType *f) |
|
void | SetFunctionId (const unsigned int iFid) |
|
void | SetInitialImage (InputImageType *f) |
|
void | SetSharedData (SharedDataPointer sharedDataIn) |
|
void | UpdateSharedData (bool forceUpdate) |
|
void | SetAreaWeight (const ScalarValueType &nu) |
|
ScalarValueType | GetAreaWeight () const |
|
void | SetLambda1 (const ScalarValueType &lambda1) |
|
ScalarValueType | GetLambda1 () const |
|
void | SetLambda2 (const ScalarValueType &lambda2) |
|
ScalarValueType | GetLambda2 () const |
|
void | SetOverlapPenaltyWeight (const ScalarValueType &gamma) |
|
ScalarValueType | GetOverlapPenaltyWeight () const |
|
virtual void | SetCurvatureWeight (const ScalarValueType c) |
|
ScalarValueType | GetCurvatureWeight () const |
|
void | SetReinitializationSmoothingWeight (const ScalarValueType c) |
|
ScalarValueType | GetReinitializationSmoothingWeight () const |
|
void | SetVolumeMatchingWeight (const ScalarValueType &tau) |
|
ScalarValueType | GetVolumeMatchingWeight () const |
|
void | SetVolume (const ScalarValueType &volume) |
|
ScalarValueType | GetVolume () const |
|
const NeighborhoodScalesType | ComputeNeighborhoodScales () const |
|
const RadiusType & | GetRadius () const |
|
void | GetScaleCoefficients (PixelRealType vals[ImageDimension]) const |
|
virtual void | InitializeIteration () |
|
void | SetRadius (const RadiusType &r) |
|
void | SetScaleCoefficients (const PixelRealType vals[ImageDimension]) |
|
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 |
|
|
ScalarValueType | ComputeExternalTerm (const FeaturePixelType &iValue, const FeatureIndexType &iIdx) override |
|
ScalarValueType | ComputeInternalTerm (const FeaturePixelType &iValue, const FeatureIndexType &iIdx) override |
|
void | ComputeParameters () override |
|
| ScalarChanAndVeseLevelSetFunction () |
|
void | UpdateSharedDataInsideParameters (const unsigned int &iId, const FeaturePixelType &iVal, const ScalarValueType &iChange) override |
|
void | UpdateSharedDataOutsideParameters (const unsigned int &iId, const FeaturePixelType &iVal, const ScalarValueType &iChange) override |
|
void | UpdateSharedDataParameters () override |
|
| ~ScalarChanAndVeseLevelSetFunction () override=default |
|
ScalarValueType | ComputeOverlapParameters (const FeatureIndexType &featIndex, ScalarValueType &product) override |
|
| ScalarRegionBasedLevelSetFunction () |
|
| ~ScalarRegionBasedLevelSetFunction () override=default |
|
ScalarValueType | ComputeGlobalTerm (const ScalarValueType &imagePixel, const InputIndexType &inputIndex) |
|
void | ComputeHessian (const NeighborhoodType &it, GlobalDataStruct *globalData) |
|
void | ComputeHImage () |
|
ScalarValueType | ComputeLaplacian (GlobalDataStruct *gd) |
|
ScalarValueType | ComputeVolumeRegularizationTerm () |
|
| RegionBasedLevelSetFunction () |
|
| ~RegionBasedLevelSetFunction () override=default |
|
| FiniteDifferenceFunction () |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
| ~FiniteDifferenceFunction () override=default |
|
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 () |
|
template<typename TInputImage , typename TFeatureImage , typename TSharedData = ConstrainedRegionBasedLevelSetFunctionSharedData< TInputImage, TFeatureImage, ScalarChanAndVeseLevelSetFunctionData<TInputImage, TFeatureImage>>>
template<typename TInputImage , typename TFeatureImage , typename TSharedData = ConstrainedRegionBasedLevelSetFunctionSharedData< TInputImage, TFeatureImage, ScalarChanAndVeseLevelSetFunctionData<TInputImage, TFeatureImage>>>
template<typename TInputImage , typename TFeatureImage , typename TSharedData = ConstrainedRegionBasedLevelSetFunctionSharedData< TInputImage, TFeatureImage, ScalarChanAndVeseLevelSetFunctionData<TInputImage, TFeatureImage>>>