IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Convolution3dImgGpuLvl3.h
1 // Convolution3dImgGpuLvl3.h:
3 // --------------
4 //
14 
15 # ifndef __IPSDKIPLFILTERING_CONVOLUTION3DIMGGPULVL3_H__
16 # define __IPSDKIPLFILTERING_CONVOLUTION3DIMGGPULVL3_H__
17 
21 #include <IPSDKImageProcessing/Algorithm/Function/ImageBufferTypeIdentifier.h>
22 #include <IPSDKImage/Image/BaseImage.h>
23 
24 // Attributes headers
25 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/SubImage/Input/Gpu/InSubGpuImg.h>
26 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Kernel/InKnlXYZ.h>
27 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InNormalize.h>
28 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/BorderPolicy/InConvolBorder3d.h>
29 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/OutImg.h>
30 
31 namespace ipsdk {
32 namespace imaproc {
33 namespace filter {
34 
37 
38 // declare processor class
39 IPSDK_DECLARE_GPU_PROCESSING_ALGORITHM(IPSDKIPLFiltering, Convolution3dImg,
40  ipsdk::imaproc::matchSize(_pInSubGpuImg, _pOutImg),
41  (((ipsdk)(imaproc)(attr))(InSubGpuImg))
42  (((ipsdk)(imaproc)(attr))(InKnlXYZ))
43  (((ipsdk)(imaproc)(attr))(InNormalize))
44  (((ipsdk)(imaproc)(attr))(InConvolBorder3d))
45  (((ipsdk)(imaproc)(attr))(OutImg)))
46 
48 
49 // methods
50 public:
51 
55 
57  void clearIntermediateData();
58 
59 
60  template<typename TIn, typename TOut>
61  BoolResult genericKernelLauncher();
62 
63 // attributes
64 protected:
65 
66  std::vector<ipInt32> _vOffsetsX;
67  std::vector<ipInt32> _vOffsetsY;
68  std::vector<ipInt32> _vOffsetsZ;
69  std::vector<ipReal32> _vCoefs;
70 
71  // Integer used on gpu to determine the border policy
72  ipInt32 _borderPolicyValue;
73  ipReal32 _outOfImageValue;
74 };
75 
78 
79 } // end of namespace filter
80 } // end of namespace imaproc
81 } // end of namespace ipsdk
82 
83 # endif // __IPSDKIPLFILTERING_CONVOLUTION3DIMGGPULVL3_H__
#define IPSDKCUDA_DECLARE_ALGORITHM_FUNCTION_SELECTOR(dataTypeSeq)
ipsdk::core::ExecResult preProcess()
method called before processing
int32_t ipInt32
#define IPSDK_DECLARE_GPU_PROCESSING_ALGORITHM(libraryName, algoName, RuleString, attributeSeq)
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
Definition of import/export macro for library.
float ipReal32