ICF 3.1.1.10
Technical documentation of ICF Libraries
IConvolutionKernel2d.h
Go to the documentation of this file.
1/********************************************************************************
2** This file is part of the ICF Framework. Copyright (C) Witold Gantzke & Kirill Lepskiy
3** ICF Framework may be used under the terms of the LGPL License v. 2.1 by the Free Software Foundation.
4********************************************************************************/
5
6#ifndef iipr_IConvolutionKernel2d_included
7#define iipr_IConvolutionKernel2d_included
8
9
10// ICF includes
11#include <istd/istd.h>
12#include <istd/CIndex2d.h>
13#include <iser/ISerializable.h>
14
15
16namespace iipr
17{
18
19
24{
25public:
34
38 virtual istd::CIndex2d GetKernelSize() const = 0;
39
44 virtual void SetKernelSize(const istd::CIndex2d& kernelSize, double value = 0.0) = 0;
45
49 virtual double GetKernelElement(const istd::CIndex2d& index) const = 0;
50
55 virtual bool SetKernelElement(const istd::CIndex2d& index, double value) = 0;
56
60 virtual double GetOffsetValue() const = 0;
64 virtual bool SetOffsetValue(double offset) = 0;
65
69 virtual bool GetCombinedKernel(const IConvolutionKernel2d& kernel, IConvolutionKernel2d& result) const = 0;
73 virtual bool TrySeparateKernels(IConvolutionKernel2d& result1, IConvolutionKernel2d& result2, int separationType = ST_AUTO, double tolerance = I_BIG_EPSILON) const = 0;
74};
75
76
77} // namespace iipr
78
79
80#endif // !iipr_IConvolutionKernel2d_included
81
82
Interface for 2D-convolution filter kernel.
virtual bool SetOffsetValue(double offset)=0
Set 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 double GetOffsetValue() const =0
Get offset value will be added to convolution result.
@ ST_HOR_VERT
Separation to horizontal and vertical kernels.
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.
virtual istd::CIndex2d GetKernelSize() const =0
Get size of this kernel.
virtual double GetKernelElement(const istd::CIndex2d &index) const =0
Get 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.
virtual void SetKernelSize(const istd::CIndex2d &kernelSize, double value=0.0)=0
Set size of this kernel.
Common class for all classes which objects can be archived or restored from archive.
Index implementation for addressing elements in 2D-space.
Definition CIndex2d.h:25
Contains the image processing classes.

© Witold Gantzke and Kirill Lepskiy