IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
StackRegistrationImgLvl2.h
1 // StackRegistrationImgLvl2.h:
3 // ---------------------------
4 //
14 
15 #ifndef __IPSDKIPLREGISTRATION_STACKREGISTRATIONIMGLVL2_H__
16 #define __IPSDKIPLREGISTRATION_STACKREGISTRATIONIMGLVL2_H__
17 
20 #include <IPSDKIPL/IPSDKIPLAttributes/DataItem/WarpMotionTransform2d.h>
21 #include <IPSDKIPL/IPSDKIPLAttributes/DataItem/Features2dRegistrationResult.h>
22 #include <IPSDKIPL/IPSDKIPLAttributes/DataItem/PlanIndexedFeatures2dGreySignature.h>
23 
24 // Attributes headers
25 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/OutImg.h>
26 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/SubImage/Input/3d/InSubImg3d.h>
27 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InOptTheta.h>
28 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InOptMaxTranslation.h>
29 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Enumerate/InOptInterpolationPolicy.h>
30 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InOptRegistrationEstimationConfig.h>
31 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InOptWarpMotionTransform2dColl.h>
32 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/OutWarpMotionTransform2dColl.h>
33 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InOptCorrelationThreshold2d.h>
34 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/Working/OutWk1RealImg.h>
35 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/Working/OutWk2RealImg.h>
36 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/Working/OutWk3RealImg.h>
37 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/Working/OutWk4RealImg.h>
38 
39 namespace ipsdk {
40 namespace imaproc {
41 namespace registration {
42 
45 
46 // declare processor class
47 IPSDK_DECLARE_LVL2_PROCESSOR(REP_ASYNC1, IPSDKIPLRegistration, StackRegistrationImg,
48  ipsdk::imaproc::matchSize(_pInSubImg3d, _pOutImg),
49  (((ipsdk)(imaproc)(attr))(InSubImg3d))
50  (((ipsdk)(imaproc)(attr))(InOptTheta))
51  (((ipsdk)(imaproc)(attr))(InOptMaxTranslation))
52  (((ipsdk)(imaproc)(attr))(InOptInterpolationPolicy))
53  (((ipsdk)(imaproc)(attr))(InOptCorrelationThreshold2d))
54  (((ipsdk)(imaproc)(attr))(InOptRegistrationEstimationConfig))
55  (((ipsdk)(imaproc)(attr))(InOptWarpMotionTransform2dColl))
56  (((ipsdk)(imaproc)(attr))(OutWarpMotionTransform2dColl))
57  (((ipsdk)(imaproc)(attr))(OutWk1RealImg))
58  (((ipsdk)(imaproc)(attr))(OutWk2RealImg))
59  (((ipsdk)(imaproc)(attr))(OutWk3RealImg))
60  (((ipsdk)(imaproc)(attr))(OutWk4RealImg))
61  (((ipsdk)(imaproc)(attr))(OutImg)))
62 
63 // methods
64 public:
65 
66 protected:
70 
71  processor::RetrievalResult provideProcessor(const boost::shared_ptr<core::BaseAction>& pProcessor,
72  const core::BasePriority& priority,
73  core::ActionProviderPtr& pProvider);
74 
75  processor::RetrievalResult extractFeatures(const core::BasePriority& priority, core::ActionProviderPtr& pProvider);
76  processor::RetrievalResult estimTransformation(const core::BasePriority& priority, core::ActionProviderPtr& pProvider, const ipsdk::ipUInt64 sliceIdx);
77  processor::RetrievalResult copy(const core::BasePriority& priority, core::ActionProviderPtr& pProvider);
78  processor::RetrievalResult warp(const core::BasePriority& priority, core::ActionProviderPtr& pProvider, const ipsdk::ipUInt64 sliceIdx);
79 
80 // attributes
81 protected:
83  std::vector<ipsdk::imaproc::attr::WarpMotionTransform2dPtr> _vTransforms;
84 
86  ipsdk::ipReal32 _displacement;
87 
89  ipsdk::ipReal64 _maxTranslation;
90 
94 
96  ipsdk::imaproc::attr::Features2dRegistrationResultPtr _pFeatures2dRegistrationResult;
97 
102  ipsdk::ipUInt8 _stepIdx;
103 
105  ipsdk::ipUInt64 _sizeZ;
106 
109 
111  ipBool _bCopyTransformFromInput;
112 };
113 
116 
117 } // end of namespace registration
118 } // end of namespace imaproc
119 } // end of namespace ipsdk
120 
121 #endif // __IPSDKIPLREGISTRATION_STACKREGISTRATIONIMGLVL2_H__
boost::shared_ptr< ipsdk::imaproc::attr::Features2dRegistrationResult > Features2dRegistrationResultPtr
shared pointer to ipsdk::imaproc::attr::Features2dRegistrationResult
Definition: Features2dRegistrationResult.h:147
ProcessingResult< eRetrievalResultType > RetrievalResult
IPSDK_FORCEINLINE void copy(T *dest, const T *src, ipUInt64 nbElts)
#define IPSDK_DECLARE_LVL2_PROCESSOR(ProcType, libraryName, algoName, RuleString, attributeSeq)
uint64_t ipUInt64
double ipReal64
ipsdk::core::ExecResult preProcess()
method called before processing
uint8_t ipUInt8
Definition of import/export macro for library.
bool ipBool
boost::shared_ptr< BaseActionProvider > ActionProviderPtr
boost::shared_ptr< ipsdk::imaproc::attr::Features2dGreySignature > Features2dGreySignaturePtr
shared pointer to ipsdk::imaproc::attr::Features2dGreySignature
Definition: Features2dGreySignature.h:128
boost::shared_ptr< ipsdk::imaproc::attr::PlanIndexedFeatures2dGreySignature > PlanIndexedFeatures2dGreySignaturePtr
shared pointer to ipsdk::imaproc::attr::PlanIndexedFeatures2dGreySignature
Definition: PlanIndexedFeatures2dGreySignature.h:49
float ipReal32