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::fd::HoughSpheres3dLvl1 Class Reference

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

#include <HoughSpheres3dLvl1.h>

Inheritance diagram for ipsdk::imaproc::fd::HoughSpheres3dLvl1:
ipsdk::processor::BaseProcessor< ipsdk::core::BaseAsync2Action >

Public Member Functions

 ~HoughSpheres3dLvl1 ()
 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::InOptGreyImg3dget () const
 Getter for attribute InOptGreyImg3d.
 
template<>
void set (const typename ipsdk::imaproc::attr::InOptGreyImg3d::StorageType &value)
 Setter for attribute InOptGreyImg3d.
 
template<>
const ipsdk::imaproc::attr::InOptGxGreyImg3dget () const
 Getter for attribute InOptGxGreyImg3d.
 
template<>
void set (const typename ipsdk::imaproc::attr::InOptGxGreyImg3d::StorageType &value)
 Setter for attribute InOptGxGreyImg3d.
 
template<>
const ipsdk::imaproc::attr::InOptGyGreyImg3dget () const
 Getter for attribute InOptGyGreyImg3d.
 
template<>
void set (const typename ipsdk::imaproc::attr::InOptGyGreyImg3d::StorageType &value)
 Setter for attribute InOptGyGreyImg3d.
 
template<>
const ipsdk::imaproc::attr::InOptGzGreyImg3dget () const
 Getter for attribute InOptGzGreyImg3d.
 
template<>
void set (const typename ipsdk::imaproc::attr::InOptGzGreyImg3d::StorageType &value)
 Setter for attribute InOptGzGreyImg3d.
 
template<>
const ipsdk::imaproc::attr::InOptCircleIntensityTypeget () const
 Getter for attribute InOptCircleIntensityType.
 
template<>
void set (const typename ipsdk::imaproc::attr::InOptCircleIntensityType::StorageType &value)
 Setter for attribute InOptCircleIntensityType.
 
template<>
const ipsdk::imaproc::attr::InOptNbCirclesget () const
 Getter for attribute InOptNbCircles.
 
template<>
void set (const typename ipsdk::imaproc::attr::InOptNbCircles::StorageType &value)
 Setter for attribute InOptNbCircles.
 
template<>
const ipsdk::imaproc::attr::InOptMaxAngleWithGradDirget () const
 Getter for attribute InOptMaxAngleWithGradDir.
 
template<>
void set (const typename ipsdk::imaproc::attr::InOptMaxAngleWithGradDir::StorageType &value)
 Setter for attribute InOptMaxAngleWithGradDir.
 
template<>
const ipsdk::imaproc::attr::InOptNbMaxPtsPerCircleget () const
 Getter for attribute InOptNbMaxPtsPerCircle.
 
template<>
void set (const typename ipsdk::imaproc::attr::InOptNbMaxPtsPerCircle::StorageType &value)
 Setter for attribute InOptNbMaxPtsPerCircle.
 
template<>
const ipsdk::imaproc::attr::InOptHoughCirclesRadiusRangeget () const
 Getter for attribute InOptHoughCirclesRadiusRange.
 
template<>
void set (const typename ipsdk::imaproc::attr::InOptHoughCirclesRadiusRange::StorageType &value)
 Setter for attribute InOptHoughCirclesRadiusRange.
 
template<>
const ipsdk::imaproc::attr::InOptAccumIntensityThresholdget () const
 Getter for attribute InOptAccumIntensityThreshold.
 
template<>
void set (const typename ipsdk::imaproc::attr::InOptAccumIntensityThreshold::StorageType &value)
 Setter for attribute InOptAccumIntensityThreshold.
 
template<>
const ipsdk::imaproc::attr::InOptRemoveTooCloseCirclesParamsget () const
 Getter for attribute InOptRemoveTooCloseCirclesParams.
 
template<>
void set (const typename ipsdk::imaproc::attr::InOptRemoveTooCloseCirclesParams::StorageType &value)
 Setter for attribute InOptRemoveTooCloseCirclesParams.
 
