IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ipsdk::imaproc::advmorpho::WatershedBinarySeparation2dImgLvl1 Class Reference

Level 1 algorithm: algorithm, based on watershed, allowing to separate binary 2d shapes. More...

#include <WatershedBinarySeparation2dImgLvl1.h>

Inheritance diagram for ipsdk::imaproc::advmorpho::WatershedBinarySeparation2dImgLvl1:
ipsdk::processor::BaseProcessor< ipsdk::core::BaseRepeatedAsync1Action >

Public Member Functions

 ~WatershedBinarySeparation2dImgLvl1 ()
 destructor
 
const std::string & getObjectName () const
 method allowing to retrieve object name
 
const std::string & getToolTip () const
 method allowing to retrieve object tooltip
 
const boost::filesystem::path getHeaderPath () const
 retrieve relative header path associated to processor
 
const std::string getLibraryName () const
 retrieve library name associated processor
 
template<typename TAttribute >
TAttribute::StorageType getStorage ()
 retrieve storage associated to a given attribute More...
 
Attribute accessors

Setters and Getters for attributes

template<>
const ipsdk::imaproc::attr::InBinImgget () const
 Getter for attribute InBinImg.
 
template<>
void set (const typename ipsdk::imaproc::attr::InBinImg::StorageType &value)
 Setter for attribute InBinImg.
 
template<>
const ipsdk::imaproc::attr::InDilateFactorget () const
 Getter for attribute InDilateFactor.
 
template<>
void set (const typename ipsdk::imaproc::attr::InDilateFactor::StorageType &value)
 Setter for attribute InDilateFactor.
 
template<>
const ipsdk::imaproc::attr::InWatershedSeparationModeget () const
 Getter for attribute InWatershedSeparationMode.
 
template<>
void set (const typename ipsdk::imaproc::attr::InWatershedSeparationMode::StorageType &value)
 Setter for attribute InWatershedSeparationMode.
 
template<>
const ipsdk::imaproc::attr::InOptWatershedProcModeget () const
 Getter for attribute InOptWatershedProcMode.
 
template<>
void set (const typename ipsdk::imaproc::attr::InOptWatershedProcMode::StorageType &value)
 Setter for attribute InOptWatershedProcMode.
 
template<>
const ipsdk::imaproc::attr::InOptNbMinDataByThreadget () const
 Getter for attribute InOptNbMinDataByThread.
 
template<>
void set (const typename ipsdk::imaproc::attr::InOptNbMinDataByThread::StorageType &value)
 Setter for attribute InOptNbMinDataByThread.
 
template<>
const ipsdk::imaproc::attr::OutWk1DistImgget () const
 Getter for attribute OutWk1DistImg.
 
template<>
void set (const typename ipsdk::imaproc::attr::OutWk1DistImg::StorageType &value)
 Setter for attribute OutWk1DistImg.
 
template<>
const ipsdk::imaproc::attr::OutWk1Imgget () const
 Getter for attribute OutWk1Img.
 
template<>
void set (const typename ipsdk::imaproc::attr::OutWk1Img::StorageType &value)
 Setter for attribute OutWk1Img.
 
template<>
const ipsdk::imaproc::attr::OutOptWk1Imgget () const
 Getter for attribute OutOptWk1Img.
 
template<>
void set (const typename ipsdk::imaproc::attr::OutOptWk1Img::StorageType &value)
 Setter for attribute OutOptWk1Img.
 
template<>
const ipsdk::imaproc::attr::OutOptWk1BinImgget () const
 Getter for attribute OutOptWk1BinImg.
 
template<>
void set (const typename ipsdk::imaproc::attr::OutOptWk1BinImg::StorageType &value)
 Setter for attribute OutOptWk1BinImg.
 
template<>
const ipsdk::imaproc::attr::OutBinLabImgget () const
 Getter for attribute OutBinLabImg.
 
template<>
void set (const typename ipsdk::imaproc::attr::OutBinLabImg::StorageType &value)
 Setter for attribute OutBinLabImg.
 
- Public Member Functions inherited from ipsdk::processor::BaseProcessor< ipsdk::core::BaseRepeatedAsync1Action >
virtual eProcessorType getProcessorType () const =0
 
BoolResult init (const eProcessorRulePolicy rulePolicy=eProcessorRulePolicy::ePRP_DisableSubRules)
 
const eProcessorRulePolicygetProcessorRulePolicy () const
 
std::string getFullInfoStr () const
 
const BaseRulegetGlobalRule () const
 
const ProcessorDispatchPolicygetDispatchPolicy () const
 
void restrictDispatchPolicy (const ProcessorDispatchPolicy &policy)
 
bool isProgressAvailable () const
 
