IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
GreySignedFeaturesImg2dRegistrationLvl1.h
1 // GreySignedFeaturesImg2dRegistrationLvl1.h:
3 // ------------------------------------------
4 //
14 
15 #ifndef __IPSDKIPLREGISTRATION_GREYSIGNEDFEATURESIMG2DREGISTRATIONLVL1_H__
16 #define __IPSDKIPLREGISTRATION_GREYSIGNEDFEATURESIMG2DREGISTRATIONLVL1_H__
17 
21 
22 // Attributes headers
23 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Input/2d/InOriginImg2d.h>
24 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Input/2d/InTargetImg2d.h>
25 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InOptScaleCandidates.h>
26 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InOptGradStdDev.h>
27 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InOptGradientGaussianCoverage.h>
28 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InOptCornerDetectionParams2d.h>
29 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InOptNbFeatures.h>
30 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InOptFeaturesDistX.h>
31 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InOptFeaturesDistY.h>
32 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Enumerate/InOptInterpolationPolicy.h>
33 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InOptSamplingBallInfo2d.h>
34 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Enumerate/InOptRegMotionModel2d.h>
35 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InOptCorrelationThreshold2d.h>
36 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InOptRegistrationEstimationConfig.h>
37 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/Working/OutWk1Img.h>
38 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/Working/OutWk2Img.h>
39 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/Working/OutWk3Img.h>
40 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/Working/OutWk4Img.h>
41 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/OutFeatures2dRegistrationResults.h>
42 #include <IPSDKIPL/IPSDKIPLAttributes/DataItem/Features2dGreySignature.h>
43 
44 namespace ipsdk {
45 namespace imaproc {
46 namespace registration {
47 
50 
51 // declare processor class
52 IPSDK_DECLARE_LVL1_PROCESSOR(REP_ASYNC1, IPSDKIPLRegistration, GreySignedFeaturesImg2dRegistration,
53  ((ipsdk::imaproc::matchBufferType(_pInOriginImg2d, _pInTargetImg2d)) &&
54  (ipsdk::imaproc::isReInterpretable(_pOutWk1Img, _pInOriginImg2d)) &&
55  (ipsdk::imaproc::isReInterpretable(_pOutWk1Img, _pInTargetImg2d)) &&
56  (ipsdk::imaproc::matchSizeAndType(_pOutWk1Img, _pOutWk2Img, _pOutWk3Img,
57  _pOutWk4Img))),
58  (((ipsdk)(imaproc)(attr))(InOriginImg2d))
59  (((ipsdk)(imaproc)(attr))(InTargetImg2d))
60  (((ipsdk)(imaproc)(attr))(InOptScaleCandidates))
61  (((ipsdk)(imaproc)(attr))(InOptGradStdDev))
62  (((ipsdk)(imaproc)(attr))(InOptGradientGaussianCoverage))
63  (((ipsdk)(imaproc)(attr))(InOptCornerDetectionParams2d))
64  (((ipsdk)(imaproc)(attr))(InOptNbFeatures))
65  (((ipsdk)(imaproc)(attr))(InOptFeaturesDistX))
66  (((ipsdk)(imaproc)(attr))(InOptFeaturesDistY))
67  (((ipsdk)(imaproc)(attr))(InOptInterpolationPolicy))
68  (((ipsdk)(imaproc)(attr))(InOptSamplingBallInfo2d))
69  (((ipsdk)(imaproc)(attr))(InOptRegMotionModel2d))
70  (((ipsdk)(imaproc)(attr))(InOptCorrelationThreshold2d))
71  (((ipsdk)(imaproc)(attr))(InOptRegistrationEstimationConfig))
72  (((ipsdk)(imaproc)(attr))(OutWk1Img)(promoteReInterpretable)(_pInOriginImg2d)(_pInTargetImg2d)(ipsdk::imaproc::ePromoteBinaryType::ePBT_UpperSigned))
73  (((ipsdk)(imaproc)(attr))(OutWk2Img)(promoteReInterpretable)(_pInOriginImg2d)(_pInTargetImg2d)(ipsdk::imaproc::ePromoteBinaryType::ePBT_UpperSigned))
74  (((ipsdk)(imaproc)(attr))(OutWk3Img)(promoteReInterpretable)(_pInOriginImg2d)(_pInTargetImg2d)(ipsdk::imaproc::ePromoteBinaryType::ePBT_UpperSigned))
75  (((ipsdk)(imaproc)(attr))(OutWk4Img)(promoteReInterpretable)(_pInOriginImg2d)(_pInTargetImg2d)(ipsdk::imaproc::ePromoteBinaryType::ePBT_UpperSigned))
76  (((ipsdk)(imaproc)(attr))(OutFeatures2dRegistrationResults)(allocate)))
77 
78 // methods
79 public:
80 
81 protected:
85 
88  ipsdk::core::ExecResult postProcess();
89 
91  void clearIntermediateData();
92 
93 // attributes
94 protected:
96  ipUInt32 _curStepIdx;
97 
99  ipUInt32 _curSubStepIdx;
100 
102  ipUInt32 _nbTotSteps;
103 
105  attr::Features2dGreySignaturePtr _pOriginSignatures;
106 
108  attr::Features2dGreySignaturePtr _pTargetSignatures;
109 
111  typedef std::vector<attr::Features2dRegistrationResultPtr> RegistrationResultColl;
112 
114  RegistrationResultColl _registrationResultColl;
115 };
116 
119 
120 } // end of namespace registration
121 } // end of namespace imaproc
122 } // end of namespace ipsdk
123 
124 #endif // __IPSDKIPLREGISTRATION_GREYSIGNEDFEATURESIMG2DREGISTRATIONLVL1_H__
#define IPSDK_DECLARE_LVL1_PROCESSOR(ProcType, libraryName, algoName, RuleString, attributeSeq)
ePBT_UpperSigned
ipsdk::core::ExecResult preProcess()
method called before processing
Definition of import/export macro for library.
IPSDK_DECLARE_GPU_PROCESSING_ALGORITHM(IPSDKIPLFiltering, Convolution2dImg, ipsdk::imaproc::matchSize(_pInSubGpuImg, _pOutImg),(((ipsdk)(imaproc)(attr))(InSubGpuImg))(((ipsdk)(imaproc)(attr))(InKnlXY))(((ipsdk)(imaproc)(attr))(InNormalize))(((ipsdk)(imaproc)(attr))(InConvolBorder2d))(((ipsdk)(imaproc)(attr))(OutImg))) IPSDKCUDA_DECLARE_ALGORITHM_FUNCTION_SELECTOR((InSubGpuImg)(OutImg)) public void clearIntermediateData()
method called before processing
boost::shared_ptr< ipsdk::imaproc::attr::Features2dGreySignature > Features2dGreySignaturePtr
shared pointer to ipsdk::imaproc::attr::Features2dGreySignature
Definition: Features2dGreySignature.h:128
processor::OutputInitializerPtr promoteReInterpretable(const boost::weak_ptr< OutputAttributeType > &pOutputAttribute, const boost::weak_ptr< InputAttributeType1 > &pInputAttribute1, const boost::weak_ptr< InputAttributeType2 > &pInputAttribute2, const ePromoteBinaryType &promoteBinaryType)
uint32_t ipUInt32