template<typename TInputImage, typename TFeatureImage, typename TOutputImage, typename TFunction = ScalarChanAndVeseLevelSetFunction<TInputImage, TFeatureImage>, class TSharedData = typename TFunction::SharedDataType, typename TIdCell = unsigned int>
class itk::ScalarChanAndVeseSparseLevelSetImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TSharedData, TIdCell >
Sparse implementation of the Chan and Vese multiphase level set image filter.
This code was adapted from the paper:
"An active contour model without edges"
T. Chan and L. Vese.
In Scale-Space Theories in Computer Vision, pages 141-151, 1999.
- Author
- Mosaliganti K., Smith B., Gelas A., Gouaillard A., Megason S.
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, and SphinxExamples/src/Nonunit/Review/SinglephaseChanAndVeseSparseFieldLevelSetSegmentation/Code.cxx.
Definition at line 69 of file itkScalarChanAndVeseSparseLevelSetImageFilter.h.
|
using | ConstPointer = SmartPointer< const Self > |
|
using | FeatureImagePointer = typename FeatureImageType::Pointer |
|
using | FeatureImageType = TFeatureImage |
|
using | FeatureIndexType = typename FeatureImageType::IndexType |
|
using | FeatureIndexValueType = typename FeatureIndexType::IndexValueType |
|
using | FeaturePixelType = typename FeatureImageType::PixelType |
|
using | FeatureRegionType = typename FeatureImageType::RegionType |
|
using | FunctionPtr = typename FunctionType::Pointer |
|
using | FunctionType = TFunction |
|
using | IndexType = typename OutputImageType::IndexType |
|
using | OutputImageType = TOutputImage |
|
using | OutputPixelType = typename OutputImageType::PixelType |
|
using | Pointer = SmartPointer< Self > |
|
using | ROIFilterPointer = typename ROIFilterType::Pointer |
|
using | ROIFilterType = RegionOfInterestImageFilter< FeatureImageType, FeatureImageType > |
|
using | Self = ScalarChanAndVeseSparseLevelSetImageFilter |
|
using | SharedDataPointer = typename SharedDataType::Pointer |
|
using | SharedDataType = TSharedData |
|
using | Superclass = MultiphaseSparseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell > |
|
using | BFCType = NeighborhoodAlgorithm::ImageBoundaryFacesCalculator< StatusImageType > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | FiniteDifferenceFunctionFloatOffsetType = typename FiniteDifferenceFunctionType::FloatOffsetType |
|
using | LayerConstIterator = typename LayerType::ConstIterator |
|
using | LayerIterator = typename LayerType::Iterator |
|
using | LayerListConstIterator = typename LayerListType::const_iterator |
|
using | LayerListIterator = typename LayerListType::iterator |
|
using | LayerListType = std::vector< LayerPointerType > |
|
using | LayerNodeStoragePointer = typename LayerNodeStorageType::Pointer |
|
using | LayerNodeStorageType = ObjectStore< LayerNodeType > |
|
using | LayerNodeType = SparseFieldLevelSetNode< OutputIndexType > |
|
using | LayerPointerType = typename LayerType::Pointer |
|
using | LayerType = SparseFieldLayer< LayerNodeType > |
|
using | NeighborListType = SparseFieldCityBlockNeighborList< NeighborhoodIterator< OutputImageType > > |
|
using | OffsetType = typename NeighborListType::OffsetType |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = MultiphaseSparseFiniteDifferenceImageFilter |
|
using | StatusImagePointer = typename StatusImageType::Pointer |
|
using | StatusImageType = Image< StatusType, Self::ImageDimension > |
|
using | StatusType = signed char |
|
using | Superclass = MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell > |
|
using | UpdateBufferConstIterator = typename UpdateBufferType::const_iterator |
|
using | UpdateBufferType = std::vector< ValueType > |
|
using | ValueType = typename InputImageType::ValueType |
|
using | ZeroCrossingFilterPointer = typename ZeroCrossingFilterType::Pointer |
|
using | ZeroCrossingFilterType = ZeroCrossingImageFilter< InputImageType, InputImageType > |
|
using | CentroidVectorType = Vector< float, Self::ImageDimension > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | FeatureImagePointer = typename FeatureImageType::Pointer |
|
using | FeatureImageType = TFeatureImage |
|
using | FeaturePixelType = typename FeatureImageType::PixelType |
|
using | FeaturePointType = typename FeatureImageType::PointType |
|
using | FeatureRegionType = typename FeatureImageType::RegionType |
|
using | FeatureSizeType = typename FeatureImageType::SizeType |
|
using | FeatureSpacingType = typename FeatureImageType::SpacingType |
|
using | FiniteDifferenceFunctionPointer = typename FiniteDifferenceFunctionType::Pointer |
|
using | FiniteDifferenceFunctionType = TFunction |
|
using | IdCellType = TIdCell |
|
using | InputCoordinateType = typename InputPointType::CoordinateType |
|
using | InputImagePointer = typename InputImageType::Pointer |
|
using | InputImageType = TInputImage |
|
using | InputIndexType = typename InputImageType::IndexType |
|
using | InputIndexValueType = typename InputIndexType::IndexValueType |
|
using | InputOffsetValueType = typename InputImageType::OffsetValueType |
|
using | InputPixelType = typename InputImageType::PixelType |
|
using | InputPointType = typename InputImageType::PointType |
|
using | InputRegionType = typename InputImageType::RegionType |
|
using | InputSizeType = typename InputImageType::SizeType |
|
using | InputSizeValueType = typename InputSizeType::SizeValueType |
|
using | InputSpacingType = typename InputImageType::SpacingType |
|
using | KdTreeGeneratorPointer = typename KdTreeGeneratorType::Pointer |
|
using | KdTreeGeneratorType = Statistics::KdTreeGenerator< SampleType > |
|
using | KdTreePointer = typename KdTreeType::Pointer |
|
using | KdTreeType = typename KdTreeGeneratorType::KdTreeType |
|
using | OutputImagePointer = typename OutputImageType::Pointer |
|
using | OutputImageType = TOutputImage |
|
using | OutputIndexType = typename OutputImageType::IndexType |
|
using | OutputIndexValueType = typename OutputImageType::IndexValueType |
|
using | OutputPixelType = typename OutputImageType::PixelType |
|
using | OutputRegionType = typename OutputImageType::RegionType |
|
using | OutputSizeType = typename OutputImageType::SizeType |
|
using | OutputSizeValueType = typename OutputImageType::SizeValueType |
|
using | Pointer = SmartPointer< Self > |
|
using | RadiusType = typename FiniteDifferenceFunctionType::RadiusType |
|
using | SampleType = Statistics::ListSample< CentroidVectorType > |
|
using | Self = MultiphaseFiniteDifferenceImageFilter |
|
using | Superclass = InPlaceImageFilter< TFeatureImage, TOutputImage > |
|
using | TimeStepType = typename FiniteDifferenceFunctionType::TimeStepType |
|
using | TimeStepVectorType = typename std::vector< TimeStepType > |
|
using | VectorIdCellType = std::vector< IdCellType > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | InputImageConstPointer = typename InputImageType::ConstPointer |
|
using | InputImagePixelType = typename InputImageType::PixelType |
|
using | InputImagePointer = typename InputImageType::Pointer |
|
using | InputImageRegionType = typename InputImageType::RegionType |
|
using | InputImageType = TFeatureImage |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = InPlaceImageFilter |
|
using | Superclass = ImageToImageFilter< TFeatureImage, TOutputImage > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | InputImageConstPointer = typename InputImageType::ConstPointer |
|
using | InputImagePixelType = typename InputImageType::PixelType |
|
using | InputImagePointer = typename InputImageType::Pointer |
|
using | InputImageRegionType = typename InputImageType::RegionType |
|
using | InputImageType = TFeatureImage |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = ImageToImageFilter |
|
using | Superclass = ImageSource< TOutputImage > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | DataObjectIdentifierType = Superclass::DataObjectIdentifierType |
|
using | DataObjectPointer = DataObject::Pointer |
|
using | DataObjectPointerArraySizeType = Superclass::DataObjectPointerArraySizeType |
|
using | OutputImagePixelType = typename OutputImageType::PixelType |
|
using | OutputImagePointer = typename OutputImageType::Pointer |
|
using | OutputImageRegionType = typename OutputImageType::RegionType |
|
using | OutputImageType = TOutputImage |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = ImageSource |
|
using | Superclass = ProcessObject |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | DataObjectIdentifierType = DataObject::DataObjectIdentifierType |
|
using | DataObjectPointer = DataObject::Pointer |
|
using | DataObjectPointerArray = std::vector< DataObjectPointer > |
|
using | DataObjectPointerArraySizeType = DataObjectPointerArray::size_type |
|
using | MultiThreaderType = MultiThreaderBase |
|
using | NameArray = std::vector< DataObjectIdentifierType > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = ProcessObject |
|
using | Superclass = Object |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = Object |
|
using | Superclass = LightObject |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = LightObject |
|
|
void | Initialize () override |
|
void | InitializeIteration () override |
|
| ScalarChanAndVeseSparseLevelSetImageFilter () |
|
void | UpdatePixel (unsigned int functionIndex, unsigned int idx, NeighborhoodIterator< InputImageType > &iterator, ValueType &newValue, bool &status) override |
|
| ~ScalarChanAndVeseSparseLevelSetImageFilter () override=default |
|
void | AllocateUpdateBuffer () override |
|
void | ApplyUpdate (TimeStepType dt) override |
|
TimeStepType | CalculateChange () override |
|
virtual ValueType | CalculateUpdateValue (const OutputIndexType &, const TimeStepType &dt, const ValueType &value, const ValueType &change) |
|
void | ConstructActiveLayer () |
|
void | ConstructLayer (SparseDataStruct *sparsePtr, StatusType from, StatusType to) |
|
void | CopyInputToOutput () override |
|
virtual ValueType | GetValueOne () const |
|
virtual ValueType | GetValueZero () const |
|
void | InitializeActiveLayerValues () |
|
void | InitializeBackgroundConstants () |
|
virtual void | InitializeBackgroundPixels () |
|
| MultiphaseSparseFiniteDifferenceImageFilter () |
|
void | PostProcessOutput () override |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
void | ProcessOutsideList (LayerType *OutsideList, StatusType ChangeToStatus) |
|
void | ProcessStatusList (LayerType *InputList, LayerType *OutputList, StatusType ChangeToStatus, StatusType SearchForStatus) |
|
void | PropagateAllLayerValues () |
|
void | PropagateFunctionLayerValues (unsigned int functionIndex) |
|
void | PropagateLayerValues (SparseDataStruct *sparsePtr, StatusType from, StatusType to, StatusType promote, int InOrOut) |
|
void | UpdateActiveLayerValues (TimeStepType dt, LayerType *StatusUpList, LayerType *StatusDownList) |
|
| ~MultiphaseSparseFiniteDifferenceImageFilter () override |
|
void | GenerateData () override |
|
void | GenerateInputRequestedRegion () override |
|
virtual bool | Halt () |
|
| MultiphaseFiniteDifferenceImageFilter () |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
TimeStepType | ResolveTimeStep (const TimeStepVectorType &timeStepList, const std::vector< uint8_t > &valid) |
|
virtual bool | ThreadedHalt (void *) |
|
| ~MultiphaseFiniteDifferenceImageFilter () override=default |
|
virtual bool | GetRunningInPlace () const |
|
| InPlaceImageFilter ()=default |
|
void | ReleaseInputs () override |
|
| ~InPlaceImageFilter () override=default |
|
void | AllocateOutputs () override |
|
virtual void | CallCopyInputRegionToOutputRegion (OutputImageRegionType &destRegion, const InputImageRegionType &srcRegion) |
|
virtual void | CallCopyOutputRegionToInputRegion (InputImageRegionType &destRegion, const OutputImageRegionType &srcRegion) |
|
| ImageToImageFilter () |
|
void | VerifyInputInformation () const override |
|
| ~ImageToImageFilter () override=default |
|
virtual void | PushBackInput (const DataObject *input) |
|
virtual void | PushFrontInput (const DataObject *input) |
|
virtual void | AfterThreadedGenerateData () |
|
virtual void | BeforeThreadedGenerateData () |
|
void | ClassicMultiThread (ThreadFunctionType callbackFunction) |
|
virtual const ImageRegionSplitterBase * | GetImageRegionSplitter () const |
|
| ImageSource () |
|
virtual unsigned int | SplitRequestedRegion (unsigned int i, unsigned int pieces, OutputImageRegionType &splitRegion) |
|
| ~ImageSource () override=default |
|
virtual void | ThreadedGenerateData (const OutputImageRegionType ®ion, ThreadIdType threadId) |
|
virtual void | DynamicThreadedGenerateData (const OutputImageRegionType &outputRegionForThread) |
|
virtual bool | GetDynamicMultiThreading () const |
|
virtual void | SetDynamicMultiThreading (bool _arg) |
|
virtual void | DynamicMultiThreadingOn () |
|
virtual void | AddInput (DataObject *input) |
|
void | AddOptionalInputName (const DataObjectIdentifierType &) |
|
void | AddOptionalInputName (const DataObjectIdentifierType &, DataObjectPointerArraySizeType idx) |
|
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 |
|
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 | PushBackInput (const DataObject *input) |
|
virtual void | PushFrontInput (const DataObject *input) |
|
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 idx, DataObject *input) |
|
virtual void | SetNthOutput (DataObjectPointerArraySizeType idx, DataObject *output) |
|
void | SetNumberOfIndexedInputs (DataObjectPointerArraySizeType num) |
|
void | SetNumberOfIndexedOutputs (DataObjectPointerArraySizeType num) |
|
virtual void | SetNumberOfRequiredInputs (DataObjectPointerArraySizeType) |
|
virtual void | SetNumberOfRequiredOutputs (DataObjectPointerArraySizeType _arg) |
|
virtual void | SetOutput (const DataObjectIdentifierType &name, DataObject *output) |
|
virtual void | SetPrimaryInput (DataObject *object) |
|
virtual void | SetPrimaryOutput (DataObject *object) |
|
void | SetRequiredInputNames (const NameArray &) |
|
virtual void | VerifyPreconditions () const |
|
| ~ProcessObject () override |
|
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 () const |
|
DataObject * | GetOutput (const DataObjectIdentifierType &key) |
|
const DataObject * | GetOutput (const DataObjectIdentifierType &key) const |
|
virtual void | SetPrimaryOutputName (const DataObjectIdentifierType &key) |
|
virtual const char * | GetPrimaryOutputName () const |
|
DataObject * | GetOutput (DataObjectPointerArraySizeType i) |
|
const DataObject * | GetOutput (DataObjectPointerArraySizeType i) const |
|
DataObject * | GetPrimaryOutput () |
|
const DataObject * | GetPrimaryOutput () const |
|
virtual bool | GetThreaderUpdateProgress () const |
|
virtual void | ThreaderUpdateProgressOn () |
|
virtual void | SetThreaderUpdateProgress (bool arg) |
|
| Object () |
|
bool | PrintObservers (std::ostream &os, Indent indent) const |
|
virtual void | SetTimeStamp (const TimeStamp &timeStamp) |
|
| ~Object () override |
|
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 () |
|