IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
ConnectedComponent3dImgLvl1.h
1 // ConnectedComponent3dImgLvl1.h:
3 // ------------------------------
4 //
14 
15 #ifndef __IPSDKIPLADVANCEDMORPHOLOGY_CONNECTEDCOMPONENT3DIMGLVL1_H__
16 #define __IPSDKIPLADVANCEDMORPHOLOGY_CONNECTEDCOMPONENT3DIMGLVL1_H__
17 
21 
22 // Attributes headers
23 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Input/3d/InBinLabImg3d.h>
24 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Neighborhood/InOptNeighborhood3d.h>
25 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/3d/OutLabelImg3d.h>
26 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/OutMaxLabel.h>
27 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/OutLabelInfo.h>
28 
29 namespace ipsdk {
30 namespace imaproc {
31 namespace advmorpho {
32 
35 
36 // declare processor class
37 IPSDK_DECLARE_LVL1_PROCESSOR(ASYNC2, IPSDKIPLAdvancedMorphology, ConnectedComponent3dImg,
38  ipsdk::imaproc::matchSize(_pInBinLabImg3d, _pOutLabelImg3d),
39  (((ipsdk)(imaproc)(attr))(InBinLabImg3d))
40  (((ipsdk)(imaproc)(attr))(InOptNeighborhood3d))
41  (((ipsdk)(imaproc)(attr))(OutLabelImg3d)(ipsdk::imaproc::duplicateInOut)(_pInBinLabImg3d)(ipsdk::image::eImageBufferType::eIBT_Label16))
42  (((ipsdk)(imaproc)(attr))(OutMaxLabel)))
43 
44 // methods
45 public:
46 
47 protected:
52  processor::RetrievalResult retrieveProvider(const core::BasePriority& priority,
53  core::ActionProviderPtr& pProvider);
54 
56  void notifyProviderCompletion(const core::ActionProviderPtr& pProvider);
57 
59  void clearIntermediateData();
60 
61 // attributes
62 protected:
63  // declaration of dispatch results collection
64  IPSDK_DECLARE_STATIC_RESULT_COLL(attr::OutLabelInfo, OutLabelInfoColl);
65 };
66 
69 
70 } // end of namespace advmorpho
71 } // end of namespace imaproc
72 } // end of namespace ipsdk
73 
74 #endif // __IPSDKIPLADVANCEDMORPHOLOGY_CONNECTEDCOMPONENT3DIMGLVL1_H__
Definition of import/export macro for library.
ProcessingResult< eRetrievalResultType > RetrievalResult
#define IPSDK_DECLARE_LVL1_PROCESSOR(ProcType, libraryName, algoName, RuleString, attributeSeq)
processor::OutputInitializerPtr duplicateInOut(const boost::weak_ptr< OutputAttributeType > &pOutputAttribute, const boost::weak_ptr< InputAttributeType > &pInputAttribute, const eImageInitializerStoragePolicy &storagePolicy=eImageInitializerStoragePolicy::eIISP_Inherit)
#define IPSDK_DECLARE_STATIC_RESULT_COLL(AttributeType, CollType)
boost::shared_ptr< BaseActionProvider > ActionProviderPtr
IPSDK_DECLARE_GPU_PROCESSING_ALGORITHM(IPSDKIPLFiltering, Convolution2dImg, ipsdk::imaproc::matchSize(_pInSubGpuImg, _pOutImg),(((ipsdk)(imaproc)(attr))(InSubGpuImg))(((ipsdk)(imaproc)(attr))(InKnlXY))(((ipsdk)(imaproc)(attr))(InNormalize))(((ipsdk)(imaproc)(attr))(InConvolBorder2d))(((ipsdk)(imaproc)(attr))(OutImg))) IPSDKCUDA_DECLARE_ALGORITHM_FUNCTION_SELECTOR((InSubGpuImg)(OutImg)) public void clearIntermediateData()
method called before processing
ipsdk::processor::RetrievalResult retrieveProvider(const ipsdk::core::BasePriority &priority, ipsdk::core::ActionProviderPtr &pProvider)
method allowing to retrieve provider associated to asynchronous processing in derived class ...