IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
ShapeFiltering2dImgLvl2.h
1 // ShapeFiltering2dImgLvl2.h:
3 // --------------------------
4 //
14 
15 #ifndef __IPSDKIPLSHAPEANALYSIS_SHAPEFILTERING2DIMGLVL2_H__
16 #define __IPSDKIPLSHAPEANALYSIS_SHAPEFILTERING2DIMGLVL2_H__
17 
21 #include <IPSDKIPL/IPSDKIPLAdvancedMorphology/Processor/ConnectedComponent2dImg/ConnectedComponent2dImgLvl1.h>
22 #include <IPSDKIPL/IPSDKIPLShapeSegmentation/Processor/LabelShapeExtraction2d/LabelShapeExtraction2dLvl2.h>
23 #include <IPSDKIPL/IPSDKIPLShapeAnalysis/Processor/ShapeAnalysis2d/ShapeAnalysis2dLvl2.h>
24 #include <IPSDKBaseShapeSegmentation/Entity/2d/Shape2dColl.h>
25 #include <IPSDKBaseShapeAnalysis/Measure/Info/MeasureInfoSet.h>
26 
27 // Attributes headers
28 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/SubImage/Input/2d/InSubBinLabImg2d.h>
29 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/SubImage/Input/2d/InSubColorOrGreyImg2d.h>
30 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/MeasureInfoSet/InMeasureInfoSet2d.h>
31 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Formula/InFilterFormula.h>
32 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InContourExtractionSettings.h>
33 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Enumerate/InLabelReindexingPolicy.h>
34 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/OutImg.h>
35 
36 namespace ipsdk {
37 namespace imaproc {
38 namespace shape {
39 namespace analysis {
40 
43 
44 // declare processor class
45 IPSDK_DECLARE_LVL2_PROCESSOR(REP_ASYNC1, IPSDKIPLShapeAnalysis, ShapeFiltering2dImg,
46  (ipsdk::imaproc::match2dSize(_pInSubBinLabImg2d, _pInSubColorOrGreyImg2d)) &&
47  (ipsdk::imaproc::matchSizeAndType(_pInSubBinLabImg2d, _pOutImg)),
48  (((ipsdk)(imaproc)(attr))(InSubBinLabImg2d))
49  (((ipsdk)(imaproc)(attr))(InSubColorOrGreyImg2d))
50  (((ipsdk)(imaproc)(attr))(InFilterFormula))
51  (((ipsdk)(imaproc)(attr))(InMeasureInfoSet2d))
52  (((ipsdk)(imaproc)(attr))(InContourExtractionSettings))
53  (((ipsdk)(imaproc)(attr))(InLabelReindexingPolicy))
54  (((ipsdk)(imaproc)(attr))(OutImg)))
55 
56 // methods
57 public:
58 
59 protected:
60  processor::RetrievalResult provideProcessor(const boost::shared_ptr<core::BaseAction>& pProcessor,
61  const core::BasePriority& priority,
62  core::ActionProviderPtr& pProvider);
63 
64  processor::RetrievalResult connectedComponent(const core::BasePriority& priority, core::ActionProviderPtr& pProvider);
65  processor::RetrievalResult labelShapeExtraction(const core::BasePriority& priority, core::ActionProviderPtr& pProvider);
66  processor::RetrievalResult shapeAnalysis(const core::BasePriority& priority, core::ActionProviderPtr& pProvider);
67  processor::RetrievalResult lutTransform(const core::BasePriority& priority, core::ActionProviderPtr& pProvider);
68  processor::RetrievalResult erase(const core::BasePriority& priority, core::ActionProviderPtr& pProvider);
69 
70 // attributes
71 protected:
74 
79  std::string _formulaStr;
80 
82  boost::shared_ptr<advmorpho::ConnectedComponent2dImgLvl1> _pConCompProcessor;
83  boost::shared_ptr<segmentation::LabelShapeExtraction2dLvl2> _pLabelExtractionProcessor;
84  boost::shared_ptr<analysis::ShapeAnalysis2dLvl2> _pShapeAnalysisProcessor;
85 };
86 
89 
90 } // end of namespace analysis
91 } // end of namespace shape
92 } // end of namespace imaproc
93 } // end of namespace ipsdk
94 
95 #endif // __IPSDKIPLSHAPEANALYSIS_SHAPEFILTERING2DIMGLVL2_H__
ProcessingResult< eRetrievalResultType > RetrievalResult
#define IPSDK_DECLARE_LVL2_PROCESSOR(ProcType, libraryName, algoName, RuleString, attributeSeq)
boost::shared_ptr< Shape2dColl > Shape2dCollPtr
Definition of import/export macro for library.
boost::shared_ptr< const BaseImage > ImageConstPtr
boost::shared_ptr< BaseActionProvider > ActionProviderPtr
boost::shared_ptr< MeasureInfoSet > MeasureInfoSetPtr
boost::shared_ptr< MeasureSet > MeasureSetPtr