ipsdk::processor::eProcessorProgressAvailability getProgressAvailability () const
 
ipsdk::ipUInt64 getTotalNbIterations () const
 
bool existsHeaderKey (const std::string &key) const
 
bool existsHeaderKey (const std::string &key) const
 
ItemNames getHeaderKeys () const
 
ItemNames getHeaderKeys () const
 
const BaseDataItemgetHeaderItem (const std::string &key) const
 
BaseDataItemgetHeaderItem (const std::string &key)
 
const BaseDataItemgetHeaderItem (const std::string &key) const
 
BaseDataItemgetHeaderItem (const std::string &key)
 
void addHeaderItem (const std::string &key, const DataItemPtr &pItem)
 
void addHeaderItem (const std::string &key, const DataItemPtr &pItem)
 
void removeHeaderItem (const std::string &key)
 
void removeHeaderItem (const std::string &key)
 
void clearHeader ()
 
void clearHeader ()
 
ipUInt32 getNbAttributes () const
 
ipUInt32 getNbAttributes () const
 
const BaseAttributegetAttribute (ipUInt32 index) const
 
BaseAttributegetAttribute (ipUInt32 index)
 
const BaseAttributegetAttribute (const std::string &attributeName) const
 
BaseAttributegetAttribute (const std::string &attributeName)
 
const BaseAttributegetAttribute (ipUInt32 index) const
 
BaseAttributegetAttribute (ipUInt32 index)
 
const BaseAttributegetAttribute (const std::string &attributeName) const
 
BaseAttributegetAttribute (const std::string &attributeName)
 
bool existsAttribute (const std::string &attributeName) const
 
bool existsAttribute (const std::string &attributeName) const
 
StringVector getAttributeNameColl () const
 
StringVector getAttributeNameColl () const
 
bool hasOutputInitializer (const std::string &attributeName) const
 
bool hasOutputInitializer (const std::string &attributeName) const
 
const BaseOutputInitializergetOutputInitializer (const std::string &attributeName) const
 
const BaseOutputInitializergetOutputInitializer (const std::string &attributeName) const
 

Static Public Member Functions

static boost::shared_ptr< WatershedBinarySeparation2dImgLvl1createProcessor ()
 processor creation function
 
static const std::string & getObjectNameStr ()
 method allowing to retrieve object name
 
static const std::string & getToolTipStr ()
 method allowing to retrieve object tooltip
 
static const boost::filesystem::path getHeaderPathStr ()
 retrieve relative header path associated to processor
 
static const std::string getLibraryNameStr ()
 retrieve library name associated processor
 

Protected Member Functions

 WatershedBinarySeparation2dImgLvl1 ()
 constructor
 
ipsdk::processor::RetrievalResult retrieveProvider (const ipsdk::core::BasePriority &priority, ipsdk::ipUInt32 curNbIter, ipsdk::core::ActionProviderPtr &pProvider)
 method allowing to retrieve provider associated to asynchronous processing in derived class More...
 
ipsdk::core::ExecResult preProcess ()
 method called before processing More...
 
void notifyLabelStepCompletion (const core::ActionPtr &pAction)
 completion callback for connected components analysis
 
void clearIntermediateData ()
 method allowing to clear intermediate data for object
 
- Protected Member Functions inherited from ipsdk::processor::BaseProcessor< ipsdk::core::BaseRepeatedAsync1Action >
virtual BoolResult initDerived (AttributeColl &attributeColl, OutputInitializerColl &outputInitializerColl, ProcessorDispatchPolicy &dispatchPolicy, RulePtr &pGlobalRule, const eProcessorRulePolicy &rulePolicy)=0
 

Protected Attributes

ipUInt32 _nbLabels
 number of labels for connected component analysis
 
ipUInt32 _offset
 offset
 
attr::StatsResultPtr _pInvDistStatsResult
 statistics for inverted distance map image
 
Watershed2dStackPtr _pWatershed2dStack
 internal watershed stack
 
image::ImagePtr _pWatershedImg
 watershed intermediate used image
 
Attribute members
boost::shared_ptr< ipsdk::imaproc::attr::InBinImg_pInBinImg
 
boost::shared_ptr< ipsdk::imaproc::attr::InDilateFactor_pInDilateFactor
 
boost::shared_ptr< ipsdk::imaproc::attr::InWatershedSeparationMode_pInWatershedSeparationMode
 
boost::shared_ptr< ipsdk::imaproc::attr::InOptWatershedProcMode_pInOptWatershedProcMode
 
boost::shared_ptr< ipsdk::imaproc::attr::InOptNbMinDataByThread_pInOptNbMinDataByThread
 
boost::shared_ptr< ipsdk::imaproc::attr::OutWk1DistImg_pOutWk1DistImg
 
