IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
GreySignedFeaturesImg3dRegistrationLvl1.h
1 // GreySignedFeaturesImg3dRegistrationLvl1.h:
3 // ------------------------------------------
4 //
14 
15 #ifndef __IPSDKIPLREGISTRATION_GREYSIGNEDFEATURESIMG3DREGISTRATIONLVL1_H__
16 #define __IPSDKIPLREGISTRATION_GREYSIGNEDFEATURESIMG3DREGISTRATIONLVL1_H__
17 
21 
22 // Attributes headers
23 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Input/3d/InOriginImg3d.h>
24 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Input/3d/InTargetImg3d.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/InOptCornerDetectionParams3d.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/Value/InOptFeaturesDistZ.h>
33 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Enumerate/InOptInterpolationPolicy.h>
34 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InOptSamplingBallInfo3d.h>
35 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Enumerate/InOptRegMotionModel3d.h>
36 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InOptCorrelationThreshold3d.h>
37 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InOptRegistrationEstimationConfig.h>
38 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/Working/OutWk1Img.h>
39 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/Working/OutWk2Img.h>
40 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/Working/OutWk3Img.h>
41 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/Working/OutWk4Img.h>
42 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/Working/OutWk5Img.h>
43 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/Working/OutWk6Img.h>
44 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/Working/OutWk7Img.h>
45 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/OutFeatures3dRegistrationResults.h>
46 #include <IPSDKIPL/IPSDKIPLAttributes/DataItem/Features3dGreySignature.h>
47 
48 namespace ipsdk {
49 namespace imaproc {
50 namespace registration {
51 
54 
55 // declare processor class
56 IPSDK_DECLARE_LVL1_PROCESSOR(REP_ASYNC1, IPSDKIPLRegistration, GreySignedFeaturesImg3dRegistration,
57  ((ipsdk::imaproc::matchBufferType(_pInOriginImg3d, _pInTargetImg3d)) &&
58  (ipsdk::imaproc::isReInterpretable(_pOutWk1Img, _pInOriginImg3d)) &&
59  (ipsdk::imaproc::isReInterpretable(_pOutWk1Img, _pInTargetImg3d)) &&
60  (ipsdk::imaproc::matchSizeAndType(_pOutWk1Img, _pOutWk2Img, _pOutWk3Img,
61  _pOutWk4Img, _pOutWk5Img, _pOutWk6Img)) &&
62  (ipsdk::imaproc::matchSizeAndType(_pOutWk1Img, _pOutWk7Img))),
63  (((ipsdk)(imaproc)(attr))(InOriginImg3d))
64  (((ipsdk)(imaproc)(attr))(InTargetImg3d))
65  (((ipsdk)(imaproc)(attr))(InOptScaleCandidates))
66  (((ipsdk)(imaproc)(attr))(InOptGradStdDev))
67  (((ipsdk)(imaproc)(attr))(InOptGradientGaussianCoverage))
68  (((ipsdk)(imaproc)(attr))(InOptCornerDetectionParams3d))
69  (((ipsdk)(imaproc)(attr))(InOptNbFeatures))
70  (((ipsdk)(imaproc)(attr))(InOptFeaturesDistX))
71  (((ipsdk)(imaproc)(attr))(InOptFeaturesDistY))
72  (((ipsdk)(imaproc)(attr))(InOptFeaturesDistZ))
73  (((ipsdk)(imaproc)(attr))(InOptInterpolationPolicy))
74  (((ipsdk)(imaproc)(attr))(InOptSamplingBallInfo3d))
75  (((ipsdk)(imaproc)(attr))(InOptRegMotionModel3d))
76  (((ipsdk)(imaproc)(attr))(InOptCorrelationThreshold3d))
77  (((ipsdk)(imaproc)(attr))(InOptRegistrationEstimationConfig))
78  (((ipsdk)(imaproc)(attr))(OutWk1Img)(promoteReInterpretable)(_pInOriginImg3d)(_pInTargetImg3d)(ipsdk::imaproc::ePromoteBinaryType::ePBT_UpperSigned))
79  (((ipsdk)(imaproc)(attr))(OutWk2Img)(promoteReInterpretable)(_pInOriginImg3d)(_pInTargetImg3d)(ipsdk::imaproc::ePromoteBinaryType::ePBT_UpperSigned))
80  (((ipsdk)(imaproc)(attr))(OutWk3Img)(promoteReInterpretable)(_pInOriginImg3d)(_pInTargetImg3d)(ipsdk::imaproc::ePromoteBinaryType::ePBT_UpperSigned))
81  (((ipsdk)(imaproc)(attr))(OutWk4Img)(promoteReInterpretable)(_pInOriginImg3d)(_pInTargetImg3d)(ipsdk::imaproc::ePromoteBinaryType::ePBT_UpperSigned))
82  (((ipsdk)(imaproc)(attr))(OutWk5Img)(promoteReInterpretable)(_pInOriginImg3d)(_pInTargetImg3d)(ipsdk::imaproc::ePromoteBinaryType::ePBT_UpperSigned))
83  (((ipsdk)(imaproc)(attr))(OutWk6Img)(promoteReInterpretable)(_pInOriginImg3d)(_pInTargetImg3d)(ipsdk::imaproc::ePromoteBinaryType::ePBT_UpperSigned))
84  (((ipsdk)(imaproc)(attr))(OutWk7Img)(promoteReInterpretable)(_pInOriginImg3d)(_pInTargetImg3d)(ipsdk::imaproc::ePromoteBinaryType::ePBT_UpperSigned))
85  (((ipsdk)(imaproc)(attr))(OutFeatures3dRegistrationResults)(allocate)))
86 
87 // methods
88 public:
89 
90 protected:
94 
97  ipsdk::core::ExecResult postProcess();
98 
100  void clearIntermediateData();
101 
102 // attributes
103 protected:
105  ipUInt32 _curStepIdx;
106 
108  ipUInt32 _curSubStepIdx;
109 
111  ipUInt32 _nbTotSteps;
112 
114  attr::Features3dGreySignaturePtr _pOriginSignatures;
115 
117  attr::Features3dGreySignaturePtr _pTargetSignatures;
118 
120  typedef std::vector<attr::Features3dRegistrationResultPtr> RegistrationResultColl;
121 
123  RegistrationResultColl _registrationResultColl;
124 };
125 
128 
129 } // end of namespace registration
130 } // end of namespace imaproc
131 } // end of namespace ipsdk
132 
133 #endif // __IPSDKIPLREGISTRATION_GREYSIGNEDFEATURESIMG3DREGISTRATIONLVL1_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.
boost::shared_ptr< ipsdk::imaproc::attr::Features3dGreySignature > Features3dGreySignaturePtr
shared pointer to ipsdk::imaproc::attr::Features3dGreySignature
Definition: Features3dGreySignature.h:128
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
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