IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
AdaptiveContrastEnhancement2dImgGpuLvl3.h
1 // AdaptiveContrastEnhancement2dImgGpuLvl3.h:
3 // ---------------------------------------
4 //
14 
15 #ifndef __IPSDKIPLINTENSITYTRANSFORM_ADAPTIVECONTRASTENHANCEMENT2DIMGGPULVL3_H__
16 #define __IPSDKIPLINTENSITYTRANSFORM_ADAPTIVECONTRASTENHANCEMENT2DIMGGPULVL3_H__
17 
21 #include <IPSDKImageProcessing/Algorithm/Function/ImageBufferTypeIdentifier.h>
22 #include <IPSDKImage/Image/BaseImage.h>
23 #include <IPSDKUtil/Gpu/CudaTypes.cuh>
24 
25 // Attributes headers
26 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Image/Output/OutImg.h>
27 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/SubImage/Input/Gpu/InSubGpuImg.h>
28 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InArithmeticVal.h>
29 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InBlendMultiplier.h>
30 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InHalfKnlSizeX.h>
31 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/Value/InHalfKnlSizeY.h>
32 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InOutputRange.h>
33 
34 namespace ipsdk {
35 namespace imaproc {
36 namespace itrans {
37 
40 
41 // declare processor class
42 IPSDK_DECLARE_GPU_PROCESSING_ALGORITHM(IPSDKIPLIntensityTransform, AdaptiveContrastEnhancement2dImg,
43  ipsdk::imaproc::matchSize(_pInSubGpuImg, _pOutImg),
44  (((ipsdk)(imaproc)(attr))(InSubGpuImg))
45  (((ipsdk)(imaproc)(attr))(InHalfKnlSizeX))
46  (((ipsdk)(imaproc)(attr))(InHalfKnlSizeY))
47  (((ipsdk)(imaproc)(attr))(InOutputRange))
48  (((ipsdk)(imaproc)(attr))(InArithmeticVal))
49  (((ipsdk)(imaproc)(attr))(InBlendMultiplier))
50  (((ipsdk)(imaproc)(attr))(OutImg)))
51 
53 
54 // methods
55 public:
56 
60 
62  void clearIntermediateData();
63 
64 
65  template<typename TIn, typename TOut>
66  BoolResult genericKernelLauncher();
67 
68  // attributes
69 protected:
70 
71  std::vector<ipInt32> _vOffsetsX;
72  std::vector<ipInt32> _vOffsetsY;
73 
74  // Integer used on gpu to determine the border policy
75  ipInt32 _borderPolicyValue;
76  ipReal32 _outOfImageValue;
77 };
78 
81 
82 } // end of namespace itrans
83 } // end of namespace imaproc
84 } // end of namespace ipsdk
85 
86 #endif // __IPSDKIPLINTENSITYTRANSFORM_ADAPTIVECONTRASTENHANCEMENT2DIMGGPULVL3_H__
#define IPSDKCUDA_DECLARE_ALGORITHM_FUNCTION_SELECTOR(dataTypeSeq)
ipsdk::core::ExecResult preProcess()
method called before processing
int32_t ipInt32
IPSDK_DECLARE_GPU_PROCESSING_ALGORITHM(IPSDKIPLIntensityTransform, AdaptiveContrastEnhancement2dImg, ipsdk::imaproc::matchSize(_pInSubGpuImg, _pOutImg),(((ipsdk)(imaproc)(attr))(InSubGpuImg))(((ipsdk)(imaproc)(attr))(InHalfKnlSizeX))(((ipsdk)(imaproc)(attr))(InHalfKnlSizeY))(((ipsdk)(imaproc)(attr))(InOutputRange))(((ipsdk)(imaproc)(attr))(InArithmeticVal))(((ipsdk)(imaproc)(attr))(InBlendMultiplier))(((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.
#define IPSDK_DECLARE_GPU_PROCESSING_ALGORITHM(libraryName, algoName, RuleString, attributeSeq)
float ipReal32