IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
ExtractLocalExtrema3dLvl3.h
1 // ExtractLocalExtrema3dLvl3.h:
3 // ----------------------------
4 //
14 
15 #ifndef __IPSDKIPLFEATUREDETECTION_EXTRACTLOCALEXTREMA3DLVL3_H__
16 #define __IPSDKIPLFEATUREDETECTION_EXTRACTLOCALEXTREMA3DLVL3_H__
17 
20 
21 // Attributes headers
22 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InLocalExtremaConfig.h>
23 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/OutVoxels3d.h>
24 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Strip/ZStrip3dWithKernel/InKnlZStrip3d.h>
25 #include <IPSDKBaseData/Pattern/OffsetXYZ.h>
26 
27 namespace ipsdk {
28 namespace imaproc {
29 namespace fd {
30 
33 
34 // declare processing algorithm
35 IPSDK_DECLARE_PROCESSING_ALGORITHM(IPSDKIPLFeatureDetection, ExtractLocalExtrema3d,
37  (((ipsdk)(imaproc)(attr))(InKnlZStrip3d))
38  (((ipsdk)(imaproc)(attr))(InLocalExtremaConfig))
39  (((ipsdk)(imaproc)(attr))(OutVoxels3d)))
40 
41  // implementation of image processing data identifier retrieval method
42  // for function selector usage
43  IPSDK_DECLARE_ALGORITHM_FUNCTION_SELECTOR(((STRIP)(InKnlZStrip3d)));
44 
45  // declaration of parsed data during processing
46  IPSDK_DECLARE_ALGORITHM_PARSED_DATA(((LINESTRIP)(InKnlZStrip3d)));
47 
48 // methods
49 public:
50 
51 protected:
55 
57  template <typename BufType,
58  ipsdk::eInstructionSet::domain IS>
59  ipsdk::BoolResult genericProcessFunction(const ipsdk::processor::ProcessingInfo& info);
60 
61 // attributes
62 protected:
63  ipsdk::ipUInt32 _nbKnlCoefPrevNextRows;
64  ipsdk::ipUInt32 _nbKnlCoefPrevSameLine;
65 
67  typedef std::vector<OffsetXYZ> OffsetColl;
68 
70  OffsetColl _offsetPrevNextRowsColl;
71 
73  OffsetColl _offsetPrevSameRowColl;
74 
76  OffsetColl _offsetNextSameRowColl;
77 
79  typedef boost::scoped_array<const void*> BufColl;
80 
82  BufColl _pBufPrevExtremaColl;
83 
85  BufColl _pBufNextExtremaColl;
86 
88  TypedOwnBufferPtr _pBufPrev;
89 
91  TypedOwnBufferPtr _pBufNext;
92 
94  TypedOwnBufferPtr _pBufIsLocalExtremum;
95 
96 };
97 
100 
101 } // end of namespace fd
102 } // end of namespace imaproc
103 } // end of namespace ipsdk
104 
105 #endif // __IPSDKIPLFEATUREDETECTION_EXTRACTLOCALEXTREMA3DLVL3_H__
IPSDKBASEPROCESSING_API RulePtr none()
ipsdk::core::ExecResult preProcess()
method called before processing
Definition of import/export macro for library.
#define IPSDK_DECLARE_PROCESSING_ALGORITHM(libraryName, algoName, RuleString, attributeSeq)
#define IPSDK_DECLARE_ALGORITHM_PARSED_DATA(dataSeq)
#define IPSDK_DECLARE_ALGORITHM_FUNCTION_SELECTOR(dataTypeSeq)
boost::shared_ptr< TypedOwnBuffer > TypedOwnBufferPtr
uint32_t ipUInt32