IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
HoughSpheres3dImgLvl3.h
1 // HoughSpheres3dImgLvl3.h:
3 // ------------------------
4 //
14 
15 #ifndef __IPSDKIPLFEATUREDETECTION_HOUGHSPHERES3DIMGLVL3_H__
16 #define __IPSDKIPLFEATUREDETECTION_HOUGHSPHERES3DIMGLVL3_H__
17 
20 
21 // Attributes headers
22 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InHoughSpheresKernelXYZ.h>
23 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InHoughCirclesRadiusRange.h>
24 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Enumerate/InCircleIntensityType.h>
25 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Strip/ZStrip3d/OutZStrip3d.h>
26 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Strip/ZStrip3dWithKernel/InGxKnlZStrip3d.h>
27 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Strip/ZStrip3dWithKernel/InGyKnlZStrip3d.h>
28 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Strip/ZStrip3dWithKernel/InGzKnlZStrip3d.h>
29 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InMaxAngleWithGradDir.h>
30 
31 namespace ipsdk {
32 namespace imaproc {
33 namespace fd {
34 
37 
38 // declare processing algorithm
39 IPSDK_DECLARE_PROCESSING_ALGORITHM(IPSDKIPLFeatureDetection, HoughSpheres3dImg,
41  (((ipsdk)(imaproc)(attr))(InGxKnlZStrip3d))
42  (((ipsdk)(imaproc)(attr))(InGyKnlZStrip3d))
43  (((ipsdk)(imaproc)(attr))(InGzKnlZStrip3d))
44  (((ipsdk)(imaproc)(attr))(InCircleIntensityType))
45  (((ipsdk)(imaproc)(attr))(InMaxAngleWithGradDir))
46  (((ipsdk)(imaproc)(attr))(InHoughCirclesRadiusRange))
47  (((ipsdk)(imaproc)(attr))(InHoughSpheresKernelXYZ))
48  (((ipsdk)(imaproc)(attr))(OutZStrip3d)))
49 
50  // implementation of image processing data identifier retrieval method
51  // for function selector usage
52  IPSDK_DECLARE_ALGORITHM_FUNCTION_SELECTOR(((STRIP)(InGxKnlZStrip3d)));
53 
54  // declaration of parsed data during processing
55  IPSDK_DECLARE_ALGORITHM_PARSED_DATA(((LINESTRIP)(InGxKnlZStrip3d))
56  ((LINESTRIP)(InGyKnlZStrip3d))
57  ((LINESTRIP)(InGzKnlZStrip3d))
58  ((LINESTRIP)(OutZStrip3d)));
59 
60 // methods
61 public:
62 
63 protected:
64 
68 
70  template <typename BufInType,
71  ipsdk::eInstructionSet::domain IS>
72  ipsdk::BoolResult genericProcessFunction(const ipsdk::processor::ProcessingInfo& info);
73 
74 // attributes
75 protected:
77  typedef boost::scoped_array<const ipReal32*> BufColl;
78 
80  BufColl _pGxBufColl;
81  BufColl _pGyBufColl;
82  BufColl _pGzBufColl;
83  BufColl _pGradMagBufColl;
84 
85  FragHybridBufferPtr _pInitialGxNorm;
86  FragHybridBufferPtr _pMainGxNorm;
87  FragHybridBufferPtr _pFinalGxNorm;
88  FragHybridBufferPtr _pInitialGyNorm;
89  FragHybridBufferPtr _pMainGyNorm;
90  FragHybridBufferPtr _pFinalGyNorm;
91  FragHybridBufferPtr _pInitialGzNorm;
92  FragHybridBufferPtr _pMainGzNorm;
93  FragHybridBufferPtr _pFinalGzNorm;
94  FragHybridBufferPtr _pInitialGradMag;
95  FragHybridBufferPtr _pMainGradMag;
96  FragHybridBufferPtr _pFinalGradMag;
97 
98  std::vector<ipReal32> _vOutBuf;
99 
100 };
101 
104 
105 } // end of namespace fd
106 } // end of namespace imaproc
107 } // end of namespace ipsdk
108 
109 #endif // __IPSDKIPLFEATUREDETECTION_HOUGHSPHERES3DIMGLVL3_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)