IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
AnisotropicDiffusion2dImgLvl1.h
1 // AnisotropicDiffusion2dImgLvl1.h:
3 // --------------------------------
4 //
14 
15 #ifndef __IPSDKIPLFILTERING_ANISOTROPICDIFFUSION2DIMGLVL1_H__
16 #define __IPSDKIPLFILTERING_ANISOTROPICDIFFUSION2DIMGLVL1_H__
17 
21 #include <IPSDKIPL/IPSDKIPLAttributes/DataItem/StatsResult.h>
22 
23 // Attributes headers
24 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Input/InImg.h>
25 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InNbTimeSteps.h>
26 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InSharpness.h>
27 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InAnisotropy.h>
28 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InOptStdDevGrad.h>
29 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InOptAnisotropicGaussianCoverage.h>
30 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InOptStdDevMat.h>
31 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InOptSmoothingGaussianCoverage.h>
32 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InOptNbAngles2d.h>
33 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InOptMaxHalfKnlSize.h>
34 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InOptDirSmoothFactor.h>
35 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InOptSpatialStep.h>
36 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/Working/OutWk1Img.h>
37 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/Working/OutWk2Img.h>
38 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/Working/OutWk3Img.h>
39 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/OutImg.h>
40 
41 namespace ipsdk {
42 namespace imaproc {
43 namespace filter {
44 
47 
48 // declare processor class
49 IPSDK_DECLARE_LVL1_PROCESSOR(ASYNC1, IPSDKIPLFiltering, AnisotropicDiffusion2dImg,
50  matchSizeAndType(_pInImg, _pOutImg) &&
51  matchSize(_pInImg, _pOutWk1Img) &&
52  matchSizeAndType(_pOutWk1Img, _pOutWk2Img) &&
53  matchSizeAndType(_pOutWk1Img, _pOutWk3Img),
54  (((ipsdk)(imaproc)(attr))(InImg))
55  (((ipsdk)(imaproc)(attr))(InNbTimeSteps))
56  (((ipsdk)(imaproc)(attr))(InSharpness))
57  (((ipsdk)(imaproc)(attr))(InAnisotropy))
58  (((ipsdk)(imaproc)(attr))(InOptStdDevGrad))
59  (((ipsdk)(imaproc)(attr))(InOptStdDevMat))
60  (((ipsdk)(imaproc)(attr))(InOptAnisotropicGaussianCoverage))
61  (((ipsdk)(imaproc)(attr))(InOptNbAngles2d))
62  (((ipsdk)(imaproc)(attr))(InOptMaxHalfKnlSize))
63  (((ipsdk)(imaproc)(attr))(InOptDirSmoothFactor))
64  (((ipsdk)(imaproc)(attr))(InOptSpatialStep))
65  (((ipsdk)(imaproc)(attr))(OutWk1Img)(promoteUnary)(_pInImg)(ipsdk::imaproc::ePromoteUnaryType::ePUT_UpperSigned))
66  (((ipsdk)(imaproc)(attr))(OutWk2Img)(promoteUnary)(_pInImg)(ipsdk::imaproc::ePromoteUnaryType::ePUT_UpperSigned))
67  (((ipsdk)(imaproc)(attr))(OutWk3Img)(promoteUnary)(_pInImg)(ipsdk::imaproc::ePromoteUnaryType::ePUT_UpperSigned))
68  (((ipsdk)(imaproc)(attr))(OutImg)(duplicateInOut)(_pInImg)))
69 
70 // methods
71 protected:
72 
73 // attributes
74 protected:
75 
76 };
77 
80 
81 } // end of namespace filter
82 } // end of namespace imaproc
83 } // end of namespace ipsdk
84 
85 #endif // __IPSDKIPLFILTERING_ANISOTROPICDIFFUSION2DIMGLVL1_H__
#define IPSDK_DECLARE_LVL1_PROCESSOR(ProcType, libraryName, algoName, RuleString, attributeSeq)
processor::OutputInitializerPtr promoteUnary(const boost::weak_ptr< OutputAttributeType > &pOutputAttribute, const boost::weak_ptr< InputAttributeType > &pInputAttribute, const ePromoteUnaryType &promoteUnaryType)
ePUT_UpperSigned
processor::OutputInitializerPtr duplicateInOut(const boost::weak_ptr< OutputAttributeType > &pOutputAttribute, const boost::weak_ptr< InputAttributeType > &pInputAttribute, const eImageInitializerStoragePolicy &storagePolicy=eImageInitializerStoragePolicy::eIISP_Inherit)
IPSDKIMAGEPROCESSING_API processor::RulePtr matchSizeAndType(const ImageAttributeConstWeakPtr &pAttribute1, const ImageAttributeConstWeakPtr &pAttribute2)
boost::enable_if< typename boost::mpl::and_< typename boost::is_same< boost::mpl::int_< AttributeType::g_attributeType >, boost::mpl::int_< eAttributeType::eAT_DataItem > >::type, typename boost::is_same< boost::mpl::int_< LeafCollType::g_itemType >, boost::mpl::int_< eDataItemType::eDIT_LeafColl > >::type >::type, RulePtr >::type matchSize(const boost::shared_ptr< AttributeType > &pAttribute, const ipUInt32 targetSize)
Definition of import/export macro for library.