IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
DicPhaseRetrieval2dImgLvl2.h
1 // DicPhaseRetrieval2dImgLvl2.h:
3 // -----------------------------
4 //
14 
15 #ifndef __IPSDKIPLFILTERING_DICPHASERETRIEVAL2DIMGLVL2_H__
16 #define __IPSDKIPLFILTERING_DICPHASERETRIEVAL2DIMGLVL2_H__
17 
20 
21 // Attributes headers
22 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/OutRealImg.h>
23 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/Working/OutWk1RealImg.h>
24 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/Working/OutWk2RealImg.h>
25 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/SubImage/Input/2d/InSubImg2d.h>
26 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InStdDev.h>
27 #include <IPSDKIPL/IPSDKIPLFiltering/Attribute/InDicPhaseRetrievalParams.h>
28 
29 namespace ipsdk {
30 namespace imaproc {
31 namespace filter {
32 
35 
36 // declare processor class
37 IPSDK_DECLARE_LVL2_PROCESSOR(REP_ASYNC1, IPSDKIPLFiltering, DicPhaseRetrieval2dImg,
38  ipsdk::imaproc::matchSize(_pInSubImg2d, _pOutWk1RealImg) &&
39  ipsdk::imaproc::matchSize(_pInSubImg2d, _pOutWk2RealImg) &&
40  ipsdk::imaproc::matchSize(_pInSubImg2d, _pOutRealImg),
41  (((ipsdk)(imaproc)(attr))(InSubImg2d))
42  (((ipsdk)(imaproc)(attr))(InStdDev))
43  (((ipsdk)(imaproc)(filter))(InDicPhaseRetrievalParams))
44  (((ipsdk)(imaproc)(attr))(OutWk1RealImg))
45  (((ipsdk)(imaproc)(attr))(OutWk2RealImg))
46  (((ipsdk)(imaproc)(attr))(OutRealImg)))
47 
48 // methods
49 public:
50 
51 protected:
55 
56  processor::RetrievalResult provideProcessor(const boost::shared_ptr<core::BaseAction>& pProcessor,
57  const core::BasePriority& priority,
58  core::ActionProviderPtr& pProvider);
59 
60  processor::RetrievalResult gaussianSmoothing(const core::BasePriority& priority, core::ActionProviderPtr& pProvider);
61  processor::RetrievalResult divide(const core::BasePriority& priority, core::ActionProviderPtr& pProvider);
62  processor::RetrievalResult fft(const core::BasePriority& priority, core::ActionProviderPtr& pProvider);
63  processor::RetrievalResult lvl3Fourier(const core::BasePriority& priority, core::ActionProviderPtr& pProvider);
64  processor::RetrievalResult ifft(const core::BasePriority& priority, core::ActionProviderPtr& pProvider);
65  processor::RetrievalResult lvl3Final(const core::BasePriority& priority, core::ActionProviderPtr& pProvider);
66 
67 // attributes
68 protected:
71  std::vector <FunctionType> _vFctCalls;
72 
73 };
74 
77 
78 } // end of namespace filter
79 } // end of namespace imaproc
80 } // end of namespace ipsdk
81 
82 #endif // __IPSDKIPLFILTERING_DICPHASERETRIEVAL2DIMGLVL2_H__
ProcessingResult< eRetrievalResultType > RetrievalResult
#define IPSDK_DECLARE_LVL2_PROCESSOR(ProcType, libraryName, algoName, RuleString, attributeSeq)
ipsdk::core::ExecResult preProcess()
method called before processing
boost::shared_ptr< BaseActionProvider > ActionProviderPtr
Level 2 algorithm: Phase retrieval from Paganin et al. 2004.
Definition: DicPhaseRetrieval2dImgLvl2.h:68
Definition of import/export macro for library.