template<>
const ipsdk::imaproc::attr::OutOptRealImg1get () const
 Getter for attribute OutOptRealImg1.
 
template<>
void set (const typename ipsdk::imaproc::attr::OutOptRealImg1::StorageType &value)
 Setter for attribute OutOptRealImg1.
 
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::OutOptGradXImg3dget () const
 Getter for attribute OutOptGradXImg3d.
 
template<>
void set (const typename ipsdk::imaproc::attr::OutOptGradXImg3d::StorageType &value)
 Setter for attribute OutOptGradXImg3d.
 
template<>
const ipsdk::imaproc::attr::OutOptGradYImg3dget () const
 Getter for attribute OutOptGradYImg3d.
 
template<>
void set (const typename ipsdk::imaproc::attr::OutOptGradYImg3d::StorageType &value)
 Setter for attribute OutOptGradYImg3d.
 
template<>
const ipsdk::imaproc::attr::OutOptGradZImg3dget () const
 Getter for attribute OutOptGradZImg3d.
 
template<>
void set (const typename ipsdk::imaproc::attr::OutOptGradZImg3d::StorageType &value)
 Setter for attribute OutOptGradZImg3d.
 
template<>
const ipsdk::imaproc::attr::OutPIHoughSpheres3dPptiesget () const
 Getter for attribute OutPIHoughSpheres3dPpties.
 
template<>
void set (const typename ipsdk::imaproc::attr::OutPIHoughSpheres3dPpties::StorageType &value)
 Setter for attribute OutPIHoughSpheres3dPpties.
 
- Public Member Functions inherited from ipsdk::processor::BaseProcessor< ipsdk::core::BaseAsync2Action >
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< HoughSpheres3dLvl1createProcessor ()
 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

 HoughSpheres3dLvl1 ()
 constructor
 
ipsdk::processor::RetrievalResult retrieveFirstProvider (const ipsdk::core::BasePriority &priority, ipsdk::core::ActionProviderPtr &pProvider)
 method allowing to retrieve first provider associated to asynchronous processing in derived class More...
 
ipsdk::processor::RetrievalResult retrieveSecondProvider (const ipsdk::core::BasePriority &priority, ipsdk::core::ActionProviderPtr &pProvider)
 method allowing to retrieve second provider associated to asynchronous processing in derived class More...
 
processor::RetrievalResult provideProcessor (const boost::shared_ptr< core::BaseAction > &pProcessor, const core::BasePriority &priority, core::ActionProviderPtr &pProvider)
 
processor::RetrievalResult gaussianGradient (const core::BasePriority &priority, core::ActionProviderPtr &pProvider)
 
- Protected Member Functions inherited from ipsdk::processor::BaseProcessor< ipsdk::core::BaseAsync2Action >
virtual BoolResult initDerived (AttributeColl &attributeColl, OutputInitializerColl &outputInitializerColl, ProcessorDispatchPolicy &dispatchPolicy, RulePtr &pGlobalRule, const eProcessorRulePolicy &rulePolicy)=0
 

Protected Attributes

ipsdk::image::ImageConstPtr _pGxImgConst
 Gradient images used for the process.
 
ipsdk::image::ImageConstPtr _pGyImgConst
 
ipsdk::image::ImageConstPtr _pGzImgConst
 
Attribute members
boost::shared_ptr< ipsdk::imaproc::attr::InOptGreyImg3d_pInOptGreyImg3d
 
boost::shared_ptr< ipsdk::imaproc::attr::InOptGxGreyImg3d_pInOptGxGreyImg3d
 
boost::shared_ptr< ipsdk::imaproc::attr::InOptGyGreyImg3d_pInOptGyGreyImg3d
 
boost::shared_ptr< ipsdk::imaproc::attr::InOptGzGreyImg3d_pInOptGzGreyImg3d
 
boost::shared_ptr< ipsdk::imaproc::attr::InOptCircleIntensityType_pInOptCircleIntensityType
 
