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::registration::StackRegistrationImgLvl2 Class Reference

Level 2 algorithm: Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias. More...

#include <StackRegistrationImgLvl2.h>

Inheritance diagram for ipsdk::imaproc::registration::StackRegistrationImgLvl2:
ipsdk::processor::BaseProcessor< ipsdk::core::BaseRepeatedAsync1Action >

Public Member Functions

 ~StackRegistrationImgLvl2 ()
 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::InSubImg3dget () const
 Getter for attribute InSubImg3d.
 
template<>
void set (const typename ipsdk::imaproc::attr::InSubImg3d::StorageType &value)
 Setter for attribute InSubImg3d.
 
template<>
const ipsdk::imaproc::attr::InOptThetaget () const
 Getter for attribute InOptTheta.
 
template<>
void set (const typename ipsdk::imaproc::attr::InOptTheta::StorageType &value)
 Setter for attribute InOptTheta.
 
template<>
const ipsdk::imaproc::attr::InOptMaxTranslationget () const
 Getter for attribute InOptMaxTranslation.
 
template<>
void set (const typename ipsdk::imaproc::attr::InOptMaxTranslation::StorageType &value)
 Setter for attribute InOptMaxTranslation.
 
template<>
const ipsdk::imaproc::attr::InOptInterpolationPolicyget () const
 Getter for attribute InOptInterpolationPolicy.
 
template<>
void set (const typename ipsdk::imaproc::attr::InOptInterpolationPolicy::StorageType &value)
 Setter for attribute InOptInterpolationPolicy.
 
template<>
const ipsdk::imaproc::attr::InOptCorrelationThreshold2dget () const
 Getter for attribute InOptCorrelationThreshold2d.
 
template<>
void set (const typename ipsdk::imaproc::attr::InOptCorrelationThreshold2d::StorageType &value)
 Setter for attribute InOptCorrelationThreshold2d.
 
template<>
const ipsdk::imaproc::attr::InOptRegistrationEstimationConfigget () const
 Getter for attribute InOptRegistrationEstimationConfig.
 
template<>
void set (const typename ipsdk::imaproc::attr::InOptRegistrationEstimationConfig::StorageType &value)
 Setter for attribute InOptRegistrationEstimationConfig.
 
template<>
const ipsdk::imaproc::attr::InOptWarpMotionTransform2dCollget () const
 Getter for attribute InOptWarpMotionTransform2dColl.
 
template<>
void set (const typename ipsdk::imaproc::attr::InOptWarpMotionTransform2dColl::StorageType &value)
 Setter for attribute InOptWarpMotionTransform2dColl.
 
template<>
const ipsdk::imaproc::attr::OutWarpMotionTransform2dCollget () const
 Getter for attribute OutWarpMotionTransform2dColl.
 
template<>
void set (const typename ipsdk::imaproc::attr::OutWarpMotionTransform2dColl::StorageType &value)
 Setter for attribute OutWarpMotionTransform2dColl.
 
template<>
const ipsdk::imaproc::attr::OutWk1RealImgget () const
 Getter for attribute OutWk1RealImg.
 
template<>
void set (const typename ipsdk::imaproc::attr::OutWk1RealImg::StorageType &value)
 Setter for attribute OutWk1RealImg.
 
template<>
const ipsdk::imaproc::attr::OutWk2RealImgget () const
 Getter for attribute OutWk2RealImg.
 
template<>
void set (const typename ipsdk::imaproc::attr::OutWk2RealImg::StorageType &value)
 Setter for attribute OutWk2RealImg.
 
template<>
const ipsdk::imaproc::attr::OutWk3RealImgget () const
 Getter for attribute OutWk3RealImg.
 
template<>
void set (const typename ipsdk::imaproc::attr::OutWk3RealImg::StorageType &value)
 Setter for attribute OutWk3RealImg.
 
template<>
const ipsdk::imaproc::attr::OutWk4RealImgget () const
 Getter for attribute OutWk4RealImg.
 
template<>
void set (const typename ipsdk::imaproc::attr::OutWk4RealImg::StorageType &value)
 Setter for attribute OutWk4RealImg.
 
template<>
const ipsdk::imaproc::attr::OutImgget () const
 Getter for attribute OutImg.
 
template<>
void set (const typename ipsdk::imaproc::attr::OutImg::StorageType &value)
 Setter for attribute OutImg.
 
- 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< StackRegistrationImgLvl2createProcessor ()
 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

 StackRegistrationImgLvl2 ()
 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 extractFeatures (const core::BasePriority &priority, core::ActionProviderPtr &pProvider)
 
processor::RetrievalResult estimTransformation (const core::BasePriority &priority, core::ActionProviderPtr &pProvider, const ipsdk::ipUInt64 sliceIdx)
 
processor::RetrievalResult copy (const core::BasePriority &priority, core::ActionProviderPtr &pProvider)
 
processor::RetrievalResult warp (const core::BasePriority &priority, core::ActionProviderPtr &pProvider, const ipsdk::ipUInt64 sliceIdx)
 
- 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

