IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
NormalizedCrossCorrelation2dImgLvl3.h
1 // NormalizedCrossCorrelation2dImgLvl3.h:
3 // --------------------------------------
4 //
14 
15 #ifndef __IPSDKIPLFILTERING_NORMALIZEDCROSSCORRELATION2DIMGLVL3_H__
16 #define __IPSDKIPLFILTERING_NORMALIZEDCROSSCORRELATION2DIMGLVL3_H__
17 
20 
21 // Attributes headers
22 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Kernel/InKnlXY.h>
23 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Strip/YStrip2d/OutYStrip2d.h>
24 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Strip/YStrip2dWithKernel/InKnlYStrip2d.h>
25 #include <IPSDKBaseData/Pattern/OffsetXY.h>
26 
27 namespace ipsdk {
28 namespace imaproc {
29 namespace filter {
30 
33 
34 // declare processing algorithm
35 IPSDK_DECLARE_PROCESSING_ALGORITHM(IPSDKIPLFiltering, NormalizedCrossCorrelation2dImg,
36  ipsdk::imaproc::matchSize(_pInKnlYStrip2d, _pOutYStrip2d),
37  (((ipsdk)(imaproc)(attr))(InKnlYStrip2d))
38  (((ipsdk)(imaproc)(attr))(InKnlXY))
39  (((ipsdk)(imaproc)(attr))(OutYStrip2d)))
40 
41  // implementation of image processing data identifier retrieval method
42  // for function selector usage
43  IPSDK_DECLARE_ALGORITHM_FUNCTION_SELECTOR(((STRIP)(InKnlYStrip2d)));
44 
45  // declaration of parsed data during processing
46  IPSDK_DECLARE_ALGORITHM_PARSED_DATA(((LINESTRIP)(InKnlYStrip2d))
47  ((LINESTRIP)(OutYStrip2d)));
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:
65  typedef std::vector<OffsetXY> OffsetColl;
66 
68  OffsetColl _offsetColl;
69 
71  typedef std::vector<ipReal32> CoefColl;
72 
74  CoefColl _coefColl;
75 
77  typedef boost::scoped_array<const void*> BufColl;
78 
80  BufColl _pBufColl;
81 
84  FragHybridBufferPtr _pInitialXMean;
85  FragHybridBufferPtr _pMainXMean;
86  FragHybridBufferPtr _pFinalXMean;
87  FragHybridBufferPtr _pInitialXMeanSq;
88  FragHybridBufferPtr _pMainXMeanSq;
89  FragHybridBufferPtr _pFinalXMeanSq;
91 
94  HybridBufferPtr _pInitialXYMean;
95  HybridBufferPtr _pMainXYMean;
96  HybridBufferPtr _pFinalXYMean;
97  HybridBufferPtr _pInitialXYMeanSq;
98  HybridBufferPtr _pMainXYMeanSq;
99  HybridBufferPtr _pFinalXYMeanSq;
101 };
102 
105 
106 } // end of namespace filter
107 } // end of namespace imaproc
108 } // end of namespace ipsdk
109 
110 #endif // __IPSDKIPLFILTERING_NORMALIZEDCROSSCORRELATION2DIMGLVL3_H__
boost::shared_ptr< FragHybridBuffer > FragHybridBufferPtr
ipsdk::core::ExecResult preProcess()
method called before processing
#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< HybridBuffer > HybridBufferPtr
Definition of import/export macro for library.