boost::shared_ptr< ipsdk::imaproc::attr::InOptNbCircles_pInOptNbCircles
 
boost::shared_ptr< ipsdk::imaproc::attr::InOptMaxAngleWithGradDir_pInOptMaxAngleWithGradDir
 
boost::shared_ptr< ipsdk::imaproc::attr::InOptNbMaxPtsPerCircle_pInOptNbMaxPtsPerCircle
 
boost::shared_ptr< ipsdk::imaproc::attr::InOptHoughCirclesRadiusRange_pInOptHoughCirclesRadiusRange
 
boost::shared_ptr< ipsdk::imaproc::attr::InOptAccumIntensityThreshold_pInOptAccumIntensityThreshold
 
boost::shared_ptr< ipsdk::imaproc::attr::InOptRemoveTooCloseCirclesParams_pInOptRemoveTooCloseCirclesParams
 
boost::shared_ptr< ipsdk::imaproc::attr::OutOptRealImg1_pOutOptRealImg1
 
boost::shared_ptr< ipsdk::imaproc::attr::OutOptRealImg2_pOutOptRealImg2
 
boost::shared_ptr< ipsdk::imaproc::attr::OutOptGradXImg3d_pOutOptGradXImg3d
 
boost::shared_ptr< ipsdk::imaproc::attr::OutOptGradYImg3d_pOutOptGradYImg3d
 
boost::shared_ptr< ipsdk::imaproc::attr::OutOptGradZImg3d_pOutOptGradZImg3d
 
boost::shared_ptr< ipsdk::imaproc::attr::OutPIHoughSpheres3dPpties_pOutPIHoughSpheres3dPpties
 
- Protected Attributes inherited from ipsdk::processor::BaseProcessor< ipsdk::core::BaseAsync2Action >
eProcessorProgressAvailability _processorProgressAvailability
 
ipUInt32 _nbIter
 

Additional Inherited Members

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

Detailed Description

Level 1 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::InOptGreyImg3d [Input Optional] grey-levels 3d image X
ipsdk::imaproc::attr::InOptGxGreyImg3d [Input Optional] grey-levels 3d image of gradient computed along x-axis X
ipsdk::imaproc::attr::InOptGyGreyImg3d [Input Optional] grey-levels 3d image of gradient computed along y-axis X
ipsdk::imaproc::attr::InOptGzGreyImg3d [Input Optional] grey-levels 3d image of gradient computed along z-axis X
ipsdk::imaproc::attr::InOptCircleIntensityType [Input Optional] circle intensity type for detection algorithms X
ipsdk::imaproc::attr::InOptNbCircles [Input Optional] 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::InOptMaxAngleWithGradDir [Input Optional] maximum angle with gradient direction, in radians X
ipsdk::imaproc::attr::InOptNbMaxPtsPerCircle [Input Optional] maximum number of points per circle X
ipsdk::imaproc::attr::InOptHoughCirclesRadiusRange [Input Optional] range of radius of circles to detect using Hough circles algorithm X
ipsdk::imaproc::attr::InOptAccumIntensityThreshold [Input Optional] threshold on accumulation intensities for local maxima extraction X
ipsdk::imaproc::attr::InOptRemoveTooCloseCirclesParams [Input Optional] parameters of "removing too close circles" phasis in Hough circles detection X
ipsdk::imaproc::attr::OutOptRealImg1 [Output Optional] 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::OutOptGradXImg3d [Output Optional] 3d image associated to X component of gradient computation X
ipsdk::imaproc::attr::OutOptGradYImg3d [Output Optional] 3d image associated to Y component of gradient computation X
ipsdk::imaproc::attr::OutOptGradZImg3d [Output Optional] 3d image associated to Z component of gradient computation X
ipsdk::imaproc::attr::OutPIHoughSpheres3dPpties [Output] plan indexed collection of properties of circles detected by Hough algorithm ipsdk::processor::allocate (_pOutPIHoughSpheres3dPpties)

Global attributes rule :

