IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
GenericMultiplyImgImgLvl1.h
1 // GenericMultiplyImgImgLvl1.h:
3 // ---------------------
4 //
14 
15 #ifndef __IPSDKIPLARITHMETIC_GENERICMULTIPLYIMGIMGLVL1_H__
16 #define __IPSDKIPLARITHMETIC_GENERICMULTIPLYIMGIMGLVL1_H__
17 
21 
22 // Attributes headers
23 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Input/InImg1.h>
24 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Input/InImg2.h>
25 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/OutImg.h>
26 
27 namespace ipsdk {
28  namespace imaproc {
29  namespace arithm {
30 
33 
34  // declare processor class
35  IPSDK_DECLARE_LVL1_PROCESSOR(ASYNC1, IPSDKIPLArithmetic, GenericMultiplyImgImg,
36 
37  (ipsdk::processor::If(ipsdk::imaproc::is2d(_pInImg2),
38  ipsdk::processor::If(ipsdk::imaproc::isSequence(_pInImg2),
39  ipsdk::processor::If(ipsdk::imaproc::isGrey(_pInImg2),
40  (ipsdk::imaproc::matchSize(eMatchImageSizeType::eMIST_2d, _pInImg1, _pInImg2) && ipsdk::imaproc::matchSize(eMatchImageSizeType::eMIST_T, _pInImg1, _pInImg2)),
42  ipsdk::processor::If(ipsdk::imaproc::isGrey(_pInImg2),
43  ipsdk::imaproc::matchSize(eMatchImageSizeType::eMIST_2d, _pInImg1, _pInImg2),
44  (ipsdk::imaproc::matchSize(eMatchImageSizeType::eMIST_2d, _pInImg1, _pInImg2) && ipsdk::imaproc::matchSize(eMatchImageSizeType::eMIST_C, _pInImg1, _pInImg2)))),
45  ipsdk::processor::If(ipsdk::imaproc::isSingle(_pInImg2),
46  ipsdk::processor::If(ipsdk::imaproc::isGrey(_pInImg2),
47  ipsdk::imaproc::matchSize(eMatchImageSizeType::eMIST_3d, _pInImg1, _pInImg2),
48  ipsdk::imaproc::matchSize(eMatchImageSizeType::eMIST_XYZC, _pInImg1, _pInImg2)),
50  && ipsdk::imaproc::matchSize(_pInImg1, _pOutImg)),
51  (((ipsdk)(imaproc)(attr))(InImg1))
52  (((ipsdk)(imaproc)(attr))(InImg2))
53  (((ipsdk)(imaproc)(attr))(OutImg)(promoteBinary)(_pInImg1)(_pInImg2)(ipsdk::imaproc::ePromoteBinaryType::ePBT_Upper)(true)))
54 
55 public:
56 
57  // attributes
58 protected:
59 
60  };
61 
64 
65  } // end of namespace arithm
66 } // end of namespace imaproc
67 } // end of namespace ipsdk
68 
69 #endif // __IPSDKIPLARITHMETIC_GENERICMULTIPLYIMGIMGLVL1_H__
#define IPSDK_DECLARE_LVL1_PROCESSOR(ProcType, libraryName, algoName, RuleString, attributeSeq)
IPSDKBASEPROCESSING_API RulePtr Not(const RulePtr &pRule)
ePBT_Upper
IPSDKBASEPROCESSING_API RulePtr none()
Definition of import/export macro for library.
processor::OutputInitializerPtr promoteBinary(const boost::weak_ptr< OutputAttributeType > &pOutputAttribute, const boost::weak_ptr< InputAttributeType1 > &pInputAttribute1, const boost::weak_ptr< InputAttributeType2 > &pInputAttribute2, const ePromoteBinaryType &promoteBinaryType, const bool bAllowReInterpretation=false)
IPSDKBASEPROCESSING_API RulePtr If(const RulePtr &pPredicate, const RulePtr &pRuleTrue)