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::filter::PatchBasedBilateral3dImgLvl3 Class Reference

Level 3 algorithm: Non-local means filter used to denoise a 3d image. More...

#include <PatchBasedBilateral3dImgLvl3.h>

Inheritance diagram for ipsdk::imaproc::filter::PatchBasedBilateral3dImgLvl3:
ipsdk::processor::BaseProcessingAlgorithm ipsdk::processor::BaseSyncProcessor ipsdk::processor::BaseProcessor ipsdk::core::BaseComplexAction ipsdk::core::BaseAction ipsdk::SerializationObjectWithGuid ipsdk::BaseToolTip ipsdk::BaseSerializationObject ipsdk::BaseDynamicObject

Public Member Functions

 ~PatchBasedBilateral3dImgLvl3 ()
 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::InKnlZStrip3dget () const
 Getter for attribute InKnlZStrip3d.
 
template<>
void set (const typename ipsdk::imaproc::attr::InKnlZStrip3d::StorageType &value)
 Setter for attribute InKnlZStrip3d.
 
template<>
const ipsdk::imaproc::attr::InPatchBasedBilateralParamsget () const
 Getter for attribute InPatchBasedBilateralParams.
 
template<>
void set (const typename ipsdk::imaproc::attr::InPatchBasedBilateralParams::StorageType &value)
 Setter for attribute InPatchBasedBilateralParams.
 
template<>
const ipsdk::imaproc::attr::OutZStrip3d1get () const
 Getter for attribute OutZStrip3d1.
 
template<>
void set (const typename ipsdk::imaproc::attr::OutZStrip3d1::StorageType &value)
 Setter for attribute OutZStrip3d1.
 
template<>
const ipsdk::imaproc::attr::OutZStrip3d2get () const
 Getter for attribute OutZStrip3d2.
 
template<>
void set (const typename ipsdk::imaproc::attr::OutZStrip3d2::StorageType &value)
 Setter for attribute OutZStrip3d2.
 
template<>
const ipsdk::imaproc::attr::OutZStrip3dget () const
 Getter for attribute OutZStrip3d.
 
template<>
void set (const typename ipsdk::imaproc::attr::OutZStrip3d::StorageType &value)
 Setter for attribute OutZStrip3d.
 
- Public Member Functions inherited from ipsdk::processor::BaseSyncProcessor
eProcessorType getProcessorType () const
 
- Public Member Functions inherited from ipsdk::processor::BaseProcessor
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
 
ItemNames getHeaderKeys () const
 
const BaseDataItemgetHeaderItem (const std::string &key) const
 
BaseDataItemgetHeaderItem (const std::string &key)
 
void addHeaderItem (const std::string &key, const DataItemPtr &pItem)
 
void removeHeaderItem (const std::string &key)
 
void clearHeader ()
 
ipUInt32 getNbAttributes () const
 
const BaseAttributegetAttribute (ipUInt32 index) const
 
BaseAttributegetAttribute (ipUInt32 index)
 
bool existsAttribute (const std::string &attributeName) const
 
StringVector getAttributeNameColl () const
 
const BaseAttributegetAttribute (const std::string &attributeName) const
 
BaseAttributegetAttribute (const std::string &attributeName)
 
bool hasOutputInitializer (const std::string &attributeName) const
 
const BaseOutputInitializergetOutputInitializer (const std::string &attributeName) const
 
bool existsHeaderKey (const std::string &key) const
 
ItemNames getHeaderKeys () const
 
const BaseDataItemgetHeaderItem (const std::string &key) const
 
BaseDataItemgetHeaderItem (const std::string &key)
 
void addHeaderItem (const std::string &key, const DataItemPtr &pItem)
 
void removeHeaderItem (const std::string &key)
 
void clearHeader ()
 
ipUInt32 getNbAttributes () const
 
const BaseAttributegetAttribute (ipUInt32 index) const
 
BaseAttributegetAttribute (ipUInt32 index)
 
bool existsAttribute (const std::string &attributeName) const
 
StringVector getAttributeNameColl () const
 
const BaseAttributegetAttribute (const std::string &attributeName) const
 
BaseAttributegetAttribute (const std::string &attributeName)
 
bool hasOutputInitializer (const std::string &attributeName) const
 
const BaseOutputInitializergetOutputInitializer (const std::string &attributeName) const
 
- Public Member Functions inherited from ipsdk::core::BaseComplexAction
bool isComplexAction () const
 
- Public Member Functions inherited from ipsdk::core::BaseAction
bool isInit () const
 
eExecutionStatus getStatus () const
 
const ePrioritygetActionPriority () const
 
void setActionPriority (const BasePriority &actionPriority)
 
