IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
PatchBasedBilateral2dImgLvl2.h
1 // PatchBasedBilateral2dImgLvl2.h:
3 // -------------------------
4 //
14 
15 #ifndef __IPSDKIPLFILTERING_PATCHBASEDBILATERAL2DIMGLVL2_H__
16 #define __IPSDKIPLFILTERING_PATCHBASEDBILATERAL2DIMGLVL2_H__
17 
20 
21 // Attributes headers
22 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InOptPatchBasedBilateralParams.h>
23 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/OutPatchBasedBilateralParams.h>
24 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/SubImage/Input/2d/InSubImg2d.h>
25 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/OutImg.h>
26 #include <IPSDKIPL/IPSDKIPLAttributes/DataItem/GaussianNoiseStats.h>
27 #include <IPSDKIPL/IPSDKIPLAttributes/DataItem/HistogramData.h>
28 
29 namespace ipsdk {
30 namespace imaproc {
31 namespace filter {
32 
35 
36 // declare processor class
37 IPSDK_DECLARE_LVL2_PROCESSOR(ASYNC3, IPSDKIPLFiltering, PatchBasedBilateral2dImg,
38  ipsdk::imaproc::matchSize(_pInSubImg2d, _pOutImg),
39  (((ipsdk)(imaproc)(attr))(InSubImg2d))
40  (((ipsdk)(imaproc)(attr))(InOptPatchBasedBilateralParams))
41  (((ipsdk)(imaproc)(attr))(OutPatchBasedBilateralParams))
42  (((ipsdk)(imaproc)(attr))(OutImg)))
43 
44 // methods
45 public:
46 
47 protected:
48  processor::RetrievalResult retrieveHistogramMsrProvider(
49  const core::BasePriority& priority,
50  core::ActionProviderPtr& pProvider);
51 
52  void computePatchBasedBilateralParamsFromHistogramMsrResults();
53 
54  processor::RetrievalResult retrieveLastProvider(
55  const core::BasePriority& priority,
56  core::ActionProviderPtr& pProvider);
57 
58  processor::RetrievalResult provideProcessor(
59  const boost::shared_ptr<core::BaseAction>& pProcessor,
60  const core::BasePriority& priority,
61  core::ActionProviderPtr& pProvider);
62 
63 // attributes
64 protected:
65  attr::GaussianNoiseStatsPtr _pGaussianNoiseStats;
66  attr::HistogramDataPtr _pHistogram;
67 };
68 
71 
72 } // end of namespace filter
73 } // end of namespace imaproc
74 } // end of namespace ipsdk
75 
76 #endif // __IPSDKIPLFILTERING_PATCHBASEDBILATERAL2DIMGLVL2_H__
ProcessingResult< eRetrievalResultType > RetrievalResult
#define IPSDK_DECLARE_LVL2_PROCESSOR(ProcType, libraryName, algoName, RuleString, attributeSeq)
boost::shared_ptr< ipsdk::imaproc::attr::HistogramData > HistogramDataPtr
shared pointer to ipsdk::imaproc::HistogramData
Definition: HistogramData.h:231
boost::shared_ptr< ipsdk::imaproc::attr::GaussianNoiseStats > GaussianNoiseStatsPtr
shared pointer to ipsdk::imaproc::attr::GaussianNoiseStats
Definition: GaussianNoiseStats.h:149
boost::shared_ptr< BaseActionProvider > ActionProviderPtr
Definition of import/export macro for library.