IConvolutionKernel2d.h
Go to the documentation of this file.
1 #ifndef iipr_IConvolutionKernel2d_included
2 #define iipr_IConvolutionKernel2d_included
3 
4 
5 // ACF includes
6 #include <istd/istd.h>
7 #include <istd/CIndex2d.h>
8 #include <iser/ISerializable.h>
9 
10 
11 namespace iipr
12 {
13 
14 
19 {
20 public:
22  {
28  };
29 
33  virtual istd::CIndex2d GetKernelSize() const = 0;
34 
39  virtual void SetKernelSize(const istd::CIndex2d& kernelSize, double value = 0.0) = 0;
40 
44  virtual double GetKernelElement(const istd::CIndex2d& index) const = 0;
45 
50  virtual bool SetKernelElement(const istd::CIndex2d& index, double value) = 0;
51 
55  virtual double GetOffsetValue() const = 0;
59  virtual bool SetOffsetValue(double offset) = 0;
60 
64  virtual bool GetCombinedKernel(const IConvolutionKernel2d& kernel, IConvolutionKernel2d& result) const = 0;
68  virtual bool TrySeparateKernels(IConvolutionKernel2d& result1, IConvolutionKernel2d& result2, int separationType = ST_AUTO, double tolerance = I_BIG_EPSILON) const = 0;
69 };
70 
71 
72 } // namespace iipr
73 
74 
75 #endif // !iipr_IConvolutionKernel2d_included
76 
77 
virtual void SetKernelSize(const istd::CIndex2d &kernelSize, double value=0.0)=0
Set size of this kernel.
virtual double GetOffsetValue() const =0
Get offset value will be added to convolution result.
virtual bool SetKernelElement(const istd::CIndex2d &index, double value)=0
Set kernel element value at the given position index.
virtual bool GetCombinedKernel(const IConvolutionKernel2d &kernel, IConvolutionKernel2d &result) const =0
Get some kernel beeing combination of this and some other kernel.
Interface for 2D-convolution filter kernel.
virtual double GetKernelElement(const istd::CIndex2d &index) const =0
Get kernel element value at the given position index.
virtual bool SetOffsetValue(double offset)=0
Set offset value will be added to convolution result.
virtual bool TrySeparateKernels(IConvolutionKernel2d &result1, IConvolutionKernel2d &result2, int separationType=ST_AUTO, double tolerance=I_BIG_EPSILON) const =0
Try separate this kernel into two separated kernels.
Separation to horizontal and vertical kernels.
virtual istd::CIndex2d GetKernelSize() const =0
Get size of this kernel.

© 2007-2017 Witold Gantzke and Kirill Lepskiy