IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
CannySurfaces3dImgLvl1.h
1 // CannySurfaces3dImgLvl1.h:
3 // ----------------------
4 //
14 
15 #ifndef __IPSDKIPLFEATUREDETECTION_CANNYSURFACES3DIMGLVL1_H__
16 #define __IPSDKIPLFEATUREDETECTION_CANNYSURFACES3DIMGLVL1_H__
17 
21 
22 // Attributes headers
23 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Input/3d/InGxGreyImg3d.h>
24 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Input/3d/InGyGreyImg3d.h>
25 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Input/3d/InGzGreyImg3d.h>
26 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Enumerate/InOptOptimizationPolicy.h>
27 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/Working/Optional/OutOptWk1BinImg.h>
28 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/Working/Optional/OutOptWk2BinImg.h>
29 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/Working/Optional/OutOptWk1LabelImg.h>
30 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/OutBinImg.h>
31 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InCannyThresholds.h>
32 
33 namespace ipsdk {
34 namespace imaproc {
35 
36 namespace advmorpho {
37 
38 class ConnectedComponent3dImgLvl1;
39 
40 } // end of namespace advmorpho
41 
42 namespace fd {
43 
46 
47 // declare processor class
48 IPSDK_DECLARE_LVL1_PROCESSOR(REP_ASYNC1, IPSDKIPLFeatureDetection, CannySurfaces3dImg,
49  ipsdk::imaproc::matchSize(_pInGxGreyImg3d, _pInGyGreyImg3d) &&
50  ipsdk::imaproc::matchSize(_pInGxGreyImg3d, _pInGzGreyImg3d) &&
51  ipsdk::imaproc::matchSize(_pInGxGreyImg3d, _pOutBinImg) &&
52  (ipsdk::processor::ifIsSet(_pOutOptWk1BinImg,
53  (ipsdk::imaproc::matchSize(_pInGxGreyImg3d, _pOutOptWk1BinImg)))) &&
54  (ipsdk::processor::ifIsSet(_pOutOptWk2BinImg,
55  (ipsdk::imaproc::matchSize(_pInGxGreyImg3d, _pOutOptWk2BinImg)))) &&
56  (ipsdk::processor::ifIsSet(_pOutOptWk1LabelImg,
57  (ipsdk::imaproc::matchSize(_pInGxGreyImg3d, _pOutOptWk1LabelImg)))),
58  (((ipsdk)(imaproc)(attr))(InGxGreyImg3d))
59  (((ipsdk)(imaproc)(attr))(InGyGreyImg3d))
60  (((ipsdk)(imaproc)(attr))(InGzGreyImg3d))
61  (((ipsdk)(imaproc)(attr))(InCannyThresholds))
62  (((ipsdk)(imaproc)(attr))(InOptOptimizationPolicy))
63  (((ipsdk)(imaproc)(attr))(OutOptWk1BinImg))
64  (((ipsdk)(imaproc)(attr))(OutOptWk2BinImg))
65  (((ipsdk)(imaproc)(attr))(OutOptWk1LabelImg))
66  (((ipsdk)(imaproc)(attr))(OutBinImg)(ipsdk::imaproc::duplicateInOut)(_pInGxGreyImg3d)(ipsdk::image::eImageBufferType::eIBT_Binary)))
67 
68 // methods
69 public:
70 
71 protected:
72  processor::RetrievalResult retrieveFirstProvider(const core::BasePriority& priority,
73  core::ActionProviderPtr& pProvider);
74 
75  processor::RetrievalResult retrieveSecondProvider(const core::BasePriority& priority,
76  core::ActionProviderPtr& pProvider);
77 
78  processor::RetrievalResult retrieveThirdProvider(const core::BasePriority& priority,
79  core::ActionProviderPtr& pProvider);
80 
81  processor::RetrievalResult retrieveFourthProvider(const core::BasePriority& priority,
82  core::ActionProviderPtr& pProvider);
83 
84  processor::RetrievalResult retrieveFifthProvider(const core::BasePriority& priority,
85  core::ActionProviderPtr& pProvider);
86 
87  processor::RetrievalResult retrieveSixthProvider(const core::BasePriority& priority,
88  core::ActionProviderPtr& pProvider);
89 
90  processor::RetrievalResult retrieveThresholdImgProvider(const core::BasePriority& priority,
91  core::ActionProviderPtr& pProvider);
92 
93 // attributes
94 protected:
96  boost::shared_ptr<advmorpho::ConnectedComponent3dImgLvl1> _pConnectedComponent3dImgLvl1;
97 };
98 
101 
102 } // end of namespace fd
103 } // end of namespace imaproc
104 } // end of namespace ipsdk
105 
106 #endif // __IPSDKIPLFEATUREDETECTION_CANNYEDGES3DIMGLVL1_H__
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)
Definition of import/export macro for library.
boost::enable_if_c< AttributeType::g_bOptional, RulePtr >::type ifIsSet(const boost::shared_ptr< AttributeType > &pAttribute, const RulePtr &pRuleTrue)
boost::shared_ptr< BaseActionProvider > ActionProviderPtr