IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
HoughLinesGradient2dLvl2.h
1 // HoughLinesGradient2dLvl2.h:
3 // -------------------
4 //
14 
15 #ifndef __IPSDKIPLFEATUREDETECTION_HOUGHLINESGRADIENT2DLVL2_H__
16 #define __IPSDKIPLFEATUREDETECTION_HOUGHLINESGRADIENT2DLVL2_H__
17 
20 
21 // Attributes headers
22 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InOptHoughLinesExtractionParams.h>
23 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InOptHoughLinesGradientImgParams.h>
24 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/OutHoughLines2dPpties.h>
25 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/SubImage/Input/2d/InSubGxImg2d.h>
26 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/SubImage/Input/2d/InSubGyImg2d.h>
27 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/OutRealImg.h>
28 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InOptHoughLinesOrientationTolerance.h>
29 
30 #include <IPSDKIPL/IPSDKIPLGlobalMeasure/Processor/StatsMsr2d/StatsMsr2dLvl2.h>
31 #include <IPSDKIPL/IPSDKIPLGlobalMeasure/Processor/HistogramMsr2d/HistogramMsr2dLvl2.h>
32 #include <IPSDKIPL/IPSDKIPLFeatureDetection/Processor/ExtractLocalExtrema2d/ExtractLocalExtrema2dLvl2.h>
33 
34 namespace ipsdk {
35 namespace imaproc {
36 namespace fd {
37 
40 
41 // declare processor class
42 IPSDK_DECLARE_LVL2_PROCESSOR(REP_ASYNC1, IPSDKIPLFeatureDetection, HoughLinesGradient2d,
44  (((ipsdk)(imaproc)(attr))(InSubGxImg2d))
45  (((ipsdk)(imaproc)(attr))(InSubGyImg2d))
46  (((ipsdk)(imaproc)(attr))(InOptHoughLinesGradientImgParams))
47  (((ipsdk)(imaproc)(attr))(InOptHoughLinesExtractionParams))
48  (((ipsdk)(imaproc)(attr))(InOptHoughLinesOrientationTolerance))
49  (((ipsdk)(imaproc)(attr))(OutRealImg))
50  (((ipsdk)(imaproc)(attr))(OutHoughLines2dPpties)))
51 
52 // methods
53 public:
54 
55 protected:
56  processor::RetrievalResult provideProcessor(
57  const boost::shared_ptr<core::BaseAction>& pProcessor,
58  const core::BasePriority& priority,
59  core::ActionProviderPtr& pProvider);
60 
61  processor::RetrievalResult houghLines(
62  const core::BasePriority& priority,
63  core::ActionProviderPtr& pProvider);
64 
66  const core::BasePriority& priority,
67  core::ActionProviderPtr& pProvider);
68 
70  const core::BasePriority& priority,
71  core::ActionProviderPtr& pProvider);
72 
73  processor::RetrievalResult localExtrema(
74  const core::BasePriority& priority,
75  core::ActionProviderPtr& pProvider);
76 
77  void extractLines();
78 
79  void duplicateOutImgFirstRowsAtTheEndIfNecessary();
80 // attributes
81 protected:
83  attr::StatsResultPtr _pStatsResult;
84  attr::HistogramDataPtr _pHistoResult;
85  boost::shared_ptr<attr::Pixels2d> _pMaxima;
86 
88  boost::shared_ptr<glbmsr::StatsMsr2dLvl2> _pStatsProcessor;
89  boost::shared_ptr<glbmsr::HistogramMsr2dLvl2> _pHistoProcessor;
90  boost::shared_ptr<ExtractLocalExtrema2dLvl2> _pLocalExtremaProcessor;
91 };
92 
95 
96 } // end of namespace fd
97 } // end of namespace imaproc
98 } // end of namespace ipsdk
99 
100 #endif // __IPSDKIPLFEATUREDETECTION_HOUGHLINESGRADIENT2DLVL2_H__
ProcessingResult< eRetrievalResultType > RetrievalResult
#define IPSDK_DECLARE_LVL2_PROCESSOR(ProcType, libraryName, algoName, RuleString, attributeSeq)
IPSDKBASEPROCESSING_API RulePtr none()
Definition of import/export macro for library.
boost::shared_ptr< ipsdk::imaproc::attr::HistogramData > HistogramDataPtr
shared pointer to ipsdk::imaproc::HistogramData
Definition: HistogramData.h:231
boost::shared_ptr< BaseActionProvider > ActionProviderPtr
boost::shared_ptr< ipsdk::imaproc::attr::StatsResult > StatsResultPtr
shared pointer to ipsdk::imaproc::attr::StatsResult
Definition: StatsResult.h:206