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

Level 2 algorithm: detects spheres in a 3d image using Hough algorithm. More...

#include <HoughSpheres3dLvl2.h>

Inheritance diagram for ipsdk::imaproc::fd::HoughSpheres3dLvl2:
ipsdk::processor::BaseProcessor< ipsdk::core::BaseRepeatedAsync1Action >

Public Member Functions

 ~HoughSpheres3dLvl2 ()
 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::InSubGxImg3dget () const
 Getter for attribute InSubGxImg3d.
 
template<>
void set (const typename ipsdk::imaproc::attr::InSubGxImg3d::StorageType &value)
 Setter for attribute InSubGxImg3d.
 
template<>
const ipsdk::imaproc::attr::InSubGyImg3dget () const
 Getter for attribute InSubGyImg3d.
 
template<>
void set (const typename ipsdk::imaproc::attr::InSubGyImg3d::StorageType &value)
 Setter for attribute InSubGyImg3d.
 
template<>
const ipsdk::imaproc::attr::InSubGzImg3dget () const
 Getter for attribute InSubGzImg3d.
 
template<>
void set (const typename ipsdk::imaproc::attr::InSubGzImg3d::StorageType &value)
 Setter for attribute InSubGzImg3d.
 
template<>
const ipsdk::imaproc::attr::InCircleIntensityTypeget () const
 Getter for attribute InCircleIntensityType.
 
template<>
void set (const typename ipsdk::imaproc::attr::InCircleIntensityType::StorageType &value)
 Setter for attribute InCircleIntensityType.
 
template<>
const ipsdk::imaproc::attr::InNbCirclesget () const
 Getter for attribute InNbCircles.
 
template<>
void set (const typename ipsdk::imaproc::attr::InNbCircles::StorageType &value)
 Setter for attribute InNbCircles.
 
template<>
const ipsdk::imaproc::attr::InMaxAngleWithGradDirget () const
 Getter for attribute InMaxAngleWithGradDir.
 
template<>
void set (const typename ipsdk::imaproc::attr::InMaxAngleWithGradDir::StorageType &value)
 Setter for attribute InMaxAngleWithGradDir.
 
template<>
const ipsdk::imaproc::attr::InNbMaxPtsPerCircleget () const
 Getter for attribute InNbMaxPtsPerCircle.
 
template<>
void set (const typename ipsdk::imaproc::attr::InNbMaxPtsPerCircle::StorageType &value)
 Setter for attribute InNbMaxPtsPerCircle.
 
template<>
const ipsdk::imaproc::attr::InHoughCirclesRadiusRangeget () const
 Getter for attribute InHoughCirclesRadiusRange.
 
template<>
void set (const typename ipsdk::imaproc::attr::InHoughCirclesRadiusRange::StorageType &value)
 Setter for attribute InHoughCirclesRadiusRange.
 
template<>
const ipsdk::imaproc::attr::InAccumIntensityThresholdget () const
 Getter for attribute InAccumIntensityThreshold.
 
template<>
void set (const typename ipsdk::imaproc::attr::InAccumIntensityThreshold::StorageType &value)
 Setter for attribute InAccumIntensityThreshold.
 
template<>
const ipsdk::imaproc::attr::InRemoveTooCloseCirclesParamsget () const
 Getter for attribute InRemoveTooCloseCirclesParams.
 
template<>
void set (const typename ipsdk::imaproc::attr::InRemoveTooCloseCirclesParams::StorageType &value)
 Setter for attribute InRemoveTooCloseCirclesParams.
 
template<>
const ipsdk::imaproc::attr::OutRealImg1get () const
 Getter for attribute OutRealImg1.
 
template<>
void set (const typename ipsdk::imaproc::attr::OutRealImg1::StorageType &value)
 Setter for attribute OutRealImg1.
 
template<>
const ipsdk::imaproc::attr::OutOptRealImg2get () const
 Getter for attribute OutOptRealImg2.
 
template<>
void set (const typename ipsdk::imaproc::attr::OutOptRealImg2::StorageType &value)
 Setter for attribute OutOptRealImg2.
 
template<>
const ipsdk::imaproc::attr::OutHoughSpheres3dPptiesget () const
 Getter for attribute OutHoughSpheres3dPpties.
 
template<>
void set (const typename ipsdk::imaproc::attr::OutHoughSpheres3dPpties::StorageType &value)
 Setter for attribute OutHoughSpheres3dPpties.
 
- 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< HoughSpheres3dLvl2createProcessor ()
 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 Types

typedef processor::RetrievalResult(HoughSpheres3dLvl2::* FunctionType) (const core::BasePriority &, core::ActionProviderPtr &)
 List of the functions to call.
 
- Protected Types inherited from ipsdk::processor::BaseProcessor< ipsdk::core::BaseRepeatedAsync1Action >
typedef std::vector< AttributePtrAttributeColl
 
typedef std::map< std::string, OutputInitializerPtrOutputInitializerColl
 

Protected Member Functions

 HoughSpheres3dLvl2 ()
 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...
 
processor::RetrievalResult provideProcessor (const boost::shared_ptr< core::BaseAction > &pProcessor, const core::BasePriority &priority, core::ActionProviderPtr &pProvider)
 
processor::RetrievalResult houghCircle (const core::BasePriority &priority, core::ActionProviderPtr &pProvider)
 
