IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
DilateLabel3dImgLvl2.h
1 // DilateLabel3dImgLvl2.h:
3 // -----------------------
4 //
14 
15 #ifndef __IPSDKIPLADVANCEDMORPHOLOGY_DILATELABEL3DIMGLVL2_H__
16 #define __IPSDKIPLADVANCEDMORPHOLOGY_DILATELABEL3DIMGLVL2_H__
17 
20 
21 // Attributes headers
22 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/3d/OutLabelImg3d.h>
23 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Enumerate/InOptDilateLabelMode.h>
24 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/SubImage/Input/3d/InSubLabelImg3d.h>
25 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/OutNbModifiedPixels.h>
26 
27 namespace ipsdk {
28 namespace imaproc {
29 namespace advmorpho {
30 
33 
34 // declare processor class
35 IPSDK_DECLARE_LVL2_PROCESSOR(REP_ASYNC1, IPSDKIPLAdvancedMorphology, DilateLabel3dImg,
36  ipsdk::imaproc::matchSizeAndType(_pInSubLabelImg3d, _pOutLabelImg3d),
37  (((ipsdk)(imaproc)(attr))(InSubLabelImg3d))
38  (((ipsdk)(imaproc)(attr))(InOptDilateLabelMode))
39  (((ipsdk)(imaproc)(attr))(OutLabelImg3d)))
40 
41 // methods
42 public:
43 
44 protected:
45 
47  void clearIntermediateData();
48 
51  ipUInt64 computeNbModifiedPixels();
52 
54  processor::RetrievalResult copy(const core::BasePriority& priority, core::ActionProviderPtr& pProvider);
55  processor::RetrievalResult dilate(const core::BasePriority& priority, core::ActionProviderPtr& pProvider);
56  processor::RetrievalResult separation(const core::BasePriority& priority, core::ActionProviderPtr& pProvider);
57 
58 // attributes
59 protected:
60  // declaration of dispatch results collection
62 
63  // True if the labels has been separated
64  ipBool _bSeparated;
65 };
66 
69 
70 } // end of namespace advmorpho
71 } // end of namespace imaproc
72 } // end of namespace ipsdk
73 
74 #endif // __IPSDKIPLADVANCEDMORPHOLOGY_DILATELABEL3DIMGLVL2_H__
Definition of import/export macro for library.
ProcessingResult< eRetrievalResultType > RetrievalResult
[Output] number of pixels modified by the algorithm
Definition: OutNbModifiedPixels.h:46
IPSDK_FORCEINLINE void copy(T *dest, const T *src, ipUInt64 nbElts)
#define IPSDK_DECLARE_LVL2_PROCESSOR(ProcType, libraryName, algoName, RuleString, attributeSeq)
uint64_t ipUInt64
bool ipBool
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
#define IPSDK_DECLARE_DYNAMIC_RESULT_COLL(AttributeType, CollType)