IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
DilateLabel2dImgLvl2.h
1 // DilateLabel2dImgLvl2.h:
3 // -----------------------
4 //
14 
15 #ifndef __IPSDKIPLADVANCEDMORPHOLOGY_DILATELABEL2DIMGLVL2_H__
16 #define __IPSDKIPLADVANCEDMORPHOLOGY_DILATELABEL2DIMGLVL2_H__
17 
20 
21 // Attributes headers
22 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/OutLabelImg.h>
23 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/SubImage/Input/2d/InSubLabelImg2d.h>
24 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Enumerate/InOptDilateLabelMode.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, DilateLabel2dImg,
36  ipsdk::imaproc::matchSizeAndType(_pInSubLabelImg2d, _pOutLabelImg),
37  (((ipsdk)(imaproc)(attr))(InSubLabelImg2d))
38  (((ipsdk)(imaproc)(attr))(InOptDilateLabelMode))
39  (((ipsdk)(imaproc)(attr))(OutLabelImg)))
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 };
67 
70 
71 } // end of namespace advmorpho
72 } // end of namespace imaproc
73 } // end of namespace ipsdk
74 
75 #endif // __IPSDKIPLADVANCEDMORPHOLOGY_DILATELABEL2DIMGLVL2_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)