Global rule on attributes is given by
(ipsdk::processor::If (
  ipsdk::processor::isSet (_pInOptGreyImg3d),
  ipsdk::processor::Not (
   ipsdk::processor::isSet (_pInOptGxGreyImg3d)) && 
  ipsdk::processor::Not (
   ipsdk::processor::isSet (_pInOptGyGreyImg3d)) && 
  ipsdk::processor::Not (
   ipsdk::processor::isSet (_pInOptGzGreyImg3d)) && ipsdk::imaproc::matchSize<ipsdk::imaproc::attr::HoughCirclesRadiusRange::MaxRadius>(ipsdk::imaproc::eMatchImageSizeType::eMIST_3d,ipsdk::imaproc::eMatchImageSizeScale::eMISS_HalfSize,_pInOptGreyImg3d,_pInOptHoughCirclesRadiusRange) && 
  ipsdk::processor::If (
   ipsdk::processor::isSet (_pOutOptGradXImg3d),
   ipsdk::imaproc::matchSize (_pInOptGreyImg3d,_pOutOptGradXImg3d)) && 
  ipsdk::processor::If (
   ipsdk::processor::isSet (_pOutOptGradYImg3d),
   ipsdk::imaproc::matchSize (_pInOptGreyImg3d,_pOutOptGradYImg3d)) && 
  ipsdk::processor::If (
   ipsdk::processor::isSet (_pOutOptGradZImg3d),
   ipsdk::imaproc::matchSize (_pInOptGreyImg3d,_pOutOptGradZImg3d)) && 
  ipsdk::processor::ifIsSet (_pOutOptRealImg1,
   ipsdk::imaproc::matchSize (_pInOptGreyImg3d,_pOutOptRealImg1)) && 
  ipsdk::processor::ifIsSet (_pOutOptRealImg2,
   ipsdk::imaproc::matchSize (_pInOptGreyImg3d,_pOutOptRealImg2)),
  ipsdk::processor::isSet (_pInOptGxGreyImg3d) && 
  ipsdk::processor::isSet (_pInOptGyGreyImg3d) && 
  ipsdk::processor::isSet (_pInOptGzGreyImg3d) && 
  ipsdk::imaproc::matchSizeAndType (_pInOptGxGreyImg3d,_pInOptGyGreyImg3d) && 
  ipsdk::imaproc::matchSizeAndType (_pInOptGxGreyImg3d,_pInOptGzGreyImg3d) && ipsdk::imaproc::matchSize<ipsdk::imaproc::attr::HoughCirclesRadiusRange::MaxRadius>(ipsdk::imaproc::eMatchImageSizeType::eMIST_3d,ipsdk::imaproc::eMatchImageSizeScale::eMISS_HalfSize,_pInOptGxGreyImg3d,_pInOptHoughCirclesRadiusRange) && 
  ipsdk::processor::ifIsSet (_pOutOptRealImg1,
   ipsdk::imaproc::matchSize (_pInOptGxGreyImg3d,_pOutOptRealImg1)) && 
  ipsdk::processor::ifIsSet (_pOutOptRealImg2,
   ipsdk::imaproc::matchSize (_pInOptGxGreyImg3d,_pOutOptRealImg2))))

Member Function Documentation

◆ getStorage()

template<typename TAttribute >
TAttribute::StorageType ipsdk::imaproc::fd::HoughSpheres3dLvl1::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

◆ retrieveFirstProvider()

ipsdk::processor::RetrievalResult ipsdk::imaproc::fd::HoughSpheres3dLvl1::retrieveFirstProvider ( const ipsdk::core::BasePriority priority,
ipsdk::core::ActionProviderPtr pProvider 
)
protected

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

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

◆ retrieveSecondProvider()

ipsdk::processor::RetrievalResult ipsdk::imaproc::fd::HoughSpheres3dLvl1::retrieveSecondProvider ( const ipsdk::core::BasePriority priority,
ipsdk::core::ActionProviderPtr pProvider 
)
protected

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

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

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