IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
HoughLines2dLvl2.h
1 // HoughLines2dLvl2.h:
3 // -------------------
4 //
14 
15 #ifndef __IPSDKIPLFEATUREDETECTION_HOUGHLINES2DLVL2_H__
16 #define __IPSDKIPLFEATUREDETECTION_HOUGHLINES2DLVL2_H__
17 
20 
21 // Attributes headers
22 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InOptHoughLinesExtractionParams.h>
23 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InOptHoughLinesImgParams.h>
24 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/OutHoughLines2dPpties.h>
25 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/SubImage/Input/2d/InSubImg2d.h>
26 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/OutImg.h>
27 
28 #include <IPSDKIPL/IPSDKIPLGlobalMeasure/Processor/StatsMsr2d/StatsMsr2dLvl2.h>
29 #include <IPSDKIPL/IPSDKIPLGlobalMeasure/Processor/HistogramMsr2d/HistogramMsr2dLvl2.h>
30 #include <IPSDKIPL/IPSDKIPLFeatureDetection/Processor/ExtractLocalExtrema2d/ExtractLocalExtrema2dLvl2.h>
31 
32 namespace ipsdk {
33 namespace imaproc {
34 namespace fd {
35 
38 
39 // declare processor class
40 IPSDK_DECLARE_LVL2_PROCESSOR(REP_ASYNC1, IPSDKIPLFeatureDetection, HoughLines2d,
42  (((ipsdk)(imaproc)(attr))(InSubImg2d))
43  (((ipsdk)(imaproc)(attr))(InOptHoughLinesImgParams))
44  (((ipsdk)(imaproc)(attr))(InOptHoughLinesExtractionParams))
45  (((ipsdk)(imaproc)(attr))(OutImg))
46  (((ipsdk)(imaproc)(attr))(OutHoughLines2dPpties)))
47 
48 // methods
49 public:
50 
51 protected:
52  processor::RetrievalResult provideProcessor(
53  const boost::shared_ptr<core::BaseAction>& pProcessor,
54  const core::BasePriority& priority,
55  core::ActionProviderPtr& pProvider);
56 
57  processor::RetrievalResult houghLines(
58  const core::BasePriority& priority,
59  core::ActionProviderPtr& pProvider);
60 
62  const core::BasePriority& priority,
63  core::ActionProviderPtr& pProvider);
64 
66  const core::BasePriority& priority,
67  core::ActionProviderPtr& pProvider);
68 
69  processor::RetrievalResult localExtrema(
70  const core::BasePriority& priority,
71  core::ActionProviderPtr& pProvider);
72 
73  void extractLines();
74 
75  void duplicateOutImgFirstRowsAtTheEndIfNecessary();
76 // attributes
77 protected:
79  attr::StatsResultPtr _pStatsResult;
80  attr::HistogramDataPtr _pHistoResult;
81  boost::shared_ptr<attr::Pixels2d> _pMaxima;
82 
84  boost::shared_ptr<glbmsr::StatsMsr2dLvl2> _pStatsProcessor;
85  boost::shared_ptr<glbmsr::HistogramMsr2dLvl2> _pHistoProcessor;
86  boost::shared_ptr<ExtractLocalExtrema2dLvl2> _pLocalExtremaProcessor;
87 };
88 
91 
92 } // end of namespace fd
93 } // end of namespace imaproc
94 } // end of namespace ipsdk
95 
96 #endif // __IPSDKIPLFEATUREDETECTION_HOUGHLINES2DLVL2_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