void addCompletionCB (const ActionCompletionCB &completionCB)
 
ExecResult run (const eSynchroType &synchroType=eSynchroType::eST_Default)
 
void requestCancellation ()
 
bool isCancellationRequested () const
 
void waitForCompletion ()
 
ExecResult getActionResult () const
 
double getFullActionDuration () const
 
double getExecutionActionDuration () const
 
BoolResult clear ()
 
bool hasSocketGuid () const
 
void setSocketGuid (const Guid &socketGuid)
 
const GuidgetSocketGuid () const
 
bool hasSocketGuid () const
 
void setSocketGuid (const Guid &socketGuid)
 
const GuidgetSocketGuid () const
 
- Public Member Functions inherited from ipsdk::SerializationObjectWithGuid
const GuidgetGuid () const
 
- Public Member Functions inherited from ipsdk::BaseDynamicObject
virtual const std::string & getClassName () const
 
virtual BaseDynamicObjectcreateNew () const=0
 
virtual DynamicObjectPtr createShared () const=0
 
virtual bool hasCopySupport () const=0
 
virtual BaseDynamicObjectduplicate () const=0
 
virtual DynamicObjectPtr duplicateShared () const=0
 

Static Public Member Functions

static boost::shared_ptr< PatchBasedBilateral3dImgLvl3createProcessor ()
 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
 
- Static Public Member Functions inherited from ipsdk::BaseSerializationObject
static ipUInt32 getVersion ()
 
- Static Public Member Functions inherited from ipsdk::BaseDynamicObject
static const std::string & getTypeName ()
 

Protected Member Functions

 PatchBasedBilateral3dImgLvl3 ()
 constructor
 
void getNoParseInfo (ipUInt64 &nbDataByElement, ipUInt64 &nbMaxInitData, ipUInt64 &nbMaxFinalData) const
 
template<typename BufInType , typename BufOutType , typename ComputationType , ipsdk::eInstructionSet::domain ISFma, ipsdk::eInstructionSet::domain IS>
void genericProcessFunctionForCurProcessingPhasis (std::deque< boost::shared_ptr< YStrip2dData< BufInType > > > &yStrip2dDataColl, ipInt64 outputBufferOffset, ipInt32 kernelRadius, ipInt32 patchHalfSz, ComputationType patchSimilaritySigma, ComputationType spaceSigma, ComputationType twiceNoiseSigmaSq)
 
template<typename BufInType , typename ComputationType , ipsdk::eInstructionSet::domain IS>
void computeMeanOfDiffSquaresForEltInKernel (ipInt64 otherIx, ipUInt64 nbTotData, ipInt32 kernelRadius, ipInt32 patchHalfSz, std::deque< boost::shared_ptr< YStrip2dData< BufInType > > > &yStrip2dDataColl)
 
template<typename BufInType , typename BufOutType , typename ComputationType , ipsdk::eInstructionSet::domain ISFma, ipsdk::eInstructionSet::domain IS>
void processEltInKernelForCurrentRow (ipInt64 otherIx, ipUInt64 nbTotData, ipUInt64 nbRealData, ipInt32 kernelRadius, ipInt32 patchHalfSz, ComputationType patchSimilaritySigma, ComputationType spaceSigma, ComputationType twiceNoiseSigmaSq, std::deque< boost::shared_ptr< YStrip2dData< BufInType > > > &yStrip2dDataColl)
 
template<typename BufInType , typename BufOutType , typename ComputationType , eDataType::domain eComputationType, ipsdk::eInstructionSet::domain IS>
void prepareBuffers (Parser3dInfo< BufInType > &parserInfo, ipInt32 kernelRadius, ipInt32 patchHalfSz, std::deque< boost::shared_ptr< YStrip2dData< BufInType > > > &yStrip2dDataColl)
 
template<typename BufInType , typename BufOutType , typename ComputationType , ipsdk::eInstructionSet::domain IS>
void updateBuffers (Parser3dInfo< BufInType > &parserInfo, std::deque< boost::shared_ptr< YStrip2dData< BufInType > > > &yStrip2dDataColl)
 
template<typename BufInType , typename BufOutType , ipsdk::eInstructionSet::domain ISFma, ipsdk::eInstructionSet::domain IS>
ipsdk::BoolResult genericProcessFunction (const ipsdk::processor::ProcessingInfo &info)
 generic processing function associated to class
 
template<typename BufInType >
void updateToInitData (std::deque< boost::shared_ptr< YStrip2dData< BufInType > > > &yStrip2dDataColl)
 
template<typename BufInType >
void updateToMainData (std::deque< boost::shared_ptr< YStrip2dData< BufInType > > > &yStrip2dDataColl)
 