processor::RetrievalResult maxL2Norm (const core::BasePriority &priority, core::ActionProviderPtr &pProvider)
 
processor::RetrievalResult statsMsr (const core::BasePriority &priority, core::ActionProviderPtr &pProvider)
 
processor::RetrievalResult localExtrema (const core::BasePriority &priority, core::ActionProviderPtr &pProvider)
 
processor::RetrievalResult computeBestCirclesRadiiFromGradMag (const core::BasePriority &priority, core::ActionProviderPtr &pProvider)
 
- 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

attr::HoughCirclesRadiusRangeConstPtr _pRadiusRange
 
attr::StatsResultPtr _pStatsResult
 
ipReal64 _fLowestAccumIntensity
 
ipReal64 _fLowestAccumRatioThreshold
 
boost::shared_ptr< attr::Voxels3d_pMaxima
 
boost::shared_ptr< glbmsr::StatsMsrLvl1 > _pStatsProcessor
 
boost::shared_ptr< fd::ExtractLocalExtrema3dLvl2_pLocalExtremaProcessor
 
std::vector< FunctionType_vFctCalls
 
Attribute members
boost::shared_ptr< ipsdk::imaproc::attr::InSubGxImg3d_pInSubGxImg3d
 
boost::shared_ptr< ipsdk::imaproc::attr::InSubGyImg3d_pInSubGyImg3d
 
boost::shared_ptr< ipsdk::imaproc::attr::InSubGzImg3d_pInSubGzImg3d
 
boost::shared_ptr< ipsdk::imaproc::attr::InCircleIntensityType_pInCircleIntensityType
 
boost::shared_ptr< ipsdk::imaproc::attr::InNbCircles_pInNbCircles
 
boost::shared_ptr< ipsdk::imaproc::attr::InMaxAngleWithGradDir_pInMaxAngleWithGradDir
 
boost::shared_ptr< ipsdk::imaproc::attr::InNbMaxPtsPerCircle_pInNbMaxPtsPerCircle
 
boost::shared_ptr< ipsdk::imaproc::attr::InHoughCirclesRadiusRange_pInHoughCirclesRadiusRange
 
boost::shared_ptr< ipsdk::imaproc::attr::InAccumIntensityThreshold_pInAccumIntensityThreshold
 
boost::shared_ptr< ipsdk::imaproc::attr::InRemoveTooCloseCirclesParams_pInRemoveTooCloseCirclesParams
 
boost::shared_ptr< ipsdk::imaproc::attr::OutRealImg1_pOutRealImg1
 
boost::shared_ptr< ipsdk::imaproc::attr::OutOptRealImg2_pOutOptRealImg2
 
boost::shared_ptr< ipsdk::imaproc::attr::OutHoughSpheres3dPpties_pOutHoughSpheres3dPpties
 
- Protected Attributes inherited from ipsdk::processor::BaseProcessor< ipsdk::core::BaseRepeatedAsync1Action >
eProcessorProgressAvailability _processorProgressAvailability
 
ipUInt32 _nbIter
 

Detailed Description

Level 2 algorithm: detects spheres in a 3d image using Hough algorithm.

See Hough spheres detection for a complete algorithm description.

Author
R. Abbal
Date
2023/02/28

Algorithm associated library :

IPSDKIPLFeatureDetection

Attribute description for algorithm :

Name ToolTip Default Initializer
ipsdk::imaproc::attr::InSubGxImg3d [Input] grey level 3d sub image of gradient computed along x axis X
ipsdk::imaproc::attr::InSubGyImg3d [Input] grey level 3d sub image of gradient computed along y axis X
ipsdk::imaproc::attr::InSubGzImg3d [Input] grey level 3d sub image of gradient computed along z axis X
ipsdk::imaproc::attr::InCircleIntensityType [Input] circle intensity type for detection algorithms X
ipsdk::imaproc::attr::InNbCircles [Input] Specifies the maximum number of circles/spheres detected for each slice, a value of 0 means "keep all the circles/spheres" X
ipsdk::imaproc::attr::InMaxAngleWithGradDir [Input] maximum angle with gradient direction, in degrees X
ipsdk::imaproc::attr::InNbMaxPtsPerCircle [Input] maximum number of points per circle X
ipsdk::imaproc::attr::InHoughCirclesRadiusRange [Input] range of radius of circles to detect using Hough circles algorithm X
ipsdk::imaproc::attr::InAccumIntensityThreshold [Input] threshold on accumulation intensities for local maxima extraction X
ipsdk::imaproc::attr::InRemoveTooCloseCirclesParams [Input] parameters of "removing too close circles" phasis in Hough circles detection X
ipsdk::imaproc::attr::OutRealImg1 [Output] image for processing operation (data contained in image buffer are reals) X
ipsdk::imaproc::attr::OutOptRealImg2 [Output Optional] image for processing operation (data contained in image buffer are reals) X
ipsdk::imaproc::attr::OutHoughSpheres3dPpties [Output] Properties of 3d spheres detected by 3d Hough algorithm X

Global attributes rule :

Global rule on attributes is given by
ipsdk::processor::none ()

Member Function Documentation

◆ getStorage()

template<typename TAttribute >
TAttribute::StorageType ipsdk::imaproc::fd::HoughSpheres3dLvl2::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::fd::HoughSpheres3dLvl2::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::fd::HoughSpheres3dLvl2::preProcess ( )
protected

method called before processing

Returns
execution result

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