IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
UnrollCylinderImgLvl1.h
1 // UnrollCylinderImgLvl1.h:
3 // --------------------------------
4 //
15 
16 #ifndef __IPSDKIPLGEOMETRICTRANSFORM_UNROLLCYLINDERIMGLVL1_H__
17 #define __IPSDKIPLGEOMETRICTRANSFORM_UNROLLCYLINDERIMGLVL1_H__
18 
21 #include <IPSDKIPL/IPSDKIPLGeometricTransform/Rule/UnrollCylinderRuleUtils.h>
23 #include <IPSDKIPL/IPSDKIPLGeometricTransform/OutputInitializer/UnrollCylinderInitializerUtils.h>
24 
25 // Attributes headers
26 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InCenter2d.h>
27 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InOptCylinderUnrollingIntegrationParams.h>
28 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Enumerate/InInterpolationPolicy.h>
29 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Input/3d/InImg3d.h>
30 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/2d/OutImg2d.h>
31 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InOptOutSizeX.h>
32 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InOptTheta0.h>
33 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InRadius.h>
34 
35 namespace ipsdk {
36 namespace imaproc {
37 namespace gtrans {
38 
41 
42 // declare processor class
43 IPSDK_DECLARE_LVL1_PROCESSOR(ASYNC1, IPSDKIPLGeometricTransform, UnrollCylinderImg,
44  ipsdk::imaproc::matchSize(eMatchImageSizeType::eMIST_CT, _pInImg3d, _pOutImg2d) &&
45  ipsdk::imaproc::gtrans::img1SizeZMatchImg2SizeY(_pInImg3d, _pOutImg2d) &&
46  ipsdk::imaproc::matchBufferType(_pInImg3d, _pOutImg2d) &&
47  testWholeCylinderInsideImg(_pInImg3d, _pInCenter2d, _pInRadius, _pInOptCylinderUnrollingIntegrationParams),
48  (((ipsdk)(imaproc)(attr))(InImg3d))
49  (((ipsdk)(imaproc)(attr))(InInterpolationPolicy))
50  (((ipsdk)(imaproc)(attr))(InRadius))
51  (((ipsdk)(imaproc)(attr))(InCenter2d))
52  (((ipsdk)(imaproc)(attr))(InOptOutSizeX))
53  (((ipsdk)(imaproc)(attr))(InOptTheta0))
54  (((ipsdk)(imaproc)(attr))(InOptCylinderUnrollingIntegrationParams))
55  (((ipsdk)(imaproc)(attr))(OutImg2d)(customOutput)(outputUnrollCylinder(_pInImg3d, _pInOptOutSizeX))))
56 
57 // methods
58 public:
59 
60 protected:
61 
62 // attributes
63 protected:
64 
65 };
66 
69 
70 } // end of namespace gtrans
71 } // end of namespace imaproc
72 } // end of namespace ipsdk
73 
74 #endif // __IPSDKIPLGEOMETRICTRANSFORM_UNROLLCYLINDERIMGLVL1_H__
#define IPSDK_DECLARE_LVL1_PROCESSOR(ProcType, libraryName, algoName, RuleString, attributeSeq)
Definition of import/export macro for library.
IPSDKIPLGEOMETRICTRANSFORM_API CustomImageInfoPtr outputUnrollCylinder(const ImageAttributeConstPtr &pInputAttribute, const boost::shared_ptr< const attr::InOptOutSizeX > &pSizeAttribute)
function allowing to create a "unroll cylinder" image initializer
processor::OutputInitializerPtr customOutput(const boost::weak_ptr< OutputAttributeType > &pOutputAttribute, const CustomImageInfoPtr &pCustomImageInfo)