template<typename BufInType >
void updateToFinalData (std::deque< boost::shared_ptr< YStrip2dData< BufInType > > > &yStrip2dDataColl)
 
- Protected Member Functions inherited from ipsdk::processor::BaseProcessingAlgorithm
virtual const FunctionSelectorgetFunctionSelector () const=0
 
virtual const InstructionSetsIdentifiergetForcedInstructionSets () const=0
 
virtual void getDataTypeIdColl (DataTypeIdColl &dataTypeIdColl) const=0
 
virtual void initDataParserColl (DataParserColl &dataParserColl)=0
 
virtual void clearDataParserColl ()=0
 
virtual core::ExecResult preProcess ()
 
virtual core::ExecResult postProcess ()
 
- Protected Member Functions inherited from ipsdk::processor::BaseSyncProcessor
virtual core::ExecResult mainProcess ()=0
 
- Protected Member Functions inherited from ipsdk::processor::BaseProcessor
virtual BoolResult initDerived (AttributeColl &attributeColl, OutputInitializerColl &outputInitializerColl, ProcessorDispatchPolicy &dispatchPolicy, RulePtr &pGlobalRule, const eProcessorRulePolicy &rulePolicy)=0
 
- Protected Member Functions inherited from ipsdk::core::BaseComplexAction
virtual ExecResult initProcess ()
 
virtual ExecResult endProcess ()
 
ExecResult execInitProcess ()
 
ExecResult execEndProcess ()
 
- Protected Member Functions inherited from ipsdk::core::BaseAction
bool isSynchronismForced () const
 
BoolResult initBase (const BasePriority &defaultPriority=NormalPriority())
 
virtual BoolResult globalCleanDerived ()
 
virtual BoolResult cleanOnErrorDerived (const eCleanReason &cleanReason)
 
virtual ExecResultDerived runDerived ()=0
 
virtual void requestCancellationdDerived ()
 
void notifyCompletion (const ExecResult &bCompletionResult)
 
ExecResultDerived toExecResultDerived (const ExecResult &execResult) const
 
virtual BoolResult syncInputDataDerived (const Guid &processingSocketGuid)
 
virtual BoolResult syncOutputDataDerived (const Guid &processingSocketGuid)
 
virtual void clearInputData ()
 
virtual void clearIntermediateData ()
 
virtual void clearOutputData ()
 
- Protected Member Functions inherited from ipsdk::BaseSerializationObject
virtual BoolResult write (BaseOArchive &ar) const
 
virtual BoolResult read (BaseIArchive &ar)
 
- Protected Member Functions inherited from ipsdk::BaseDynamicObject
virtual void initCtorCopy (const BaseDynamicObject &object)
 
virtual void copy (const BaseDynamicObject &object)
 

Protected Attributes

std::vector< boost::tuple< ipInt32, ipInt32, ipInt32 > > _ptsInKernel
 
Attribute members
boost::shared_ptr< ipsdk::imaproc::attr::InKnlZStrip3d_pInKnlZStrip3d
 
boost::shared_ptr< ipsdk::imaproc::attr::InPatchBasedBilateralParams_pInPatchBasedBilateralParams
 
boost::shared_ptr< ipsdk::imaproc::attr::OutZStrip3d1_pOutZStrip3d1
 
boost::shared_ptr< ipsdk::imaproc::attr::OutZStrip3d2_pOutZStrip3d2
 
boost::shared_ptr< ipsdk::imaproc::attr::OutZStrip3d_pOutZStrip3d
 
HybridBufferPtr _pInitialSquareDiffs
 collection of currently processed partial means along x axis
 
HybridBufferPtr _pMainSquareDiffs
 collection of currently processed partial means along x axis
 
HybridBufferPtr _pFinalSquareDiffs
 collection of currently processed partial means along x axis
 
HybridBufferPtr _pCurSquareDiffs
 collection of currently processed partial means along x axis
 
FragHybridBufferPtr _pInitialAvgXSquareDiffs
 collection of currently processed partial means along x axis
 
FragHybridBufferPtr _pMainAvgXSquareDiffs
 collection of currently processed partial means along x axis
 
FragHybridBufferPtr _pFinalAvgXSquareDiffs
 collection of currently processed partial means along x axis
 
FragHybridBufferPtr _pCurAvgXSquareDiffs
 collection of currently processed partial means along x axis
 
FragHybridBufferPtr _pInitialAvgXYSquareDiffs
 collection of currently processed partial means along x axis
 
FragHybridBufferPtr _pMainAvgXYSquareDiffs
 collection of currently processed partial means along x axis
 
FragHybridBufferPtr _pFinalAvgXYSquareDiffs
 collection of currently processed partial means along x axis
 
