IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
HoughCircles2dImgLvl3.h
1 // HoughCircles2dImgLvl3.h:
3 // ----------------------
4 //
14 
15 #ifndef __IPSDKIPLFEATUREDETECTION_HOUGHCIRCLES2DIMGLVL3_H__
16 #define __IPSDKIPLFEATUREDETECTION_HOUGHCIRCLES2DIMGLVL3_H__
17 
20 
21 // Attributes headers
22 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InHoughCirclesKernelXY.h>
23 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InHoughCirclesRadiusRange.h>
24 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InHoughCirclesRadiusRange.h>
25 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InTabulatedRangeExponentials.h>
26 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Enumerate/InCircleIntensityType.h>
27 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Strip/YStrip2d/OutYStrip2d.h>
28 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Strip/YStrip2dWithKernel/InGxKnlYStrip2d.h>
29 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Strip/YStrip2dWithKernel/InGyKnlYStrip2d.h>
30 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InMaxAngleWithGradDir.h>
31 
32 namespace ipsdk {
33 namespace imaproc {
34 namespace fd {
35 
38 
39 // declare processing algorithm
40 IPSDK_DECLARE_PROCESSING_ALGORITHM(IPSDKIPLFeatureDetection, HoughCircles2dImg,
42  (((ipsdk)(imaproc)(attr))(InGxKnlYStrip2d))
43  (((ipsdk)(imaproc)(attr))(InGyKnlYStrip2d))
44  (((ipsdk)(imaproc)(attr))(InCircleIntensityType))
45  (((ipsdk)(imaproc)(attr))(InMaxAngleWithGradDir))
46  (((ipsdk)(imaproc)(attr))(InHoughCirclesRadiusRange))
47  (((ipsdk)(imaproc)(attr))(InHoughCirclesKernelXY))
48  (((ipsdk)(imaproc)(attr))(OutYStrip2d)))
49 
50  // implementation of image processing data identifier retrieval method
51  // for function selector usage
52  IPSDK_DECLARE_ALGORITHM_FUNCTION_SELECTOR(((STRIP)(InGxKnlYStrip2d)));
53 
54  // declaration of parsed data during processing
55  IPSDK_DECLARE_ALGORITHM_PARSED_DATA(((LINESTRIP)(InGxKnlYStrip2d))
56  ((LINESTRIP)(InGyKnlYStrip2d))
57  ((LINESTRIP)(OutYStrip2d)));
58 
59 // methods
60 public:
61 
62 protected:
63 
67 
69  template <typename BufInType,
70  ipsdk::eInstructionSet::domain IS>
71  ipsdk::BoolResult genericProcessFunction(const ipsdk::processor::ProcessingInfo& info);
72 
73 // attributes
74 protected:
76  typedef boost::scoped_array<const ipReal32*> BufColl;
77 
79  BufColl _pGxBufColl;
80  BufColl _pGyBufColl;
81  BufColl _pGradMagBufColl;
82 
83  FragHybridBufferPtr _pInitialGxNorm;
84  FragHybridBufferPtr _pMainGxNorm;
85  FragHybridBufferPtr _pFinalGxNorm;
86  FragHybridBufferPtr _pInitialGyNorm;
87  FragHybridBufferPtr _pMainGyNorm;
88  FragHybridBufferPtr _pFinalGyNorm;
89  FragHybridBufferPtr _pInitialGradMag;
90  FragHybridBufferPtr _pMainGradMag;
91  FragHybridBufferPtr _pFinalGradMag;
92 
93  std::vector<ipReal32> _vOutBuf;
94 };
95 
98 
99 } // end of namespace fd
100 } // end of namespace imaproc
101 } // end of namespace ipsdk
102 
103 #endif // __IPSDKIPLFEATUREDETECTION_HOUGHCIRCLES2DIMGLVL3_H__
boost::shared_ptr< FragHybridBuffer > FragHybridBufferPtr
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)