IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
ShapeFiltering3dImgLvl2.h
1 // ShapeFiltering3dImgLvl2.h:
3 // --------------------------
4 //
14 
15 #ifndef __IPSDKIPLSHAPEANALYSIS_SHAPEFILTERING3DIMGLVL2_H__
16 #define __IPSDKIPLSHAPEANALYSIS_SHAPEFILTERING3DIMGLVL2_H__
17 
21 #include <IPSDKIPL/IPSDKIPLAdvancedMorphology/Processor/ConnectedComponent3dImg/ConnectedComponent3dImgLvl1.h>
22 #include <IPSDKIPL/IPSDKIPLShapeSegmentation/Processor/LabelShapeExtraction3d/LabelShapeExtraction3dLvl1.h>
23 #include <IPSDKIPL/IPSDKIPLShapeAnalysis/Processor/ShapeAnalysis3d/ShapeAnalysis3dLvl2.h>
25 #include <IPSDKBaseShapeAnalysis/Measure/Info/MeasureInfoSet.h>
26 
27 // Attributes headers
28 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/SubImage/Input/3d/InSubBinLabImg3d.h>
29 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/SubImage/Input/3d/InSubColorOrGreyImg3d.h>
30 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Formula/InFilterFormula.h>
31 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/MeasureInfoSet/InMeasureInfoSet3d.h>
32 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Neighborhood/InNeighborhood3d.h>
33 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Enumerate/InLabelReindexingPolicy.h>
34 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InOptSurfaceExtractionSettings.h>
35 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/OutImg.h>
36 
37 namespace ipsdk {
38 namespace imaproc {
39 namespace shape {
40 namespace analysis {
41 
44 
45 // declare processor class
46 IPSDK_DECLARE_LVL2_PROCESSOR(REP_ASYNC1, IPSDKIPLShapeAnalysis, ShapeFiltering3dImg,
47  (ipsdk::imaproc::match3dSize(_pInSubBinLabImg3d, _pInSubColorOrGreyImg3d)) &&
48  (ipsdk::imaproc::matchSizeAndType(_pInSubBinLabImg3d, _pOutImg)),
49  (((ipsdk)(imaproc)(attr))(InSubBinLabImg3d))
50  (((ipsdk)(imaproc)(attr))(InSubColorOrGreyImg3d))
51  (((ipsdk)(imaproc)(attr))(InFilterFormula))
52  (((ipsdk)(imaproc)(attr))(InMeasureInfoSet3d))
53  (((ipsdk)(imaproc)(attr))(InNeighborhood3d))
54  (((ipsdk)(imaproc)(attr))(InLabelReindexingPolicy))
55  (((ipsdk)(imaproc)(attr))(InOptSurfaceExtractionSettings))
56  (((ipsdk)(imaproc)(attr))(OutImg)))
57 
58 // methods
59 public:
60 
61 protected:
62  processor::RetrievalResult provideProcessor(const boost::shared_ptr<core::BaseAction>& pProcessor,
63  const core::BasePriority& priority,
64  core::ActionProviderPtr& pProvider);
65 
66  processor::RetrievalResult connectedComponent(const core::BasePriority& priority, core::ActionProviderPtr& pProvider);
67  processor::RetrievalResult labelShapeExtraction(const core::BasePriority& priority, core::ActionProviderPtr& pProvider);
68  processor::RetrievalResult shapeAnalysis(const core::BasePriority& priority, core::ActionProviderPtr& pProvider);
69  processor::RetrievalResult lutTransform(const core::BasePriority& priority, core::ActionProviderPtr& pProvider);
70  processor::RetrievalResult erase(const core::BasePriority& priority, core::ActionProviderPtr& pProvider);
71 
72 // attributes
73 protected:
76 
81  std::string _formulaStr;
82 
84  boost::shared_ptr<advmorpho::ConnectedComponent3dImgLvl1> _pConCompProcessor;
85  boost::shared_ptr<segmentation::LabelShapeExtraction3dLvl1> _pLabelExtractionProcessor;
86  boost::shared_ptr<analysis::ShapeAnalysis3dLvl2> _pShapeAnalysisProcessor;
87 
88 };
89 
92 
93 } // end of namespace analysis
94 } // end of namespace shape
95 } // end of namespace imaproc
96 } // end of namespace ipsdk
97 
98 #endif // __IPSDKIPLSHAPEANALYSIS_SHAPEFILTERING3DIMGLVL2_H__
ProcessingResult< eRetrievalResultType > RetrievalResult
#define IPSDK_DECLARE_LVL2_PROCESSOR(ProcType, libraryName, algoName, RuleString, attributeSeq)
boost::shared_ptr< Shape3dColl > Shape3dCollPtr
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