IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
ExtractLocalExtrema2dLvl3.h
1 // ExtractLocalExtrema2dLvl3.h:
3 // ------------------
4 //
14 
15 #ifndef __IPSDKIPLFEATUREDETECTION_EXTRACTLOCALEXTREMA2DLVL3_H__
16 #define __IPSDKIPLFEATUREDETECTION_EXTRACTLOCALEXTREMA2DLVL3_H__
17 
20 
21 // Attributes headers
22 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Strip/YStrip2dWithKernel/InKnlYStrip2d.h>
23 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InLocalExtremaConfig.h>
24 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/OutPixels2d.h>
25 
26 #include <IPSDKBaseData/Pattern/OffsetXY.h>
27 
28 namespace ipsdk {
29 namespace imaproc {
30 namespace fd {
31 
34 
35 // declare processing algorithm
36 IPSDK_DECLARE_PROCESSING_ALGORITHM(IPSDKIPLFeatureDetection, ExtractLocalExtrema2d,
38  (((ipsdk)(imaproc)(attr))(InKnlYStrip2d))
39  (((ipsdk)(imaproc)(attr))(InLocalExtremaConfig))
40  (((ipsdk)(imaproc)(attr))(OutPixels2d)))
41 
42  // implementation of image processing data identifier retrieval method
43  // for function selector usage
44  IPSDK_DECLARE_ALGORITHM_FUNCTION_SELECTOR(((STRIP)(InKnlYStrip2d)));
45 
46  // declaration of parsed data during processing
47  IPSDK_DECLARE_ALGORITHM_PARSED_DATA(((LINESTRIP)(InKnlYStrip2d)));
48 
49 // methods
50 public:
51 
52 protected:
56 
58  template <typename BufInType,
59  ipsdk::eInstructionSet::domain IS>
60  ipsdk::BoolResult genericProcessFunction(const ipsdk::processor::ProcessingInfo& info);
61 
62 // attributes
63 protected:
64  ipsdk::ipUInt32 _nbKnlCoefPrevNextRows;
65  ipsdk::ipUInt32 _nbKnlCoefPrevSameLine;
66 
68  typedef std::vector<OffsetXY> OffsetColl;
69 
71  OffsetColl _offsetPrevNextRowsColl;
72 
74  OffsetColl _offsetPrevSameRowColl;
75 
77  OffsetColl _offsetNextSameRowColl;
78 
80  typedef boost::scoped_array<const void*> BufColl;
81 
83  BufColl _pBufPrevExtremaColl;
84 
86  BufColl _pBufNextExtremaColl;
87 
89  TypedOwnBufferPtr _pBufPrev;
90 
92  TypedOwnBufferPtr _pBufNext;
93 
95  TypedOwnBufferPtr _pBufIsLocalExtremum;
96 };
97 
100 
101 } // end of namespace fd
102 } // end of namespace imaproc
103 } // end of namespace ipsdk
104 
105 #endif // __IPSDKIPLFEATUREDETECTION_EXTRACTLOCALEXTREMA2DLVL3_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