FragHybridBufferPtr _pCurAvgXYSquareDiffs
 collection of currently processed partial means along x axis
 
HybridBufferPtr _pInitialAvgXYZSquareDiffs
 collection of currently processed partial means along x axis
 
HybridBufferPtr _pMainAvgXYZSquareDiffs
 collection of currently processed partial means along x axis
 
HybridBufferPtr _pFinalAvgXYZSquareDiffs
 collection of currently processed partial means along x axis
 
HybridBufferPtr _pCurAvgXYZSquareDiffs
 collection of currently processed partial means along x axis
 
processor::eProcessingPhasis _curProcessingPhasis
 collection of currently processed partial means along x axis
 
ipUInt64 _curRowIdx
 collection of currently processed partial means along x axis
 
ipUInt64 _curPlanIdx
 collection of currently processed partial means along x axis
 
ipUInt64 _nbInitialData
 collection of currently processed partial means along x axis
 
ipUInt64 _nbMainData
 collection of currently processed partial means along x axis
 
ipUInt64 _nbFinalData
 collection of currently processed partial means along x axis
 
ipUInt64 _nbRealFinalData
 collection of currently processed partial means along x axis
 
ipUInt64 _nbCurData
 collection of currently processed partial means along x axis
 
ipUInt64 _nbRealCurData
 collection of currently processed partial means along x axis
 
- Protected Attributes inherited from ipsdk::processor::BaseProcessor
eProcessorProgressAvailability _processorProgressAvailability
 
ipUInt32 _nbIter
 
- Protected Attributes inherited from ipsdk::core::BaseAction
 eCR_Failure
 
 eCR_Exception
 
 eCR_Cancellation
 
 eERD_Success
 
 eERD_Failure
 
 eERD_Canceled
 
 eERD_Running
 
- Protected Attributes inherited from ipsdk::SerializationObjectWithGuid
Guid _guid
 

Additional Inherited Members

- Public Types inherited from ipsdk::processor::BaseProcessingAlgorithm
typedef DataTypeIdentifierColl DataTypeIdColl
 
typedef AlgorithmFunctionIdentifier FunctionId
 
typedef AlgorithmFunctionSelector FunctionSelector
 
typedef BoolResult(BaseProcessingAlgorithm::* FunctionType) (const ProcessingInfo &info)
 
- Protected Types inherited from ipsdk::processor::BaseProcessingAlgorithm
typedef std::vector< DataParserPtrDataParserColl
 
- Protected Types inherited from ipsdk::processor::BaseProcessor
typedef std::vector< AttributePtrAttributeColl
 
typedef std::map< std::string, OutputInitializerPtrOutputInitializerColl
 
- Protected Types inherited from ipsdk::core::BaseAction
enum  eCleanReason
 
enum  eExecutionResultDerived
 
typedef ProcessingResult< eExecutionResultDerivedExecResultDerived
 

Detailed Description

Level 3 algorithm: Non-local means filter used to denoise a 3d image.

See Patch-based bilateral filter 3d for a complete algorithm description.

Author
H. Delestre
Date
2016/08/03

Algorithm associated library :

IPSDKIPLFiltering

Attribute description for algorithm :

Name ToolTip Default Initializer
ipsdk::imaproc::attr::InKnlZStrip3d [Input] image z strip 3d attribute associated to a kernel X
ipsdk::imaproc::attr::InPatchBasedBilateralParams [Input] parameters of patch-based bilateral filter X
ipsdk::imaproc::attr::OutZStrip3d1 [Output] First z strip 3d for operation X
ipsdk::imaproc::attr::OutZStrip3d2 [Output] First z strip 3d for operation X
ipsdk::imaproc::attr::OutZStrip3d [Output] z strip 3d for operation X

Global attributes rule :

Global rule on attributes is given by
ipsdk::imaproc::matchSize (_pInKnlZStrip3d,_pOutZStrip3d)

Data type algorithm function selector informations :

Processing function selection for this algorithm is based on following attribute data types :

For More informations about algorithm function selection see AlgorithmFunctionSelection

Member Function Documentation

◆ getStorage()

template<typename TAttribute >
TAttribute::StorageType ipsdk::imaproc::filter::PatchBasedBilateral3dImgLvl3::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

◆ getNoParseInfo()

void ipsdk::imaproc::filter::PatchBasedBilateral3dImgLvl3::getNoParseInfo ( ipUInt64 nbDataByElement,
ipUInt64 nbMaxInitData,
ipUInt64 nbMaxFinalData 
) const
protectedvirtual

method allowing to retrieve data processing informations from derived class in case where no data are parsed

Reimplemented from ipsdk::processor::BaseProcessingAlgorithm.


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