boost::shared_ptr< ipsdk::imaproc::attr::OutWk1Img_pOutWk1Img
 
boost::shared_ptr< ipsdk::imaproc::attr::OutOptWk1Img_pOutOptWk1Img
 
boost::shared_ptr< ipsdk::imaproc::attr::OutOptWk1BinImg_pOutOptWk1BinImg
 
boost::shared_ptr< ipsdk::imaproc::attr::OutBinLabImg_pOutBinLabImg
 
- Protected Attributes inherited from ipsdk::processor::BaseProcessor< ipsdk::core::BaseRepeatedAsync1Action >
eProcessorProgressAvailability _processorProgressAvailability
 
ipUInt32 _nbIter
 

Additional Inherited Members

- Protected Types inherited from ipsdk::processor::BaseProcessor< ipsdk::core::BaseRepeatedAsync1Action >
typedef std::vector< AttributePtrAttributeColl
 
typedef std::map< std::string, OutputInitializerPtrOutputInitializerColl
 

Detailed Description

Level 1 algorithm: algorithm, based on watershed, allowing to separate binary 2d shapes.

See Watershed Binary Separation 2d for a complete algorithm description.

Author
E. Noirfalise
Date
2016/04/21

Algorithm associated library :

IPSDKIPLAdvancedMorphology

Attribute description for algorithm :

Name ToolTip Default Initializer
ipsdk::imaproc::attr::InBinImg [Input] binary image for processing operation X
ipsdk::imaproc::attr::InDilateFactor [Input] factor used for dilation X
ipsdk::imaproc::attr::InWatershedSeparationMode [Input] parameter allowing to define watershed separation mode X
ipsdk::imaproc::attr::InOptWatershedProcMode [Input Optional] Watershed processing mode X
ipsdk::imaproc::attr::InOptNbMinDataByThread [Input Optional] minimum number of data by thread X
ipsdk::imaproc::attr::OutWk1DistImg [Output] Temporary working image for algorithm ipsdk::imaproc::duplicateInOut (_pOutWk1DistImg, _pInBinImg, ipsdk::image::eImageBufferType::eIBT_UInt16)
ipsdk::imaproc::attr::OutWk1Img [Output] Temporary working image for algorithm customOutput (_pOutWk1Img, outputWk1Watershed(_pInBinImg,_pInWatershedSeparationMode))
ipsdk::imaproc::attr::OutOptWk1Img [Output Optional] Temporary working image for algorithm X
ipsdk::imaproc::attr::OutOptWk1BinImg [Output Optional] Temporary working image for algorithm X
ipsdk::imaproc::attr::OutBinLabImg [Output] binary or label image for processing operation customOutput (_pOutBinLabImg, outputWatershed(_pInBinImg,_pInWatershedSeparationMode))

Global attributes rule :

Global rule on attributes is given by
(ipsdk::imaproc::matchSize (_pInBinImg,_pOutBinLabImg) && 
 ipsdk::imaproc::customImageProperty (_pOutBinLabImg,
  allowedBufferType (_pInWatershedSeparationMode)) && 
 ipsdk::imaproc::matchSize (_pInBinImg,_pOutWk1DistImg) && 
 ipsdk::imaproc::matchSize (_pInBinImg,_pOutWk1Img) && 
 ipsdk::imaproc::customImageProperty (_pOutWk1Img,
  allowedWk1BufferType (_pInWatershedSeparationMode)) && 
 ipsdk::processor::ifIsSet (_pOutOptWk1Img,
  ipsdk::imaproc::matchSize (_pInBinImg,_pOutOptWk1Img)))

Member Function Documentation

◆ getStorage()

template<typename TAttribute >
TAttribute::StorageType ipsdk::imaproc::advmorpho::WatershedBinarySeparation2dImgLvl1::getStorage ( )

retrieve storage associated to a given attribute

Note
This method is only available for Output and In/Out attributes
Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionif isInit() == false

◆ retrieveProvider()

ipsdk::processor::RetrievalResult ipsdk::imaproc::advmorpho::WatershedBinarySeparation2dImgLvl1::retrieveProvider ( const ipsdk::core::BasePriority priority,
ipsdk::ipUInt32  curNbIter,
ipsdk::core::ActionProviderPtr pProvider 
)
protected

method allowing to retrieve provider associated to asynchronous processing in derived class

Returns
provider retrieval result.
Note
On success provider pointer must not be null nor uninitialized

◆ preProcess()

ipsdk::core::ExecResult ipsdk::imaproc::advmorpho::WatershedBinarySeparation2dImgLvl1::preProcess ( )
protected

method called before processing

Returns
execution result

The documentation for this class was generated from the following file: