IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
UnrollRingImgLvl1.h
1 // UnrollRingImgLvl1.h:
3 // --------------------
4 //
14 
15 #ifndef __IPSDKIPLGEOMETRICTRANSFORM_UNROLLRINGIMGLVL1_H__
16 #define __IPSDKIPLGEOMETRICTRANSFORM_UNROLLRINGIMGLVL1_H__
17 
22 
23 // Attributes headers
24 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Input/InImg.h>
25 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InCenter2d.h>
26 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InRadius.h>
27 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InRingHalfThickness.h>
28 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InOptTheta0.h>
29 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Enumerate/InOptInterpolationPolicy.h>
30 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InOptOutSizeX.h>
31 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InOptTargetTile2dSideLength.h>
32 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/OutImg.h>
33 
34 namespace ipsdk {
35 namespace imaproc {
36 namespace gtrans {
37 
40 
41 // declare processor class
42 IPSDK_DECLARE_LVL1_PROCESSOR(ASYNC1, IPSDKIPLGeometricTransform, UnrollRingImg,
43  ipsdk::imaproc::matchSize(eMatchImageSizeType::eMIST_ZCT, _pInImg, _pOutImg) &&
44  ipsdk::imaproc::matchBufferType(_pInImg, _pOutImg) &&
45  ipsdk::imaproc::gtrans::wholeRingIsInsideImg(_pInImg, _pInCenter2d, _pInRadius, _pInRingHalfThickness) &&
46  ipsdk::imaproc::customImageProperty(_pOutImg, ipsdk::imaproc::gtrans::matchUnrollingOutput(_pOutImg, _pInOptOutSizeX, _pInRingHalfThickness)),
47  (((ipsdk)(imaproc)(attr))(InImg))
48  (((ipsdk)(imaproc)(attr))(InCenter2d))
49  (((ipsdk)(imaproc)(attr))(InRadius))
50  (((ipsdk)(imaproc)(attr))(InRingHalfThickness))
51  (((ipsdk)(imaproc)(attr))(InOptTheta0))
52  (((ipsdk)(imaproc)(attr))(InOptInterpolationPolicy))
53  (((ipsdk)(imaproc)(attr))(InOptOutSizeX))
54  (((ipsdk)(imaproc)(attr))(InOptTargetTile2dSideLength))
55  (((ipsdk)(imaproc)(attr))(OutImg)(customOutput)(outputUnrollRing(_pInImg, _pInOptOutSizeX, _pInRingHalfThickness))))
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_UNROLLRINGIMGLVL1_H__
#define IPSDK_DECLARE_LVL1_PROCESSOR(ProcType, libraryName, algoName, RuleString, attributeSeq)
utility functions for ring unrolling output attribute initialization management
Definition of import/export macro for library.
IPSDKIPLGEOMETRICTRANSFORM_API CustomImageInfoPtr outputUnrollRing(const ImageAttributeConstPtr &pInputAttribute, const boost::shared_ptr< const attr::InOptOutSizeX > &pInOptOutSizeX, const boost::shared_ptr< const attr::InRingHalfThickness > &pInRingHalfThickness)
function allowing to create a "unroll ring" image initializer
processor::OutputInitializerPtr customOutput(const boost::weak_ptr< OutputAttributeType > &pOutputAttribute, const CustomImageInfoPtr &pCustomImageInfo)
processor::RulePtr wholeRingIsInsideImg(const ImageAttributeConstPtr &pInImg, const boost::shared_ptr< attr::InCenter2d > &pInCenter2d, const boost::shared_ptr< attr::InRadius > &pInRadius, const boost::shared_ptr< attr::InRingHalfThickness > pInRingHalfThickness)
rule allowing to check that whole ring is contained into input image
CustomCheckedImagePropertyPtr matchUnrollingOutput(const ImageAttributeConstPtr &pOutImg, const boost::shared_ptr< const attr::InOptOutSizeX > &pInOptOutSizeX, const boost::shared_ptr< const attr::InRingHalfThickness > &pInRingHalfThickness)
rule allowing to check that output image plan size match ring unrolling parameters ...
Utility functions for attribute rules management for ring unrolling.