IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
ShapeAnalysis2dLvl1.h
1 // ShapeAnalysis2dLvl1.h:
3 // ----------------------
4 //
14 
15 #ifndef __IPSDKIPLSHAPEANALYSIS_SHAPEANALYSIS2DLVL1_H__
16 #define __IPSDKIPLSHAPEANALYSIS_SHAPEANALYSIS2DLVL1_H__
17 
23 #include <IPSDKBaseShapeAnalysis/Measure/MeasureSet.h>
24 #include <boost/bind.hpp>
25 
26 // Attributes headers
27 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/MeasureInfoSet/InMeasureInfoSet2d.h>
28 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/GeometryEntityColl/InPILabelsShape2d.h>
29 #include <IPSDKIPL/IPSDKIPLShapeAnalysis/Attribute/GeometryEntityColl/InOptPILabelsShape2d2.h>
30 #include <IPSDKIPL/IPSDKIPLShapeAnalysis/Attribute/GeometryEntityColl/InOptPILabelsShape2d3.h>
31 #include <IPSDKIPL/IPSDKIPLShapeAnalysis/Attribute/GeometryEntityColl/InOptPILabelsShape2d4.h>
32 #include <IPSDKIPL/IPSDKIPLShapeAnalysis/Attribute/Image/InOptGreyMsrImg1.h>
33 #include <IPSDKIPL/IPSDKIPLShapeAnalysis/Attribute/Image/InOptGreyMsrImg2.h>
34 #include <IPSDKIPL/IPSDKIPLShapeAnalysis/Attribute/Image/InOptGreyMsrImg3.h>
35 #include <IPSDKIPL/IPSDKIPLShapeAnalysis/Attribute/Image/InOptGreyMsrImg4.h>
36 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/MeasureSet/OutPIMeasureSet.h>
37 
38 namespace ipsdk {
39 namespace imaproc {
40 namespace shape {
41 namespace analysis {
42 
45 
46 // declare processor class
47 IPSDK_DECLARE_LVL1_PROCESSOR(ASYNC1, IPSDKIPLShapeAnalysis, ShapeAnalysis2d,
48  ipsdk::imaproc::matchOther(_pInPILabelsShape2d, _pOutPIMeasureSet) &&
49  validateMeasureRequirements(_pInMeasureInfoSet2d,
50  _pInPILabelsShape2d, _pInOptPILabelsShape2d2, _pInOptPILabelsShape2d3, _pInOptPILabelsShape2d4,
51  _pInOptGreyMsrImg1, _pInOptGreyMsrImg2, _pInOptGreyMsrImg3, _pInOptGreyMsrImg4),
52  (((ipsdk)(imaproc)(attr))(InMeasureInfoSet2d))
53  (((ipsdk)(imaproc)(attr))(InPILabelsShape2d))
54  (((ipsdk)(imaproc)(shape)(analysis))(InOptPILabelsShape2d2))
55  (((ipsdk)(imaproc)(shape)(analysis))(InOptPILabelsShape2d3))
56  (((ipsdk)(imaproc)(shape)(analysis))(InOptPILabelsShape2d4))
57  (((ipsdk)(imaproc)(shape)(analysis))(InOptGreyMsrImg1))
58  (((ipsdk)(imaproc)(shape)(analysis))(InOptGreyMsrImg2))
59  (((ipsdk)(imaproc)(shape)(analysis))(InOptGreyMsrImg3))
60  (((ipsdk)(imaproc)(shape)(analysis))(InOptGreyMsrImg4))
61  (((ipsdk)(imaproc)(attr))(OutPIMeasureSet)(fromOther)(_pInPILabelsShape2d)(boost::function<OutPIMeasureSet::PlanStorageType ()>(boost::bind(&ipsdk::imaproc::createMeasureSetFromInfo, _pInMeasureInfoSet2d)))))
62 
63 // methods
64 public:
65 
66 protected:
67 
68 // attributes
69 protected:
70 
71 };
72 
75 
76 } // end of namespace analysis
77 } // end of namespace shape
78 } // end of namespace imaproc
79 } // end of namespace ipsdk
80 
81 #endif // __IPSDKIPLSHAPEANALYSIS_SHAPEANALYSIS2DLVL1_H__
#define IPSDK_DECLARE_LVL1_PROCESSOR(ProcType, libraryName, algoName, RuleString, attributeSeq)
Definition of import/export macro for library.
processor::RulePtr validateMeasureRequirements(const ShapeMeasureInfoSetAttributeConstPtr &pInMeasureInfoSet2d, const boost::shared_ptr< attr::InPILabelsShape2d > &pInPILabelsShape2d, const boost::shared_ptr< InOptPILabelsShape2d2 > &pInOptPILabelsShape2d2, const boost::shared_ptr< InOptPILabelsShape2d3 > &pInOptPILabelsShape2d3, const boost::shared_ptr< InOptPILabelsShape2d4 > &pInOptPILabelsShape2d4, const ImageAttributeConstPtr &pInOptGreyMsrImg1, const ImageAttributeConstPtr &pInOptGreyMsrImg2, const ImageAttributeConstPtr &pInOptGreyMsrImg3, const ImageAttributeConstPtr &pInOptGreyMsrImg4)
rule allowing to check that input parameters provided for shape analysis satisfy requirements of meas...
IPSDKIMAGEPROCESSING_API ipsdk::shape::analysis::MeasureSetPtr createMeasureSetFromInfo(const ShapeMeasureInfoSetAttributeConstWeakPtr &pInputShapeMeasureInfoSetAttribute)
Utility functions for shape analysis parameters check.