std::vector< ipsdk::imaproc::attr::WarpMotionTransform2dPtr_vTransforms
 Collection of transforms for each slice but the first one.
 
ipsdk::ipReal32 _displacement
 Angle correction.
 
ipsdk::ipReal64 _maxTranslation
 Maximum translation allowed for the registration.
 
ipsdk::imaproc::attr::Features2dGreySignaturePtr _pFeaturesFixed
 Signatures required for a given registration.
 
ipsdk::imaproc::attr::Features2dGreySignaturePtr _pFeaturesMoving
 
ipsdk::imaproc::attr::Features2dRegistrationResultPtr _pFeatures2dRegistrationResult
 Result of a registration.
 
ipsdk::ipUInt8 _stepIdx
 
ipsdk::ipUInt64 _sizeZ
 Used to store the size along Z without extracting the value at each iteration.
 
ipsdk::imaproc::attr::PlanIndexedFeatures2dGreySignaturePtr _pPIFeatures
 Features for all the slices, calculated at the same time.
 
ipBool _bCopyTransformFromInput
 Flag indicating if the transform are provided or if they have to be calculated.
 
Attribute members
boost::shared_ptr< ipsdk::imaproc::attr::InSubImg3d_pInSubImg3d
 
boost::shared_ptr< ipsdk::imaproc::attr::InOptTheta_pInOptTheta
 
boost::shared_ptr< ipsdk::imaproc::attr::InOptMaxTranslation_pInOptMaxTranslation
 
boost::shared_ptr< ipsdk::imaproc::attr::InOptInterpolationPolicy_pInOptInterpolationPolicy
 
boost::shared_ptr< ipsdk::imaproc::attr::InOptCorrelationThreshold2d_pInOptCorrelationThreshold2d
 
boost::shared_ptr< ipsdk::imaproc::attr::InOptRegistrationEstimationConfig_pInOptRegistrationEstimationConfig
 
boost::shared_ptr< ipsdk::imaproc::attr::InOptWarpMotionTransform2dColl_pInOptWarpMotionTransform2dColl
 
boost::shared_ptr< ipsdk::imaproc::attr::OutWarpMotionTransform2dColl_pOutWarpMotionTransform2dColl
 
boost::shared_ptr< ipsdk::imaproc::attr::OutWk1RealImg_pOutWk1RealImg
 
boost::shared_ptr< ipsdk::imaproc::attr::OutWk2RealImg_pOutWk2RealImg
 
boost::shared_ptr< ipsdk::imaproc::attr::OutWk3RealImg_pOutWk3RealImg
 
boost::shared_ptr< ipsdk::imaproc::attr::OutWk4RealImg_pOutWk4RealImg
 
boost::shared_ptr< ipsdk::imaproc::attr::OutImg_pOutImg
 
- 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 2 algorithm: Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias.

See Stack registration for a complete algorithm description.

Author
R. Abbal
Date
2024/11/04

Algorithm associated library :

IPSDKIPLRegistration

Attribute description for algorithm :

Name ToolTip Default Initializer
ipsdk::imaproc::attr::InSubImg3d [Input] grey level 3d single sub image for operation X
ipsdk::imaproc::attr::InOptTheta [Input Optional] 2d orientation for processing operation X
ipsdk::imaproc::attr::InOptMaxTranslation [Input Optional] Maximum translation allowed in a geometric transform (in absolute value) X
ipsdk::imaproc::attr::InOptInterpolationPolicy [Input Optional] interpolation policy used to extract local data from image X
ipsdk::imaproc::attr::InOptCorrelationThreshold2d [Input Optional] threshold on 2d correlation scores used during pairs matching X
ipsdk::imaproc::attr::InOptRegistrationEstimationConfig [Input Optional] configuration for robust estimation part of features registration X
ipsdk::imaproc::attr::InOptWarpMotionTransform2dColl [Input Optional] collection of 2d geometric transform X
ipsdk::imaproc::attr::OutWarpMotionTransform2dColl [Output] collection of motion transformation parameters associated to 2d warp operations X
ipsdk::imaproc::attr::OutWk1RealImg [Output] Temporary working image for algorithm X
ipsdk::imaproc::attr::OutWk2RealImg [Output] Temporary working image for algorithm X
ipsdk::imaproc::attr::OutWk3RealImg [Output] Temporary working image for algorithm X
ipsdk::imaproc::attr::OutWk4RealImg [Output] Temporary working image for algorithm X
ipsdk::imaproc::attr::OutImg [Output] image for processing operation X

Global attributes rule :

Global rule on attributes is given by
ipsdk::imaproc::matchSize (_pInSubImg3d,_pOutImg)

Member Function Documentation

◆ getStorage()

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

method called before processing

Returns
execution result

Member Data Documentation

◆ _stepIdx

ipsdk::ipUInt8 ipsdk::imaproc::registration::StackRegistrationImgLvl2::_stepIdx
protected

Value indicating the current process step: 0. Compute features (curNbIter%2==1) + transform (curNbIter%2==0)

  1. Copy the first slice
  2. Apply the transform

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